diff --git a/main/opengeometry/src/brep/builder/boundary.rs b/main/opengeometry/src/brep/builder/boundary.rs index 35668587..718a4a54 100644 --- a/main/opengeometry/src/brep/builder/boundary.rs +++ b/main/opengeometry/src/brep/builder/boundary.rs @@ -1,7 +1,8 @@ use super::brep_builder::{Builder, Use}; use crate::brep::error::GeometryError; use crate::brep::frame::Frame3; -use crate::brep::geometry::CurveGeometry; +use crate::brep::frame::UV; +use crate::brep::geometry::{Curve, CurveGeometry, Surface, SurfaceGeometry}; use crate::brep::pcurve::PcurveGeometry; use crate::brep::topology::{EdgeGeometry, Orientation}; use crate::math::{dot, scale, sub, Point3}; @@ -15,7 +16,7 @@ pub(crate) fn dimensions(values: &[f64]) -> Result<(), GeometryError> { Ok(()) } -pub(crate) fn plane_boundary( +pub fn plane_boundary( builder: &Builder, frame: Frame3, edge: u32, @@ -50,16 +51,71 @@ pub(crate) fn plane_boundary( Ok(boundary(edge, from, to, sense, pcurve)) } -pub(crate) fn uv_line(origin: [f64; 2], direction: [f64; 2]) -> PcurveGeometry { - PcurveGeometry::Line2 { origin, direction } -} -pub(crate) fn boundary( +const PROJECTION_SAMPLES: usize = 64; + +pub fn projected_boundary( + builder: &Builder, + surface: &SurfaceGeometry, edge: u32, from: u32, to: u32, sense: Orientation, - pcurve: PcurveGeometry, -) -> Use { + hint: Option, +) -> Result { + let geometry = &builder + .brep + .topology + .edges + .get(edge as usize) + .ok_or_else(|| GeometryError::InvalidTopology("builder references missing edge".into()))? + .geometry; + let EdgeGeometry::Curve { curve, range } = *geometry else { + return Err(GeometryError::InvalidGeometry( + "collapsed projected boundary".into(), + )); + }; + let evaluator = builder.brep.geometry.curve(curve)?; + let at = |i: usize| range.lo + range.width() * i as f64 / PROJECTION_SAMPLES as f64; + let mut uv: Vec = Vec::with_capacity(PROJECTION_SAMPLES + 1); + for i in 0..=PROJECTION_SAMPLES { + let previous = uv.last().copied().or(hint); + uv.push(surface.project(evaluator.point_at(at(i))?, previous)?); + } + let (start, end) = (uv[0], uv[PROJECTION_SAMPLES]); + let width = range.width(); + let rate: UV = std::array::from_fn(|axis| { + if width > 0.0 { + (end[axis] - start[axis]) / width + } else { + 0.0 + } + }); + let periods = surface.charts()[0].periods; + for (i, sample) in uv.iter().enumerate() { + for axis in 0..2 { + let guess = start[axis] + rate[axis] * (at(i) - range.lo); + if periods[axis].is_some_and(|period| (guess - sample[axis]).abs() >= period / 4.0) { + return Err(GeometryError::UnsupportedGeometry( + "projected boundary winds unevenly around a periodic surface".into(), + )); + } + } + } + let pcurve = PcurveGeometry::ProjectedCurve { + curve, + surface: builder.brep.geometry.surfaces.len() as u32, + chart: 0, + uv_hint: start, + uv_rate: rate, + parameter_origin: range.lo, + }; + Ok(boundary(edge, from, to, sense, pcurve)) +} + +pub fn uv_line(origin: [f64; 2], direction: [f64; 2]) -> PcurveGeometry { + PcurveGeometry::Line2 { origin, direction } +} +pub fn boundary(edge: u32, from: u32, to: u32, sense: Orientation, pcurve: PcurveGeometry) -> Use { Use { edge, from, diff --git a/main/opengeometry/src/brep/builder/brep_builder.rs b/main/opengeometry/src/brep/builder/brep_builder.rs index 568f4bcc..b1b6f140 100644 --- a/main/opengeometry/src/brep/builder/brep_builder.rs +++ b/main/opengeometry/src/brep/builder/brep_builder.rs @@ -8,7 +8,7 @@ use crate::brep::topology::{ }; use crate::math::{Interval, Point3}; -pub(crate) struct Use { +pub struct Use { pub(super) edge: u32, pub(super) from: u32, pub(super) to: u32, @@ -16,16 +16,19 @@ pub(crate) struct Use { pub(super) pcurve: PcurveGeometry, } -pub(crate) struct Builder { +pub struct Builder { pub(crate) brep: BrepEnvelope, } impl Builder { - pub(crate) fn new(id: String, accuracy: Accuracy) -> Result { + pub fn new(id: String, accuracy: Accuracy) -> Result { Ok(Self { brep: BrepEnvelope::new(id, accuracy)?, }) } - pub(crate) fn vertex(&mut self, p: Point3) -> u32 { + pub fn brep(&self) -> &BrepEnvelope { + &self.brep + } + pub fn vertex(&mut self, p: Point3) -> u32 { let id = self.brep.topology.vertices.len() as u32; self.brep.topology.vertices.push(Vertex { id, @@ -35,7 +38,7 @@ impl Builder { }); id } - pub(crate) fn edge(&mut self, curve: CurveGeometry, range: Interval, seam: bool) -> u32 { + pub fn edge(&mut self, curve: CurveGeometry, range: Interval, seam: bool) -> u32 { let curve_id = self.brep.geometry.curves.len() as u32; self.brep.geometry.curves.push(curve); self.edge_geometry( @@ -129,24 +132,29 @@ impl Builder { }); Ok(loop_id) } - pub(crate) fn face( + pub fn face( &mut self, key: &str, surface: SurfaceGeometry, bounds: [[f64; 2]; 2], uses: Vec, - ) -> Result<(), GeometryError> { + ) -> Result { self.face_with_holes(key, surface, bounds, uses, Vec::new()) } - pub(crate) fn face_with_holes( + pub fn face_with_holes( &mut self, key: &str, surface: SurfaceGeometry, bounds: [[f64; 2]; 2], - outer_uses: Vec, - hole_uses: Vec>, - ) -> Result<(), GeometryError> { + mut outer_uses: Vec, + mut hole_uses: Vec>, + ) -> Result { let surface_id = self.brep.geometry.surfaces.len() as u32; + for u in outer_uses.iter_mut().chain(hole_uses.iter_mut().flatten()) { + if let PcurveGeometry::ProjectedCurve { surface, .. } = &mut u.pcurve { + *surface = surface_id; + } + } self.brep.geometry.surfaces.push(surface); let face = self.brep.topology.faces.len() as u32; let outer = self.face_loop(face, false, outer_uses)?; @@ -180,9 +188,21 @@ impl Builder { reversed: false, }, }); + Ok(face) + } + pub fn set_face_sense(&mut self, face: u32, sense: Orientation) -> Result<(), GeometryError> { + self.brep + .topology + .faces + .get_mut(face as usize) + .ok_or(GeometryError::MissingReference { + kind: "face".into(), + index: face, + })? + .sense = sense; Ok(()) } - pub(crate) fn finish_solid(mut self) -> Result { + pub fn finish_solid(mut self) -> Result { let faces = (0..self.brep.topology.faces.len() as u32).collect(); self.brep.topology.shells.push(Shell { id: 0, @@ -193,6 +213,7 @@ impl Builder { outer_shell: 0, cavity_shells: Vec::new(), }); + self.brep.orient_loops()?; self.brep.validate()?; Ok(self.brep) } diff --git a/main/opengeometry/src/brep/builder/fixtures.rs b/main/opengeometry/src/brep/builder/fixtures.rs new file mode 100644 index 00000000..5cf3d585 --- /dev/null +++ b/main/opengeometry/src/brep/builder/fixtures.rs @@ -0,0 +1,299 @@ +use super::boundary::{boundary, plane_boundary, uv_line}; +use super::brep_builder::{Builder, Use}; +use crate::brep::accuracy::Accuracy; +use crate::brep::frame::Frame3; +use crate::brep::geometry::{CurveGeometry, SurfaceGeometry, Wrap}; +use crate::brep::topology::{BrepEnvelope, Orientation}; +use crate::math::{Interval, Point3}; + +pub(crate) struct Sector { + pub(crate) inner: f64, + pub(crate) thickness: f64, + pub(crate) wrap_radius: f64, + pub(crate) length: f64, + pub(crate) rise: f64, + pub(crate) width: f64, +} + +pub(crate) const SECTOR: Sector = Sector { + inner: 2.0, + thickness: 2.0, + wrap_radius: 2.8, + length: 4.0, + rise: 1.0, + width: 10.0, +}; + +const SECTOR_ACCURACY: Accuracy = Accuracy { + geometric: 1e-6, + intersection: 1e-7, + tessellation: 1e-3, + exchange: 1e-5, +}; + +impl Sector { + pub(crate) fn wrap(&self) -> Wrap { + Wrap { + frame: Frame3::from_axis([1.0, 2.0, 3.0], [0.2, 1.0, 0.1], [1.0, 0.0, 0.3]) + .expect("sector frame"), + radius: self.wrap_radius, + } + } + + pub(crate) fn volume(&self) -> f64 { + let area = self.length * self.width - self.length * self.rise / 2.0; + let outer = self.inner + self.thickness; + area * (outer * outer - self.inner * self.inner) / (2.0 * self.wrap_radius) + } + + fn slant(&self) -> f64 { + self.length.hypot(self.rise) + } + + fn levels(&self) -> [f64; 2] { + [self.inner, self.inner + self.thickness] + } + + fn corners(&self) -> [[f64; 2]; 4] { + [ + [0.0, 0.0], + [self.length, self.rise], + [self.length, self.width], + [0.0, self.width], + ] + } +} + +struct Edges { + vertices: Vec<[u32; 2]>, + ab: [u32; 2], + bc: [u32; 2], + cd: [u32; 2], + da: [u32; 2], + up: Vec, +} + +fn line(b: &mut Builder, origin: Point3, direction: Point3, length: f64) -> u32 { + b.edge( + CurveGeometry::Line { origin, direction }, + Interval::new(0.0, length).expect("line range"), + false, + ) +} + +fn level_edges(b: &mut Builder, s: &Sector, z: f64) -> [u32; 4] { + let w = s.wrap(); + let f = w.frame; + let d = [s.length / s.slant(), s.rise / s.slant(), 0.0]; + let ab = b.edge( + CurveGeometry::Wrapped { + wrap: w, + curve: Box::new(CurveGeometry::Line { + origin: [0.0, 0.0, z], + direction: d, + }), + }, + Interval::new(0.0, s.slant()).expect("slant range"), + false, + ); + let bc = line(b, w.point([s.length, s.rise, z]), f.z, s.width - s.rise); + let da = line(b, w.point([0.0, 0.0, z]), f.z, s.width); + let cd = b.edge( + CurveGeometry::Circle { + frame: Frame3 { + origin: f.point([0.0, 0.0, s.width]), + ..f + }, + radius: z, + }, + Interval::new(0.0, s.length / s.wrap_radius).expect("arc range"), + false, + ); + [ab, bc, cd, da] +} + +fn edges(b: &mut Builder, s: &Sector) -> Edges { + let w = s.wrap(); + let vertices = s + .corners() + .iter() + .map(|c| s.levels().map(|z| b.vertex(w.point([c[0], c[1], z])))) + .collect(); + let [inner, outer] = s.levels().map(|z| level_edges(b, s, z)); + let radial = |x: f64| { + w.frame + .vector([(x / s.wrap_radius).cos(), (x / s.wrap_radius).sin(), 0.0]) + }; + let up = s + .corners() + .iter() + .map(|c| line(b, w.point([c[0], c[1], s.inner]), radial(c[0]), s.thickness)) + .collect(); + Edges { + vertices, + ab: [inner[0], outer[0]], + bc: [inner[1], outer[1]], + cd: [inner[2], outer[2]], + da: [inner[3], outer[3]], + up, + } +} + +fn cylinder_faces(b: &mut Builder, s: &Sector, e: &Edges) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let end = s.length / s.wrap_radius; + let ab = uv_line( + [0.0, 0.0], + [s.length / s.slant() / s.wrap_radius, s.rise / s.slant()], + ); + let bc = uv_line([end, s.rise], [0.0, 1.0]); + let cd = uv_line([0.0, s.width], [1.0, 0.0]); + let da = uv_line([0.0, 0.0], [0.0, 1.0]); + let v = |corner: usize, level: usize| e.vertices[corner][level]; + let inner = vec![ + boundary(e.da[0], v(0, 0), v(3, 0), fwd, da.clone()), + boundary(e.cd[0], v(3, 0), v(2, 0), fwd, cd.clone()), + boundary(e.bc[0], v(2, 0), v(1, 0), rev, bc.clone()), + boundary(e.ab[0], v(1, 0), v(0, 0), rev, ab.clone()), + ]; + let outer = vec![ + boundary(e.ab[1], v(0, 1), v(1, 1), fwd, ab), + boundary(e.bc[1], v(1, 1), v(2, 1), fwd, bc), + boundary(e.cd[1], v(2, 1), v(3, 1), rev, cd), + boundary(e.da[1], v(3, 1), v(0, 1), rev, da), + ]; + let pad = 1e-3; + for (level, uses) in [inner, outer].into_iter().enumerate() { + let face = b.brep.topology.faces.len(); + b.face( + if level == 0 { "inner" } else { "outer" }, + SurfaceGeometry::Cylinder { + frame: s.wrap().frame, + radius: s.levels()[level], + }, + [[-pad, end + pad], [-pad, s.width + pad]], + uses, + ) + .expect("cylinder face"); + if level == 0 { + b.brep.topology.faces[face].sense = rev; + } + } +} + +fn plane(b: &mut Builder, key: &str, frame: Frame3, uses: &[(u32, u32, u32, Orientation)]) { + let uses: Vec = uses + .iter() + .map(|&(e, from, to, sense)| { + plane_boundary(b, frame, e, from, to, sense).expect("plane boundary") + }) + .collect(); + let big = 4.0 * (SECTOR.inner + SECTOR.thickness + SECTOR.width); + b.face( + key, + SurfaceGeometry::Plane { frame }, + [[-big, big], [-big, big]], + uses, + ) + .expect("plane face"); +} + +fn plane_faces(b: &mut Builder, s: &Sector, e: &Edges) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let f = s.wrap().frame; + let v = |corner: usize, level: usize| e.vertices[corner][level]; + let end = s.length / s.wrap_radius; + let start = Frame3::from_axis(f.origin, f.vector([0.0, -1.0, 0.0]), f.x).expect("start"); + let radial = f.vector([end.cos(), end.sin(), 0.0]); + let finish = + Frame3::from_axis(f.origin, f.vector([-end.sin(), end.cos(), 0.0]), radial).expect("end"); + let start_uses = [ + (e.up[0], v(0, 0), v(0, 1), fwd), + (e.da[1], v(0, 1), v(3, 1), fwd), + (e.up[3], v(3, 1), v(3, 0), rev), + (e.da[0], v(3, 0), v(0, 0), rev), + ]; + plane(b, "start", start, &start_uses); + let end_uses = [ + (e.bc[0], v(1, 0), v(2, 0), fwd), + (e.up[2], v(2, 0), v(2, 1), fwd), + (e.bc[1], v(2, 1), v(1, 1), rev), + (e.up[1], v(1, 1), v(1, 0), rev), + ]; + plane(b, "end", finish, &end_uses); + let far = Frame3 { + origin: f.point([0.0, 0.0, s.width]), + ..f + }; + let uses = [ + (e.cd[0], v(2, 0), v(3, 0), rev), + (e.up[3], v(3, 0), v(3, 1), fwd), + (e.cd[1], v(3, 1), v(2, 1), fwd), + (e.up[2], v(2, 1), v(2, 0), rev), + ]; + plane(b, "far", far, &uses); +} + +fn slanted_face(b: &mut Builder, s: &Sector, e: &Edges) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let slant = s.slant(); + let [r, top] = s.levels(); + let flat = Frame3 { + origin: [0.0; 3], + x: [s.length / slant, s.rise / slant, 0.0], + y: [0.0, 0.0, 1.0], + z: [s.rise / slant, -s.length / slant, 0.0], + }; + let v = |corner: usize, level: usize| e.vertices[corner][level]; + let uses = vec![ + boundary( + e.ab[0], + v(0, 0), + v(1, 0), + fwd, + uv_line([0.0, r], [1.0, 0.0]), + ), + boundary( + e.up[1], + v(1, 0), + v(1, 1), + fwd, + uv_line([slant, r], [0.0, 1.0]), + ), + boundary( + e.ab[1], + v(1, 1), + v(0, 1), + rev, + uv_line([0.0, top], [1.0, 0.0]), + ), + boundary( + e.up[0], + v(0, 1), + v(0, 0), + rev, + uv_line([0.0, r], [0.0, 1.0]), + ), + ]; + let pad = 1e-3; + b.face( + "slant", + SurfaceGeometry::Wrapped { + wrap: s.wrap(), + surface: Box::new(SurfaceGeometry::Plane { frame: flat }), + }, + [[-pad, slant + pad], [r - pad, top + pad]], + uses, + ) + .expect("slanted face"); +} + +pub(crate) fn wrapped_sector() -> BrepEnvelope { + let s = &SECTOR; + let mut b = Builder::new("sector".into(), SECTOR_ACCURACY).expect("builder"); + let e = edges(&mut b, s); + cylinder_faces(&mut b, s, &e); + plane_faces(&mut b, s, &e); + slanted_face(&mut b, s, &e); + b.finish_solid().expect("wrapped sector") +} diff --git a/main/opengeometry/src/brep/builder/mod.rs b/main/opengeometry/src/brep/builder/mod.rs index dfb958c2..95b23609 100644 --- a/main/opengeometry/src/brep/builder/mod.rs +++ b/main/opengeometry/src/brep/builder/mod.rs @@ -1,9 +1,14 @@ mod boundary; mod brep_builder; #[cfg(test)] +mod fixtures; +#[cfg(test)] mod tests; mod wire; -pub(crate) use boundary::{boundary, dimensions, padded_uv_bounds, plane_boundary, uv_line}; -pub(crate) use brep_builder::{Builder, Use}; +pub use boundary::{boundary, plane_boundary, projected_boundary, uv_line}; +pub(crate) use boundary::{dimensions, padded_uv_bounds}; +pub use brep_builder::{Builder, Use}; +#[cfg(test)] +pub(crate) use fixtures::{wrapped_sector, SECTOR}; pub(crate) use wire::WireUse; diff --git a/main/opengeometry/src/brep/error.rs b/main/opengeometry/src/brep/error.rs index 2f504256..e4bafe8b 100644 --- a/main/opengeometry/src/brep/error.rs +++ b/main/opengeometry/src/brep/error.rs @@ -50,6 +50,12 @@ pub(super) fn positive(value: f64) -> Result<(), GeometryError> { } Ok(()) } +pub(crate) fn unsupported_wrapped(operation: &str) -> GeometryError { + GeometryError::UnsupportedGeometry(format!("{operation} of wrapped geometry")) +} +pub(crate) fn unsupported_conoid(operation: &str) -> GeometryError { + GeometryError::UnsupportedGeometry(format!("{operation} of conoid surfaces")) +} pub(crate) fn coverage_gap(a: &str, b: &str) -> GeometryError { GeometryError::CoverageGap { families: [a.into(), b.into()], diff --git a/main/opengeometry/src/brep/geometry/conoid.rs b/main/opengeometry/src/brep/geometry/conoid.rs new file mode 100644 index 00000000..ac54ce47 --- /dev/null +++ b/main/opengeometry/src/brep/geometry/conoid.rs @@ -0,0 +1,125 @@ +use super::curve::CurveGeometry; +use super::turned::turned_axis; +use crate::brep::error::GeometryError; +use crate::brep::frame::{Frame3, UV}; +use crate::math::{add, cross, dot, scale, sub, Interval, Point3}; + +const NEWTON_STEPS: usize = 32; + +type LocalJet = (Point3, Point3, Point3, Point3, Point3, Point3); + +pub(super) fn height(c: &[f64; 3], u: f64) -> [f64; 3] { + let (s, co) = u.sin_cos(); + let h = c[0] + c[1] * co + c[2] * s; + [h, c[2] * co - c[1] * s, c[0] - h] +} + +pub(super) fn local_jet(c: &[f64; 3], uv: UV) -> LocalJet { + let (s, co) = uv[0].sin_cos(); + let (radial, tangent, z) = ([co, s, 0.0], [-s, co, 0.0], [0.0, 0.0, 1.0]); + let [h, slope, curvature] = height(c, uv[0]); + ( + add(scale(radial, uv[1]), scale(z, h)), + add(scale(tangent, uv[1]), scale(z, slope)), + radial, + add(scale(radial, -uv[1]), scale(z, curvature)), + tangent, + [0.0; 3], + ) +} + +pub(super) fn validate(c: &[f64; 3]) -> Result<(), GeometryError> { + if c.iter().all(|v| v.is_finite()) { + Ok(()) + } else { + Err(GeometryError::InvalidGeometry( + "conoid coefficients must be finite".into(), + )) + } +} + +pub fn conoid_ellipse( + frame: Frame3, + c: [f64; 3], + radius: f64, +) -> Result<(CurveGeometry, f64), GeometryError> { + frame.validate()?; + validate(&c)?; + if !radius.is_finite() || radius <= 0.0 { + return Err(GeometryError::InvalidGeometry( + "conoid ellipse radius must be positive".into(), + )); + } + let slope = [c[1] / radius, c[2] / radius]; + let phase = slope[1].atan2(slope[0]); + let (s, co) = phase.sin_cos(); + let rise = slope[0].hypot(slope[1]); + let stretch = rise.hypot(1.0); + let x = frame.vector([co / stretch, s / stretch, rise / stretch]); + let y = frame.vector([-s, co, 0.0]); + let curve = CurveGeometry::Ellipse { + frame: Frame3::from_axis(frame.point([0.0, 0.0, c[0]]), cross(x, y), x)?, + major_radius: radius * stretch, + minor_radius: radius, + }; + curve.validate()?; + Ok((curve, phase)) +} + +pub(super) fn local_normal(c: &[f64; 3], uv: UV) -> Result { + let (s, co) = uv[0].sin_cos(); + let slope = height(c, uv[0])[1]; + let length = slope.hypot(uv[1]); + if length == 0.0 || !length.is_finite() { + return Err(GeometryError::SingularParameterization); + } + Ok([-slope * s / length, slope * co / length, -uv[1] / length]) +} + +pub(super) fn local_bounds( + c: &[f64; 3], + domain: [Interval; 2], +) -> Result<[Interval; 3], GeometryError> { + let [u, v] = domain; + let (co, s) = (u.cos()?, u.sin()?); + let z = turned_axis([c[0], 0.0], [c[1], c[2]], u)?; + Ok([co.mul_interval(v)?, s.mul_interval(v)?, z]) +} + +pub(super) fn closest(c: &[f64; 3], p: Point3, start: UV) -> Result { + let mut uv = start; + for _ in 0..NEWTON_STEPS { + let (point, du, dv, duu, duv, dvv) = local_jet(c, uv); + let r = sub(point, p); + let g = [dot(du, r), dot(dv, r)]; + let metric = [dot(du, du), dot(du, dv), dot(dv, dv)]; + let full = [ + metric[0] + dot(duu, r), + metric[1] + dot(duv, r), + metric[2] + dot(dvv, r), + ]; + let det = |h: [f64; 3]| h[0] * h[2] - h[1] * h[1]; + let h = if full[0] > 0.0 && det(full) > 0.0 { + full + } else { + metric + }; + let d = det(h); + if d <= 0.0 || !d.is_finite() { + return Err(GeometryError::SingularParameterization); + } + let step = [ + (h[2] * g[0] - h[1] * g[1]) / d, + (h[0] * g[1] - h[1] * g[0]) / d, + ]; + if !step.iter().all(|s| s.is_finite()) { + return Err(GeometryError::SingularParameterization); + } + uv = [uv[0] - step[0].clamp(-0.5, 0.5), uv[1] - step[1]]; + let small = |s: f64, x: f64| s.abs() <= 4.0 * f64::EPSILON * (1.0 + x.abs()); + if small(step[0], uv[0]) && small(step[1], uv[1]) { + break; + } + } + Ok(uv) +} diff --git a/main/opengeometry/src/brep/geometry/curve.rs b/main/opengeometry/src/brep/geometry/curve.rs index 934a4719..98bcf9c2 100644 --- a/main/opengeometry/src/brep/geometry/curve.rs +++ b/main/opengeometry/src/brep/geometry/curve.rs @@ -1,4 +1,5 @@ use super::turned::{narrowed, turned_axis}; +use super::wrap::Wrap; use crate::brep::bounds::PatchBounds; use crate::brep::error::GeometryError; use crate::brep::frame::{checked, Frame3}; @@ -24,6 +25,10 @@ pub enum CurveGeometry { Intersection { definition: u32, }, + Wrapped { + wrap: Wrap, + curve: Box, + }, } pub(crate) trait Curve { @@ -65,10 +70,39 @@ impl CurveGeometry { } } Self::Intersection { .. } => {} + Self::Wrapped { wrap, curve } => { + wrap.validate()?; + if matches!(**curve, Self::Wrapped { .. } | Self::Intersection { .. }) { + return Err(GeometryError::InvalidGeometry( + "a wrapped curve must wrap a line, circle or ellipse".into(), + )); + } + curve.validate()?; + } }; Ok(()) } + pub(crate) fn derivative_bounds(&self, range: Interval) -> Result<(f64, f64), GeometryError> { + Ok(match self { + Self::Line { .. } => (1.0, 0.0), + Self::Circle { radius, .. } => (*radius, *radius), + Self::Ellipse { major_radius, .. } => (*major_radius, *major_radius), + Self::Intersection { definition } => { + return Err(GeometryError::MissingReference { + kind: "intersection".into(), + index: *definition, + }) + } + Self::Wrapped { wrap, curve } => { + let (speed, acceleration) = curve.derivative_bounds(range)?; + let z = curve.elementary_bounds(range)?.axes[2]; + let (first, second) = wrap.derivative_bounds(z.lo.abs().max(z.hi.abs())); + (first * speed, second * speed * speed + first * acceleration) + } + }) + } + pub(crate) fn elementary_point(&self, t: f64) -> Result { self.validate()?; finite(t)?; @@ -82,6 +116,7 @@ impl CurveGeometry { major_radius: a, minor_radius: b, } => frame.point([a * t.cos(), b * t.sin(), 0.0]), + Self::Wrapped { wrap, curve } => wrap.point(curve.elementary_point(t)?), Self::Intersection { definition } => { return Err(GeometryError::MissingReference { kind: "intersection".into(), @@ -104,6 +139,9 @@ impl CurveGeometry { major_radius: a, minor_radius: b, } => frame.vector([-a * t.sin(), b * t.cos(), 0.0]), + Self::Wrapped { wrap, curve } => { + wrap.push(curve.elementary_point(t)?, curve.elementary_tangent(t)?) + } Self::Intersection { definition } => { return Err(GeometryError::MissingReference { kind: "intersection".into(), @@ -132,6 +170,7 @@ impl CurveGeometry { major_radius: a, minor_radius: b, } => conic_bounds(frame, [*a, *b], range), + Self::Wrapped { wrap, curve } => wrap.enclose(curve.elementary_bounds(range)?), Self::Intersection { definition } => Err(GeometryError::MissingReference { kind: "intersection".into(), index: *definition, @@ -153,18 +192,12 @@ impl CurveGeometry { "deflection must be finite and positive".into(), )); } - let bound = match self { - Self::Line { .. } => 0.0, - Self::Circle { radius, .. } => *radius, - Self::Ellipse { major_radius, .. } => *major_radius, - Self::Intersection { definition } => { - return Err(GeometryError::MissingReference { - kind: "intersection".into(), - index: *definition, - }) - } + let bound = self.derivative_bounds(range)?.1; + let closed = match self { + Self::Wrapped { curve, .. } => !matches!(**curve, Self::Line { .. }), + _ => true, }; - let minimum = if bound > 0.0 && range.width() >= std::f64::consts::TAU - 1e-12 { + let minimum = if closed && bound > 0.0 && range.width() >= std::f64::consts::TAU - 1e-12 { 3.0 } else { 1.0 diff --git a/main/opengeometry/src/brep/geometry/mod.rs b/main/opengeometry/src/brep/geometry/mod.rs index a3e64e14..c140c643 100644 --- a/main/opengeometry/src/brep/geometry/mod.rs +++ b/main/opengeometry/src/brep/geometry/mod.rs @@ -1,4 +1,5 @@ mod chord; +mod conoid; mod curve; mod intersection_definition; mod store; @@ -7,8 +8,10 @@ mod surface; mod tests; mod trace; mod turned; +mod wrap; pub(crate) use chord::{bounds_chord_deviation, point_segment_distance}; +pub use conoid::conoid_ellipse; pub(crate) use curve::Curve; pub use curve::CurveGeometry; pub(crate) use intersection_definition::{IntersectionDefinition, TraceAnchor}; @@ -16,3 +19,4 @@ pub use store::GeometryStore; pub use surface::{Surface, SurfaceChart, SurfaceGeometry, SurfaceJet2}; pub use trace::IntersectionPoint; pub(crate) use trace::SsiBudget; +pub use wrap::Wrap; diff --git a/main/opengeometry/src/brep/geometry/store.rs b/main/opengeometry/src/brep/geometry/store.rs index 22a53bcc..13ef3b98 100644 --- a/main/opengeometry/src/brep/geometry/store.rs +++ b/main/opengeometry/src/brep/geometry/store.rs @@ -31,6 +31,20 @@ impl GeometryStore { intersections: Vec::new(), } } + pub(crate) fn has_wrapped(&self) -> bool { + self.surfaces + .iter() + .any(|s| matches!(s, SurfaceGeometry::Wrapped { .. })) + || self + .curves + .iter() + .any(|c| matches!(c, CurveGeometry::Wrapped { .. })) + } + pub(crate) fn has_conoid(&self) -> bool { + self.surfaces + .iter() + .any(|s| matches!(s, SurfaceGeometry::Conoid { .. })) + } pub fn surface(&self, id: u32) -> Result<&SurfaceGeometry, GeometryError> { self.surfaces .get(id as usize) diff --git a/main/opengeometry/src/brep/geometry/surface.rs b/main/opengeometry/src/brep/geometry/surface.rs index 9566cd8a..709c25df 100644 --- a/main/opengeometry/src/brep/geometry/surface.rs +++ b/main/opengeometry/src/brep/geometry/surface.rs @@ -1,7 +1,9 @@ -use super::turned::{narrowed, reached, ring_axis, swept_axis}; +use super::conoid; +use super::turned::{lift, narrowed, reached, ring_axis, swept_axis}; +use super::wrap::Wrap; use crate::brep::bounds::PatchBounds; use crate::brep::error::GeometryError; -use crate::brep::frame::{checked, Frame3, UVBox, UV}; +use crate::brep::frame::{checked, unit, Frame3, UVBox, UV}; use crate::math::{add, finite, norm, scale, Interval, Point3}; use serde::{Deserialize, Serialize}; @@ -29,6 +31,10 @@ const CONE_CHART: [SurfaceChart; 1] = [SurfaceChart { domain: [[0.0, std::f64::consts::TAU], [0.0, f64::MAX]], periods: [Some(std::f64::consts::TAU), None], }]; +const CONOID_CHART: [SurfaceChart; 1] = [SurfaceChart { + domain: [[0.0, std::f64::consts::TAU], [0.0, f64::MAX]], + periods: [Some(std::f64::consts::TAU), None], +}]; const TORUS_CHART: [SurfaceChart; 1] = [SurfaceChart { domain: [[0.0, std::f64::consts::TAU]; 2], periods: [Some(std::f64::consts::TAU); 2], @@ -57,6 +63,14 @@ pub enum SurfaceGeometry { major_radius: f64, minor_radius: f64, }, + Wrapped { + wrap: Wrap, + surface: Box, + }, + Conoid { + frame: Frame3, + c: [f64; 3], + }, } #[derive(Clone, Copy, Debug)] @@ -85,7 +99,9 @@ impl SurfaceGeometry { | Self::Sphere { frame, .. } | Self::Cylinder { frame, .. } | Self::Cone { frame, .. } - | Self::Torus { frame, .. } => frame, + | Self::Torus { frame, .. } + | Self::Conoid { frame, .. } => frame, + Self::Wrapped { wrap, .. } => &wrap.frame, } } pub(crate) fn validate(&self) -> Result<(), GeometryError> { @@ -110,6 +126,8 @@ impl SurfaceGeometry { && *minor_radius > 0.0 && major_radius > minor_radius } + Self::Wrapped { wrap, surface } => return wrapped_validate(wrap, surface), + Self::Conoid { c, .. } => return conoid::validate(c), }; if !valid { return Err(GeometryError::InvalidGeometry( @@ -120,6 +138,10 @@ impl SurfaceGeometry { } fn check_uv(&self, uv: UV) -> Result<(), GeometryError> { + if let Self::Wrapped { wrap, surface } = self { + wrap.validate()?; + return surface.check_uv(uv); + } self.validate()?; for x in uv { finite(x)?; @@ -135,18 +157,15 @@ impl SurfaceGeometry { } pub(crate) fn parameter_in_domain(&self, uv: UV) -> bool { + if let Self::Wrapped { surface, .. } = self { + return surface.parameter_in_domain(uv); + } uv.into_iter().all(f64::is_finite) && (!matches!(self, Self::Sphere { .. }) || uv[1].abs() <= std::f64::consts::FRAC_PI_2) && (!matches!(self, Self::Cone { .. }) || uv[1] >= 0.0) } } -fn lift(angle: f64, hint: Option) -> f64 { - hint.map_or(angle, |h| { - angle + ((h - angle) / std::f64::consts::TAU).round() * std::f64::consts::TAU - }) -} - impl Surface for SurfaceGeometry { fn point_at(&self, uv: UV) -> Result { Ok(self.derivatives(uv)?.point) @@ -215,6 +234,8 @@ impl Surface for SurfaceGeometry { add(scale(radial, -a * cv), scale(z, -a * sv)), ) } + Self::Wrapped { wrap, surface } => return wrapped_derivatives(wrap, surface, uv), + Self::Conoid { c, .. } => conoid::local_jet(c, uv), }; let f = self.frame(); Ok(SurfaceJet2 { @@ -245,6 +266,8 @@ impl Surface for SurfaceGeometry { -semi_angle.sin(), ] } + Self::Wrapped { wrap, surface } => return wrapped_normal(wrap, surface, uv), + Self::Conoid { c, .. } => conoid::local_normal(c, uv)?, }; checked(self.frame().vector(n)) } @@ -257,6 +280,7 @@ impl Surface for SurfaceGeometry { finite(v)?; } } + let world = p; let p = checked(self.frame().local(p))?; let radial = p[0].hypot(p[1]); let u = lift(p[1].atan2(p[0]), hint.map(|h| h[0])); @@ -290,6 +314,13 @@ impl Surface for SurfaceGeometry { lift(p[2].atan2(radial - major_radius), hint.map(|h| h[1])), ] } + Self::Wrapped { wrap, surface } => return wrapped_project(wrap, surface, world, hint), + Self::Conoid { c, .. } => { + if radial == 0.0 { + return Err(GeometryError::SingularParameterization); + } + conoid::closest(c, p, [u, radial])? + } }; for x in result { finite(x)?; @@ -304,6 +335,8 @@ impl Surface for SurfaceGeometry { Self::Cylinder { .. } => &CYLINDER_CHART, Self::Cone { .. } => &CONE_CHART, Self::Torus { .. } => &TORUS_CHART, + Self::Wrapped { surface, .. } => surface.charts(), + Self::Conoid { .. } => &CONOID_CHART, } } @@ -351,6 +384,8 @@ impl Surface for SurfaceGeometry { v.sin()?.mul_interval(a)?, ] } + Self::Wrapped { wrap, surface } => return wrap.enclose(surface.enclose(domain)?), + Self::Conoid { c, .. } => conoid::local_bounds(c, domain)?, }; let bounds = self.frame().bounds(local)?; self.tightened(bounds, domain) @@ -390,3 +425,52 @@ impl SurfaceGeometry { Ok(bounds) } } + +fn wrapped_validate(wrap: &Wrap, surface: &SurfaceGeometry) -> Result<(), GeometryError> { + wrap.validate()?; + if matches!(surface, SurfaceGeometry::Wrapped { .. }) { + return Err(GeometryError::InvalidGeometry( + "a wrapped surface cannot wrap another wrapped surface".into(), + )); + } + surface.validate() +} + +fn wrapped_derivatives( + wrap: &Wrap, + surface: &SurfaceGeometry, + uv: UV, +) -> Result { + let f = surface.derivatives(uv)?; + let p = f.point; + let second = |a, b, d| add(wrap.second(p, a, b), wrap.push(p, d)); + Ok(SurfaceJet2 { + point: checked(wrap.point(p))?, + du: checked(wrap.push(p, f.du))?, + dv: checked(wrap.push(p, f.dv))?, + duu: checked(second(f.du, f.du, f.duu))?, + duv: checked(second(f.du, f.dv, f.duv))?, + dvv: checked(second(f.dv, f.dv, f.dvv))?, + }) +} + +fn wrapped_normal(wrap: &Wrap, surface: &SurfaceGeometry, uv: UV) -> Result { + let p = surface.point_at(uv)?; + if p[2] <= 0.0 { + return Err(GeometryError::SingularParameterization); + } + unit(wrap.push_normal(p, surface.normal_at(uv)?)) +} + +fn wrapped_project( + wrap: &Wrap, + surface: &SurfaceGeometry, + p: Point3, + hint: Option, +) -> Result { + let hint_x = match hint { + Some(h) => Some(surface.point_at(h)?[0]), + None => None, + }; + surface.project(wrap.flatten(p, hint_x)?, hint) +} diff --git a/main/opengeometry/src/brep/geometry/tests.rs b/main/opengeometry/src/brep/geometry/tests.rs index 817998be..503ce4ae 100644 --- a/main/opengeometry/src/brep/geometry/tests.rs +++ b/main/opengeometry/src/brep/geometry/tests.rs @@ -1,8 +1,10 @@ +use super::conoid::conoid_ellipse; use super::curve::CurveGeometry; use super::surface::{Surface, SurfaceGeometry}; +use super::wrap::Wrap; use crate::brep::error::GeometryError; use crate::brep::frame::Frame3; -use crate::math::{dot, norm, scale, sub, Interval}; +use crate::math::{cross, dot, norm, scale, sub, Interval}; fn surfaces() -> Vec { let frame = Frame3::from_axis([3.0, -2.0, 7.0], [1.0, 2.0, 3.0], [0.0, 1.0, 0.0]).unwrap(); @@ -19,9 +21,115 @@ fn surfaces() -> Vec { major_radius: 3.0, minor_radius: 1.0, }, + conoid(), + SurfaceGeometry::Wrapped { + wrap: wrap(), + surface: Box::new(SurfaceGeometry::Cylinder { + frame: Frame3 { + origin: [1.0, 0.5, 3.0], + ..Frame3::IDENTITY + }, + radius: 0.8, + }), + }, + SurfaceGeometry::Wrapped { + wrap: wrap(), + surface: Box::new(SurfaceGeometry::Plane { + frame: Frame3::from_axis([0.3, -0.2, 2.5], [1.0, 2.0, 0.3], [0.0, 0.0, 1.0]) + .unwrap(), + }), + }, ] } +fn conoid() -> SurfaceGeometry { + SurfaceGeometry::Conoid { + frame: Frame3::from_axis([3.0, -2.0, 7.0], [1.0, 2.0, 3.0], [0.0, 1.0, 0.0]).unwrap(), + c: [1.5, 0.8, -0.6], + } +} + +fn wrap() -> Wrap { + Wrap { + frame: Frame3::from_axis([3.0, -2.0, 7.0], [1.0, 2.0, 3.0], [0.0, 1.0, 0.0]).unwrap(), + radius: 2.6, + } +} + +#[test] +fn a_wrap_keeps_arc_length_on_its_radius_and_round_trips() { + let w = wrap(); + let p = [1.3, -0.4, 2.6]; + let chord = norm(sub(w.point(p), w.point([0.0, -0.4, 2.6]))); + assert!((chord - 2.0 * 2.6 * (1.3_f64 / 5.2).sin()).abs() < 1e-12); + let back = w.flatten(w.point(p), None).unwrap(); + assert!(norm(sub(back, p)) < 1e-12); + let far = [2.6 * 4.0, 0.0, 3.0]; + assert!(norm(sub(w.flatten(w.point(far), Some(far[0])).unwrap(), far)) < 1e-12); + let curve = CurveGeometry::Wrapped { + wrap: w, + curve: Box::new(CurveGeometry::Line { + origin: [0.0, 0.0, 2.0], + direction: [0.6, 0.8, 0.0], + }), + }; + let speed = |t: f64| norm(curve.elementary_tangent(t).unwrap()); + assert!((speed(0.1) - speed(3.0)).abs() < 1e-12); + let h = 1e-6; + let fd = scale( + sub( + curve.elementary_point(1.0 + h).unwrap(), + curve.elementary_point(1.0 - h).unwrap(), + ), + 0.5 / h, + ); + assert!(norm(sub(fd, curve.elementary_tangent(1.0).unwrap())) < 1e-8); + let bounds = curve + .elementary_bounds(Interval::new(0.0, 4.0).unwrap()) + .unwrap(); + for i in 0..=40 { + assert!(bounds.contains(curve.elementary_point(i as f64 / 10.0).unwrap())); + } + let nested = CurveGeometry::Wrapped { + wrap: w, + curve: Box::new(curve), + }; + assert!(nested.validate().is_err()); + let nested_surface = SurfaceGeometry::Wrapped { + wrap: w, + surface: Box::new(surfaces().pop().unwrap()), + }; + assert!(nested_surface.validate().is_err()); +} + +#[test] +fn wrapped_circle_samples_meet_their_chord_error() { + let curve = CurveGeometry::Wrapped { + wrap: wrap(), + curve: Box::new(CurveGeometry::Circle { + frame: Frame3 { + origin: [1.0, 0.5, 3.0], + ..Frame3::IDENTITY + }, + radius: 0.8, + }), + }; + let range = Interval::new(0.0, std::f64::consts::TAU).unwrap(); + let samples = curve.sample_elementary(range, 1e-3, 100_000).unwrap(); + let n = samples.len() - 1; + for i in 0..n { + for k in 1..8 { + let t = range.width() * (i as f64 + k as f64 / 8.0) / n as f64; + let p = curve.elementary_point(t).unwrap(); + let (a, b) = (samples[i], samples[i + 1]); + let ab = sub(b, a); + let along = dot(sub(p, a), ab) / dot(ab, ab); + let foot = [0, 1, 2].map(|j| a[j] + along * ab[j]); + assert!(norm(sub(p, foot)) <= 1e-3); + } + } +} + #[test] fn derivatives_projection_and_normals_for_all_families() { let uv = [0.7, 0.4]; @@ -170,3 +278,77 @@ fn partial_cylinder_and_cone_patches_on_a_skew_frame_get_their_exact_box() { } } } + +#[test] +fn conoid_rulings_are_radial_and_constant_radius_curves_are_planar() { + let surface = conoid(); + let frame = *surface.frame(); + let SurfaceGeometry::Conoid { c, .. } = surface else { + unreachable!() + }; + for u in [0.0, 0.9, 2.5, 4.0] { + let a = surface.point_at([u, 1.0]).unwrap(); + let b = surface.point_at([u, 3.0]).unwrap(); + assert!(dot(sub(b, a), frame.z).abs() < 1e-12); + let mid = surface.point_at([u, 2.0]).unwrap(); + assert!(norm(sub(mid, scale(add3(a, b), 0.5))) < 1e-12); + for r in [0.5, 2.0] { + let local = frame.local(surface.point_at([u, r]).unwrap()); + assert!((local[0].hypot(local[1]) - r).abs() < 1e-12); + let plane = c[0] + c[1] / r * local[0] + c[2] / r * local[1]; + assert!((local[2] - plane).abs() < 1e-12); + } + } + let jet = surface.derivatives([0.7, 2.0]).unwrap(); + let n = surface.normal_at([0.7, 2.0]).unwrap(); + let expected = cross(jet.du, jet.dv); + assert!(norm(sub(n, scale(expected, 1.0 / norm(expected)))) < 1e-12); +} + +#[test] +fn conoid_projection_finds_the_closest_point_and_respects_the_hint() { + let surface = conoid(); + for (u, v, offset) in [(0.3, 1.2, 0.2), (2.0, 2.5, -0.4), (5.5, 0.8, 0.05)] { + let p = surface.point_at([u, v]).unwrap(); + let off = add3(p, scale(surface.normal_at([u, v]).unwrap(), offset)); + let uv = surface.project(off, Some([u, v])).unwrap(); + assert!( + (uv[0] - u).abs() < 1e-9 && (uv[1] - v).abs() < 1e-9, + "{uv:?}" + ); + let lifted = surface + .project(p, Some([u + std::f64::consts::TAU, v])) + .unwrap(); + assert!((lifted[0] - u - std::f64::consts::TAU).abs() < 1e-12); + } + let bad = SurfaceGeometry::Conoid { + frame: Frame3::IDENTITY, + c: [0.0, f64::NAN, 0.0], + }; + assert!(bad.validate().is_err()); +} + +fn add3(a: [f64; 3], b: [f64; 3]) -> [f64; 3] { + std::array::from_fn(|i| a[i] + b[i]) +} + +#[test] +fn conoid_ellipses_trace_the_constant_radius_curves() { + let surface = conoid(); + let SurfaceGeometry::Conoid { frame, c } = surface else { + unreachable!() + }; + for radius in [0.5, 2.0, 7.0] { + let (ellipse, phase) = conoid_ellipse(frame, c, radius).unwrap(); + for t in [-1.0, 0.0, 0.4, 2.5] { + let on_surface = surface.point_at([t + phase, radius]).unwrap(); + assert!(norm(sub(ellipse.elementary_point(t).unwrap(), on_surface)) < 1e-12); + } + } + let (circle, _) = conoid_ellipse(frame, [c[0], 0.0, 0.0], 1.0).unwrap(); + assert!(matches!( + circle, + CurveGeometry::Ellipse { major_radius, minor_radius, .. } if major_radius == minor_radius + )); + assert!(conoid_ellipse(frame, c, 0.0).is_err()); +} diff --git a/main/opengeometry/src/brep/geometry/turned.rs b/main/opengeometry/src/brep/geometry/turned.rs index c19ddfe1..5f0953cf 100644 --- a/main/opengeometry/src/brep/geometry/turned.rs +++ b/main/opengeometry/src/brep/geometry/turned.rs @@ -2,6 +2,12 @@ use crate::brep::error::GeometryError; use crate::brep::frame::{Frame3, UVBox}; use crate::math::Interval; +pub(super) fn lift(angle: f64, hint: Option) -> f64 { + hint.map_or(angle, |h| { + angle + ((h - angle) / std::f64::consts::TAU).round() * std::f64::consts::TAU + }) +} + pub(super) fn reached(frame: &Frame3, axis: usize) -> usize { [frame.x[axis], frame.y[axis], frame.z[axis]] .iter() diff --git a/main/opengeometry/src/brep/geometry/wrap.rs b/main/opengeometry/src/brep/geometry/wrap.rs new file mode 100644 index 00000000..f8038810 --- /dev/null +++ b/main/opengeometry/src/brep/geometry/wrap.rs @@ -0,0 +1,86 @@ +use super::turned::lift; +use crate::brep::bounds::PatchBounds; +use crate::brep::error::GeometryError; +use crate::brep::frame::{checked, Frame3}; +use crate::math::{add, scale, Interval, Point3}; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct Wrap { + pub frame: Frame3, + pub radius: f64, +} + +impl Wrap { + pub(crate) fn validate(&self) -> Result<(), GeometryError> { + self.frame.validate()?; + (self.radius.is_finite() && self.radius > 0.0) + .then_some(()) + .ok_or_else(|| GeometryError::InvalidGeometry("wrap radius must be positive".into())) + } + + fn axes(&self, p: Point3) -> [Point3; 3] { + let (s, c) = (p[0] / self.radius).sin_cos(); + [[-s, c, 0.0], [0.0, 0.0, 1.0], [c, s, 0.0]] + } + + pub fn point(&self, p: Point3) -> Point3 { + let (s, c) = (p[0] / self.radius).sin_cos(); + self.frame.point([p[2] * c, p[2] * s, p[1]]) + } + + pub(crate) fn push(&self, p: Point3, v: Point3) -> Point3 { + let [t, a, r] = self.axes(p); + let local = add( + add(scale(t, v[0] * p[2] / self.radius), scale(a, v[1])), + scale(r, v[2]), + ); + self.frame.vector(local) + } + + pub(crate) fn second(&self, p: Point3, a: Point3, b: Point3) -> Point3 { + let [t, _, r] = self.axes(p); + let xx = scale(r, -p[2] / (self.radius * self.radius)); + let xz = scale(t, 1.0 / self.radius); + self.frame.vector(add( + scale(xx, a[0] * b[0]), + scale(xz, a[0] * b[2] + a[2] * b[0]), + )) + } + + pub(crate) fn push_normal(&self, p: Point3, n: Point3) -> Point3 { + let [t, a, r] = self.axes(p); + let k = p[2] / self.radius; + self.frame.vector(add( + add(scale(t, n[0]), scale(a, k * n[1])), + scale(r, k * n[2]), + )) + } + + pub fn flatten(&self, q: Point3, hint_x: Option) -> Result { + let l = self.frame.local(q); + let z = l[0].hypot(l[1]); + if z == 0.0 { + return Err(GeometryError::SingularParameterization); + } + let angle = lift(l[1].atan2(l[0]), hint_x.map(|x| x / self.radius)); + checked([angle * self.radius, l[2], z]) + } + + pub(crate) fn enclose(&self, flat: PatchBounds) -> Result { + let [x, y, z] = flat.axes; + let angle = x.mul_interval(Interval::point(1.0 / self.radius)?)?; + let (c, s) = (angle.cos()?, angle.sin()?); + self.frame + .bounds([c.mul_interval(z)?, s.mul_interval(z)?, y]) + } + + pub(crate) fn derivative_bounds(&self, z_max: f64) -> (f64, f64) { + let z = z_max.abs(); + ( + (z / self.radius).max(1.0), + z / (self.radius * self.radius) + 1.0 / self.radius, + ) + } +} diff --git a/main/opengeometry/src/brep/mod.rs b/main/opengeometry/src/brep/mod.rs index 3978682a..1b5be0f3 100644 --- a/main/opengeometry/src/brep/mod.rs +++ b/main/opengeometry/src/brep/mod.rs @@ -18,11 +18,12 @@ mod validate; pub use accuracy::Accuracy; pub use body_type::BodyType; pub use bounds::PatchBounds; -pub(super) use builder::{ - boundary, dimensions, padded_uv_bounds, plane_boundary, uv_line, Builder, Use, WireUse, -}; -pub(super) use error::coverage_gap; +pub use builder::{boundary, plane_boundary, projected_boundary, uv_line, Builder, Use}; +pub(super) use builder::{dimensions, padded_uv_bounds, WireUse}; +#[cfg(test)] +pub(super) use builder::{wrapped_sector, SECTOR}; pub use error::GeometryError; +pub(super) use error::{coverage_gap, unsupported_conoid, unsupported_wrapped}; pub use frame::Frame3; pub(super) use frame::{checked, unit, UVBox, GROUND, UV}; pub(super) use geometry::{ @@ -30,18 +31,19 @@ pub(super) use geometry::{ TraceAnchor, }; pub use geometry::{ - CurveGeometry, GeometryStore, IntersectionPoint, Surface, SurfaceChart, SurfaceGeometry, - SurfaceJet2, + conoid_ellipse, CurveGeometry, GeometryStore, IntersectionPoint, Surface, SurfaceChart, + SurfaceGeometry, SurfaceJet2, Wrap, }; -pub(super) use pcurve::{period_lifted_uv, IntersectionSide, PcurveGeometry}; +pub(super) use pcurve::period_lifted_uv; +pub use pcurve::{IntersectionSide, PcurveGeometry}; pub use placement::{mirror::mirrored, placed}; pub use similarity::Similarity3; #[cfg(test)] pub(super) use topology::{circular_face, coarse_accuracy, fine_accuracy}; pub use topology::{ - BrepEnvelope, Edge, Face, FaceProvenance, FaceRole, FaceSource, HalfEdge, Topology, Vertex, + BrepEnvelope, Edge, Face, FaceProvenance, FaceRole, FaceSource, HalfEdge, Orientation, + Topology, Vertex, }; pub(super) use topology::{ - EdgeGeometry, GeometryQuality, HalfEdgeGeometryUse, Loop, Orientation, Shell, SolidRegion, - TrimRegion, Wire, + EdgeGeometry, GeometryQuality, HalfEdgeGeometryUse, Loop, Shell, SolidRegion, TrimRegion, Wire, }; diff --git a/main/opengeometry/src/brep/pcurve.rs b/main/opengeometry/src/brep/pcurve.rs index e0046c5c..39f2919a 100644 --- a/main/opengeometry/src/brep/pcurve.rs +++ b/main/opengeometry/src/brep/pcurve.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] #[serde(tag = "kind", deny_unknown_fields)] -pub(crate) enum PcurveGeometry { +pub enum PcurveGeometry { Line2 { origin: UV, direction: UV, @@ -27,7 +27,7 @@ pub(crate) enum PcurveGeometry { }, } #[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)] -pub(crate) enum IntersectionSide { +pub enum IntersectionSide { A, B, } diff --git a/main/opengeometry/src/brep/placement/mirror.rs b/main/opengeometry/src/brep/placement/mirror.rs index b277334c..2bf76457 100644 --- a/main/opengeometry/src/brep/placement/mirror.rs +++ b/main/opengeometry/src/brep/placement/mirror.rs @@ -1,5 +1,5 @@ use super::check_coordinate_precision; -use crate::brep::error::GeometryError; +use crate::brep::error::{unsupported_wrapped, GeometryError}; use crate::brep::frame::{checked, unit, Frame3, UV}; use crate::brep::geometry::{CurveGeometry, IntersectionDefinition, SurfaceGeometry}; use crate::brep::pcurve::PcurveGeometry; @@ -107,8 +107,8 @@ pub fn mirrored( .revision .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("BRep revision overflow".into()))?; - reflect_surfaces(&mut output.geometry.surfaces, reflection); - reflect_curves(&mut output.geometry.curves, reflection); + reflect_surfaces(&mut output.geometry.surfaces, reflection)?; + reflect_curves(&mut output.geometry.curves, reflection)?; for vertex in &mut output.topology.vertices { vertex.position = reflection.point(vertex.position); } @@ -129,7 +129,10 @@ pub fn mirrored( Ok(output) } -fn reflect_surfaces(surfaces: &mut [SurfaceGeometry], reflection: Reflection) { +fn reflect_surfaces( + surfaces: &mut [SurfaceGeometry], + reflection: Reflection, +) -> Result<(), GeometryError> { for surface in surfaces { match surface { SurfaceGeometry::Plane { frame } @@ -137,11 +140,20 @@ fn reflect_surfaces(surfaces: &mut [SurfaceGeometry], reflection: Reflection) { | SurfaceGeometry::Cylinder { frame, .. } | SurfaceGeometry::Cone { frame, .. } | SurfaceGeometry::Torus { frame, .. } => *frame = reflection.surface_frame(*frame), + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("mirroring")), + SurfaceGeometry::Conoid { frame, c } => { + *frame = reflection.surface_frame(*frame); + c[2] = -c[2]; + } } } + Ok(()) } -fn reflect_curves(curves: &mut [CurveGeometry], reflection: Reflection) { +fn reflect_curves( + curves: &mut [CurveGeometry], + reflection: Reflection, +) -> Result<(), GeometryError> { for curve in curves { match curve { CurveGeometry::Line { origin, direction } => { @@ -152,8 +164,10 @@ fn reflect_curves(curves: &mut [CurveGeometry], reflection: Reflection) { *frame = reflection.curve_frame(*frame) } CurveGeometry::Intersection { .. } => {} + CurveGeometry::Wrapped { .. } => return Err(unsupported_wrapped("mirroring")), } } + Ok(()) } fn remap_pcurves(input: &BrepEnvelope, output: &mut BrepEnvelope) { diff --git a/main/opengeometry/src/brep/placement/mod.rs b/main/opengeometry/src/brep/placement/mod.rs index 3356992b..814c0621 100644 --- a/main/opengeometry/src/brep/placement/mod.rs +++ b/main/opengeometry/src/brep/placement/mod.rs @@ -2,7 +2,7 @@ pub(super) mod mirror; #[cfg(test)] mod tests; -use super::error::GeometryError; +use super::error::{unsupported_wrapped, GeometryError}; use super::frame::Frame3; use super::geometry::{CurveGeometry, IntersectionDefinition, SurfaceGeometry}; use super::pcurve::PcurveGeometry; @@ -21,6 +21,9 @@ pub fn placed( "placement scale must be positive and finite".into(), )); } + if scale != 1.0 && input.geometry.has_wrapped() { + return Err(unsupported_wrapped("scaling")); + } let mut output = input.clone(); output.revision = input .revision @@ -82,7 +85,9 @@ pub fn placed( fn metric(surface: &SurfaceGeometry, scale: f64) -> [f64; 2] { match surface { SurfaceGeometry::Plane { .. } => [scale; 2], - SurfaceGeometry::Cylinder { .. } | SurfaceGeometry::Cone { .. } => [1.0, scale], + SurfaceGeometry::Cylinder { .. } + | SurfaceGeometry::Cone { .. } + | SurfaceGeometry::Conoid { .. } => [1.0, scale], _ => [1.0; 2], } } @@ -107,6 +112,13 @@ fn place_surfaces(surfaces: &mut [SurfaceGeometry], placement: Frame3, scale: f6 *major_radius *= scale; *minor_radius *= scale; } + SurfaceGeometry::Wrapped { wrap, .. } => { + transform_frame(&mut wrap.frame, placement, 1.0) + } + SurfaceGeometry::Conoid { frame, c } => { + transform_frame(frame, placement, scale); + *c = c.map(|value| value * scale); + } } } } @@ -139,6 +151,7 @@ fn place_curves(curves: &mut [CurveGeometry], placement: Frame3, scale: f64) { *minor_radius *= scale; } CurveGeometry::Intersection { .. } => {} + CurveGeometry::Wrapped { wrap, .. } => transform_frame(&mut wrap.frame, placement, 1.0), } } } diff --git a/main/opengeometry/src/brep/placement/tests.rs b/main/opengeometry/src/brep/placement/tests.rs index 2afa0728..04bd1780 100644 --- a/main/opengeometry/src/brep/placement/tests.rs +++ b/main/opengeometry/src/brep/placement/tests.rs @@ -1,6 +1,7 @@ use super::*; use crate::brep::geometry::{Curve, Surface}; use crate::brep::topology::coarse_accuracy; +use crate::brep::wrapped_sector; use crate::math::sub; use crate::primitives; @@ -125,3 +126,31 @@ fn invalid_scale_revision_overflow_and_precision_are_structured_errors() { Err(GeometryError::LimitExceeded(_)) )); } + +#[test] +fn wrapped_geometry_moves_rigidly_and_refuses_scaling_and_mirroring() { + let brep = wrapped_sector(); + let placement = Frame3::from_axis([10.0, -3.0, 5.0], [1.0, 2.0, 3.0], [0.0, 1.0, 0.0]).unwrap(); + let moved = placed(&brep, placement, 1.0).unwrap(); + let slant = brep.topology.faces.len() - 1; + let surface = |b: &BrepEnvelope| { + b.geometry + .surface(b.topology.faces[slant].surface) + .unwrap() + .clone() + }; + let uv = [1.7, 2.9]; + let expected = placement.point(surface(&brep).point_at(uv).unwrap()); + assert!(norm(sub(surface(&moved).point_at(uv).unwrap(), expected)) < 1e-12); + for (before, after) in brep.topology.vertices.iter().zip(&moved.topology.vertices) { + assert!(norm(sub(placement.point(before.position), after.position)) < 1e-12); + } + assert!(matches!( + placed(&brep, placement, 2.0), + Err(GeometryError::UnsupportedGeometry(_)) + )); + assert!(matches!( + mirror::mirrored(&brep, [0.0; 3], [1.0, 0.0, 0.0]), + Err(GeometryError::UnsupportedGeometry(_)) + )); +} diff --git a/main/opengeometry/src/brep/topology/envelope.rs b/main/opengeometry/src/brep/topology/envelope.rs index 83c494b3..3ffc4a1a 100644 --- a/main/opengeometry/src/brep/topology/envelope.rs +++ b/main/opengeometry/src/brep/topology/envelope.rs @@ -61,8 +61,10 @@ impl BrepEnvelope { "BRep JSON exceeds 64 MiB".into(), )); } - let brep: Self = serde_json::from_str(json) + let mut brep: Self = serde_json::from_str(json) .map_err(|e| GeometryError::InvalidGeometry(format!("invalid BRep JSON: {e}")))?; + brep.validate_structure()?; + brep.orient_loops()?; brep.validate()?; Ok(brep) } diff --git a/main/opengeometry/src/brep/topology/mod.rs b/main/opengeometry/src/brep/topology/mod.rs index b8818406..9ec9c942 100644 --- a/main/opengeometry/src/brep/topology/mod.rs +++ b/main/opengeometry/src/brep/topology/mod.rs @@ -16,5 +16,5 @@ pub(crate) use envelope::GeometryQuality; pub(super) use envelope::SCHEMA_VERSION; #[cfg(test)] pub(crate) use fixtures::{circular_face, coarse_accuracy, fine_accuracy}; -pub(crate) use orientation::Orientation; +pub use orientation::Orientation; pub use provenance::{FaceProvenance, FaceRole, FaceSource}; diff --git a/main/opengeometry/src/brep/topology/orientation.rs b/main/opengeometry/src/brep/topology/orientation.rs index f5b93c0b..cc6df414 100644 --- a/main/opengeometry/src/brep/topology/orientation.rs +++ b/main/opengeometry/src/brep/topology/orientation.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)] -pub(crate) enum Orientation { +pub enum Orientation { Forward, Reverse, } diff --git a/main/opengeometry/src/brep/validate/mod.rs b/main/opengeometry/src/brep/validate/mod.rs index 1f95ff99..ba2738a3 100644 --- a/main/opengeometry/src/brep/validate/mod.rs +++ b/main/opengeometry/src/brep/validate/mod.rs @@ -1,5 +1,8 @@ mod edges; mod face_use; +#[cfg(test)] +mod tests; +mod winding; use super::error::{invalid, missing, positive, GeometryError}; use super::geometry::{CurveGeometry, Surface}; @@ -10,6 +13,11 @@ use std::collections::HashSet; impl BrepEnvelope { pub fn validate(&self) -> Result<(), GeometryError> { + self.validate_structure()?; + self.check_loop_winding() + } + + pub(crate) fn validate_structure(&self) -> Result<(), GeometryError> { self.check_header()?; self.check_geometry()?; self.check_pcurves()?; diff --git a/main/opengeometry/src/brep/validate/tests.rs b/main/opengeometry/src/brep/validate/tests.rs new file mode 100644 index 00000000..a6efa605 --- /dev/null +++ b/main/opengeometry/src/brep/validate/tests.rs @@ -0,0 +1,96 @@ +use crate::brep::{ + coarse_accuracy, BrepEnvelope, CurveGeometry, EdgeGeometry, Frame3, GeometryError, Orientation, +}; +use crate::primitives; + +fn tube() -> BrepEnvelope { + primitives::annular_cylinder( + "tube".into(), + Frame3::IDENTITY, + 0.4, + 1.0, + 2.0, + coarse_accuracy(1e-6), + ) + .unwrap() +} + +fn tube_with_old_winding() -> BrepEnvelope { + let mut brep = tube(); + let mut loops = Vec::new(); + for face in &brep.topology.faces { + loops.extend(&face.trim.holes); + if face.key == "inner" { + loops.push(face.trim.outer); + } + } + brep.reverse_loops(&loops).unwrap(); + brep +} + +fn circular_turn(brep: &BrepEnvelope, face: u32, loop_id: u32) -> f64 { + let use_ = + &brep.topology.halfedges[brep.topology.loops[loop_id as usize].start_halfedge as usize]; + assert_eq!(use_.next, Some(use_.id), "one edge per cap loop"); + let edge = &brep.topology.edges[use_.edge as usize]; + let EdgeGeometry::Curve { curve, .. } = edge.geometry else { + panic!("cap loop edge is a curve") + }; + let CurveGeometry::Circle { frame, .. } = brep.geometry.curves[curve as usize] else { + panic!("cap loop edge is a circle") + }; + let point = brep.topology.vertices[use_.from as usize].position; + let normal = brep.face_normal_at(face, point).unwrap(); + let along: f64 = (0..3).map(|i| frame.z[i] * normal[i]).sum(); + along.signum() * use_.geometry_use.sense.multiplier() +} + +#[test] +fn cap_holes_run_clockwise_and_outer_loops_counter_clockwise() { + let brep = tube(); + brep.validate().unwrap(); + for face in brep + .topology + .faces + .iter() + .filter(|f| f.key.ends_with("cap")) + { + assert_eq!(circular_turn(&brep, face.id, face.trim.outer), 1.0); + for &hole in &face.trim.holes { + assert_eq!(circular_turn(&brep, face.id, hole), -1.0, "{}", face.key); + } + } +} + +#[test] +fn validate_rejects_loops_against_the_material_normal() { + let err = tube_with_old_winding().validate().unwrap_err(); + assert!( + matches!(&err, GeometryError::InvalidTopology(m) if m.contains("material normal")), + "{err:?}" + ); +} + +#[test] +fn a_flipped_face_sense_with_its_loop_unturned_is_rejected() { + let mut brep = primitives::cuboid( + "box".into(), + Frame3::IDENTITY, + [1.0, 1.0, 1.0], + coarse_accuracy(1e-6), + ) + .unwrap(); + for face in &mut brep.topology.faces { + face.sense = Orientation::Reverse; + } + assert!(brep.validate().is_err()); + brep.orient_loops().unwrap(); + brep.validate().unwrap(); +} + +#[test] +fn bodies_with_the_old_winding_load_with_their_loops_turned() { + let old = serde_json::to_string(&tube_with_old_winding()).unwrap(); + let loaded = BrepEnvelope::from_json(&old).unwrap(); + assert_eq!(loaded.topology.halfedges, tube().topology.halfedges); +} diff --git a/main/opengeometry/src/brep/validate/winding.rs b/main/opengeometry/src/brep/validate/winding.rs new file mode 100644 index 00000000..833cf2d0 --- /dev/null +++ b/main/opengeometry/src/brep/validate/winding.rs @@ -0,0 +1,215 @@ +use crate::brep::error::{invalid, GeometryError}; +use crate::brep::frame::UV; +use crate::brep::geometry::Surface; +use crate::brep::pcurve::{period_lifted_uv, PcurveGeometry}; +use crate::brep::topology::{BrepEnvelope, Face, Orientation}; +use crate::math::{cross, dot}; + +const SAMPLES_PER_USE: usize = 16; + +struct Winding { + id: u32, + hole: bool, + area: f64, + delta: UV, + mean: UV, +} + +impl BrepEnvelope { + pub(crate) fn orient_loops(&mut self) -> Result<(), GeometryError> { + let mut flips = Vec::new(); + for face in &self.topology.faces { + flips.extend(self.misoriented_loops(face)?); + } + if flips.is_empty() { + return Ok(()); + } + self.reverse_loops(&flips) + } + + pub(super) fn reverse_loops(&mut self, loops: &[u32]) -> Result<(), GeometryError> { + for &loop_id in loops { + let start = self.topology.loops[loop_id as usize].start_halfedge; + let mut h = start; + for _ in 0..=self.topology.halfedges.len() { + let use_ = &mut self.topology.halfedges[h as usize]; + use_.reverse(); + h = use_.prev.ok_or_else(|| invalid("nonterminating loop"))?; + if h == start { + break; + } + } + } + let mut outgoing = vec![None; self.topology.vertices.len()]; + for use_ in &self.topology.halfedges { + outgoing[use_.from as usize].get_or_insert(use_.id); + } + let halfedges = &self.topology.halfedges; + for vertex in &mut self.topology.vertices { + if let Some(h) = vertex.outgoing_halfedge { + if halfedges[h as usize].from != vertex.id { + vertex.outgoing_halfedge = outgoing[vertex.id as usize]; + } + } + } + Ok(()) + } + + pub(super) fn check_loop_winding(&self) -> Result<(), GeometryError> { + for face in &self.topology.faces { + if !self.misoriented_loops(face)?.is_empty() { + return Err(invalid(format!( + "face {} ('{}') has loops running against its material normal", + face.id, face.key + ))); + } + } + Ok(()) + } + + fn misoriented_loops(&self, face: &Face) -> Result, GeometryError> { + let Some(material) = self.material_sign(face)? else { + return Ok(Vec::new()); + }; + let periods = self.face_periods(face)?; + let mut windings = Vec::new(); + for &loop_id in std::iter::once(&face.trim.outer).chain(&face.trim.holes) { + windings.push(self.winding(loop_id, periods)?); + } + let wraps = |w: &Winding, axis: usize| { + periods[axis].is_some_and(|period| w.delta[axis].abs() > 0.5 * period) + }; + let mut flips = Vec::new(); + let mut wrapping = Vec::new(); + for w in &windings { + if wraps(w, 0) || wraps(w, 1) { + wrapping.push(w); + } else if (w.area * material > 0.0) == w.hole { + flips.push(w.id); + } + } + if let [a, b] = wrapping[..] { + let axis = match (wraps(a, 0) && wraps(b, 0), wraps(a, 1) && wraps(b, 1)) { + (true, false) => Some(0), + (false, true) => Some(1), + _ => None, + }; + if let Some(axis) = axis { + flips.extend(band_flips(a, b, axis, material)); + } + } + Ok(flips) + } + + fn material_sign(&self, face: &Face) -> Result, GeometryError> { + let surface = self.geometry.surface(face.surface)?; + let [u, v] = face.trim.uv_bounds; + let centre = [(u.lo + u.hi) * 0.5, (v.lo + v.hi) * 0.5]; + let Ok(normal) = surface.normal_at(centre) else { + return Ok(None); + }; + let jet = surface.derivatives(centre)?; + let chart = dot(cross(jet.du, jet.dv), normal); + if chart == 0.0 { + return Ok(None); + } + Ok(Some(chart.signum() * face.sense.multiplier())) + } + + fn face_periods(&self, face: &Face) -> Result<[Option; 2], GeometryError> { + let surface = self.geometry.surface(face.surface)?; + Ok(surface.charts()[face.trim.chart as usize].periods) + } + + fn winding(&self, loop_id: u32, periods: [Option; 2]) -> Result { + let points = self.loop_samples(loop_id, periods)?; + let mut area = 0.0; + let mut mean = [0.0; 2]; + let count = (points.len() - 1) as f64; + for pair in points.windows(2) { + area -= 0.5 * (pair[0][1] + pair[1][1]) * (pair[1][0] - pair[0][0]); + for axis in 0..2 { + mean[axis] += pair[0][axis] / count; + } + } + let (first, last) = (points[0], points[points.len() - 1]); + Ok(Winding { + id: loop_id, + hole: self.topology.loops[loop_id as usize].is_hole, + area, + delta: [last[0] - first[0], last[1] - first[1]], + mean, + }) + } + + fn loop_samples( + &self, + loop_id: u32, + periods: [Option; 2], + ) -> Result, GeometryError> { + let start = self.topology.loops[loop_id as usize].start_halfedge; + let mut points: Vec = Vec::new(); + let mut h = start; + for _ in 0..=self.topology.halfedges.len() { + let use_ = &self.topology.halfedges[h as usize]; + let range = self.topology.edges[use_.edge as usize].geometry.range(); + let pcurve = use_ + .geometry_use + .pcurve + .ok_or_else(|| invalid("missing face pcurve"))?; + let straight = matches!( + self.geometry.pcurves[pcurve as usize], + PcurveGeometry::Line2 { .. } + ); + let samples = if straight && periods == [None, None] { + 1 + } else { + SAMPLES_PER_USE + }; + for i in 0..=samples { + let s = i as f64 / samples as f64; + let s = match use_.geometry_use.sense { + Orientation::Forward => s, + Orientation::Reverse => 1.0 - s, + }; + let uv = self + .geometry + .pcurve_at(pcurve, range.lo + range.width() * s)?; + let mut uv = period_lifted_uv(uv, periods, use_.geometry_use.periodic_lift); + if let Some(previous) = points.last() { + for axis in 0..2 { + if let Some(period) = periods[axis] { + uv[axis] += ((previous[axis] - uv[axis]) / period).round() * period; + } + } + } + if i > 0 || points.is_empty() { + points.push(uv); + } + } + h = use_.next.ok_or_else(|| invalid("nonterminating loop"))?; + if h == start { + return Ok(points); + } + } + Err(invalid("nonterminating loop")) + } +} + +fn band_flips(a: &Winding, b: &Winding, axis: usize, material: f64) -> Vec { + let other = 1 - axis; + let (low, high) = if a.mean[other] <= b.mean[other] { + (a, b) + } else { + (b, a) + }; + let forward = if axis == 0 { 1.0 } else { -1.0 }; + let mut flips = Vec::new(); + if low.delta[axis] * material * forward < 0.0 { + flips.push(low.id); + } + if high.delta[axis] * material * forward > 0.0 { + flips.push(high.id); + } + flips +} diff --git a/main/opengeometry/src/exchange/fit_bezier/mod.rs b/main/opengeometry/src/exchange/fit_bezier/mod.rs new file mode 100644 index 00000000..3b0c41ce --- /dev/null +++ b/main/opengeometry/src/exchange/fit_bezier/mod.rs @@ -0,0 +1,252 @@ +#[cfg(test)] +mod tests; + +use crate::brep::{CurveGeometry, GeometryError, Surface, SurfaceGeometry, SurfaceJet2, UVBox}; +use crate::math::{norm, sub, Interval, Point3}; + +const SAMPLES: usize = 16; +const MAX_DEPTH: usize = 40; + +#[derive(Clone, Debug)] +pub(super) struct FittedCurve { + pub(super) controls: Vec, + pub(super) knots: Vec, + pub(super) multiplicities: Vec, + pub(super) error_bound: f64, +} + +#[derive(Clone, Debug)] +pub(super) struct FittedSurface { + pub(super) controls: Vec>, + pub(super) knots: [Vec; 2], + pub(super) multiplicities: [Vec; 2], + pub(super) error_bound: f64, +} + +struct Grid { + values: [Vec; 2], + step: [f64; 2], +} + +fn bernstein(t: f64) -> [f64; 4] { + let s = 1.0 - t; + [s * s * s, 3.0 * s * s * t, 3.0 * s * t * t, t * t * t] +} + +fn knot_vector(values: &[f64]) -> (Vec, Vec) { + let last = values.len() - 1; + let multiplicities = (0..=last) + .map(|i| if i == 0 || i == last { 4 } else { 3 }) + .collect(); + (values.to_vec(), multiplicities) +} + +fn positive_budget(tolerance: f64, budget: usize) -> Result<(), GeometryError> { + if !tolerance.is_finite() || tolerance <= 0.0 || budget == 0 { + return Err(GeometryError::InvalidGeometry( + "B-spline fitting requires a positive tolerance and budget".into(), + )); + } + Ok(()) +} + +fn hermite_span( + curve: &CurveGeometry, + a: f64, + b: f64, +) -> Result<([Point3; 4], f64), GeometryError> { + let h = b - a; + let (p0, p3) = (curve.elementary_point(a)?, curve.elementary_point(b)?); + let (t0, t1) = (curve.elementary_tangent(a)?, curve.elementary_tangent(b)?); + let c = [ + p0, + std::array::from_fn(|i| p0[i] + t0[i] * h / 3.0), + std::array::from_fn(|i| p3[i] - t1[i] * h / 3.0), + p3, + ]; + let mut error: f64 = 0.0; + for k in 1..SAMPLES { + let s = k as f64 / SAMPLES as f64; + let w = bernstein(s); + let fitted: Point3 = std::array::from_fn(|i| (0..4).map(|j| w[j] * c[j][i]).sum()); + error = error.max(norm(sub(fitted, curve.elementary_point(a + s * h)?))); + } + Ok((c, error)) +} + +pub(super) fn fit_curve( + curve: &CurveGeometry, + range: Interval, + tolerance: f64, + max_segments: usize, +) -> Result { + positive_budget(tolerance, max_segments)?; + let mut stack = vec![(range.lo, range.hi, 0usize)]; + let mut accepted = Vec::new(); + while let Some((a, b, depth)) = stack.pop() { + let (c, error) = hermite_span(curve, a, b)?; + if error <= tolerance { + accepted.push((a, c, error)); + continue; + } + if depth >= MAX_DEPTH || accepted.len() + stack.len() + 2 > max_segments { + return Err(GeometryError::LimitExceeded( + "B-spline curve fit spans".into(), + )); + } + let m = 0.5 * (a + b); + stack.push((m, b, depth + 1)); + stack.push((a, m, depth + 1)); + } + accepted.sort_by(|x, y| x.0.total_cmp(&y.0)); + let mut controls = Vec::with_capacity(accepted.len() * 3 + 1); + let mut error_bound: f64 = 0.0; + for (index, (_, c, error)) in accepted.iter().enumerate() { + controls.extend_from_slice(&c[usize::from(index > 0)..]); + error_bound = error_bound.max(*error); + } + let mut values: Vec = accepted.iter().map(|x| x.0).collect(); + values.push(range.hi); + let (knots, multiplicities) = knot_vector(&values); + Ok(FittedCurve { + controls, + knots, + multiplicities, + error_bound, + }) +} + +fn grid(domain: UVBox, n: [usize; 2]) -> Grid { + Grid { + values: std::array::from_fn(|axis| { + (0..=n[axis]) + .map(|i| domain[axis].lo + domain[axis].width() * i as f64 / n[axis] as f64) + .collect() + }), + step: std::array::from_fn(|axis| domain[axis].width() / n[axis] as f64), + } +} + +fn corner(index: usize) -> (usize, f64) { + match index % 3 { + 0 => (index / 3, 0.0), + 1 => (index / 3, 1.0), + _ => (index / 3 + 1, -1.0), + } +} + +fn grid_jets( + surface: &SurfaceGeometry, + grid: &Grid, +) -> Result>, GeometryError> { + grid.values[0] + .iter() + .map(|&u| { + grid.values[1] + .iter() + .map(|&v| Ok((surface.point_at([u, v])?, surface.derivatives([u, v])?))) + .collect() + }) + .collect() +} + +fn hermite_controls( + surface: &SurfaceGeometry, + grid: &Grid, +) -> Result>, GeometryError> { + let jets = grid_jets(surface, grid)?; + let [nu, nv] = grid.values.each_ref().map(|v| v.len() - 1); + Ok((0..=3 * nu) + .map(|i| { + (0..=3 * nv) + .map(|j| { + let ((ci, su), (cj, sv)) = (corner(i), corner(j)); + let (p, jet) = &jets[ci][cj]; + let (a, b) = (su * grid.step[0] / 3.0, sv * grid.step[1] / 3.0); + std::array::from_fn(|k| { + p[k] + a * jet.du[k] + b * jet.dv[k] + a * b * jet.duv[k] + }) + }) + .collect() + }) + .collect()) +} + +fn patch_point(controls: &[Vec], patch: [usize; 2], s: f64, t: f64) -> Point3 { + let (wu, wv) = (bernstein(s), bernstein(t)); + std::array::from_fn(|k| { + (0..4) + .map(|x| { + (0..4) + .map(|y| wu[x] * wv[y] * controls[3 * patch[0] + x][3 * patch[1] + y][k]) + .sum::() + }) + .sum() + }) +} + +fn patch_errors( + surface: &SurfaceGeometry, + grid: &Grid, + controls: &[Vec], +) -> Result<[f64; 3], GeometryError> { + let mut errors = [0.0_f64; 3]; + for pi in 0..grid.values[0].len() - 1 { + for pj in 0..grid.values[1].len() - 1 { + for a in 0..=SAMPLES { + for b in 0..=SAMPLES { + let (s, t) = (a as f64 / SAMPLES as f64, b as f64 / SAMPLES as f64); + let exact = surface.point_at([ + grid.values[0][pi] + s * grid.step[0], + grid.values[1][pj] + t * grid.step[1], + ])?; + let e = norm(sub(patch_point(controls, [pi, pj], s, t), exact)); + errors[0] = errors[0].max(e); + if b == 0 || b == SAMPLES { + errors[1] = errors[1].max(e); + } + if a == 0 || a == SAMPLES { + errors[2] = errors[2].max(e); + } + } + } + } + } + Ok(errors) +} + +pub(super) fn fit_surface( + surface: &SurfaceGeometry, + domain: UVBox, + tolerance: f64, + max_patches: usize, +) -> Result { + positive_budget(tolerance, max_patches)?; + let mut n = [1usize, 1usize]; + loop { + let grid = grid(domain, n); + let controls = hermite_controls(surface, &grid)?; + let [error, along_u, along_v] = patch_errors(surface, &grid, &controls)?; + if error <= tolerance { + let [ku, kv] = grid.values.each_ref().map(|v| knot_vector(v)); + return Ok(FittedSurface { + controls, + knots: [ku.0, kv.0], + multiplicities: [ku.1, kv.1], + error_bound: error, + }); + } + let (refine_u, refine_v) = (along_u > tolerance / 4.0, along_v > tolerance / 4.0); + if refine_u || !refine_v { + n[0] *= 2; + } + if refine_v || !refine_u { + n[1] *= 2; + } + if n[0].saturating_mul(n[1]) > max_patches { + return Err(GeometryError::LimitExceeded( + "B-spline surface fit patches".into(), + )); + } + } +} diff --git a/main/opengeometry/src/exchange/fit_bezier/tests.rs b/main/opengeometry/src/exchange/fit_bezier/tests.rs new file mode 100644 index 00000000..cd30e15b --- /dev/null +++ b/main/opengeometry/src/exchange/fit_bezier/tests.rs @@ -0,0 +1,72 @@ +use super::*; +use crate::brep::{Frame3, Wrap}; + +fn wrap() -> Wrap { + Wrap { + frame: Frame3::from_axis([1.0, 2.0, 3.0], [0.2, 1.0, 0.1], [1.0, 0.0, 0.3]).unwrap(), + radius: 2.8, + } +} + +#[test] +fn a_wrapped_plane_fits_within_tolerance_between_its_samples() { + let surface = SurfaceGeometry::Wrapped { + wrap: wrap(), + surface: Box::new(SurfaceGeometry::Plane { + frame: Frame3::from_axis([0.0; 3], [0.24, -0.97, 0.0], [0.97, 0.24, 0.0]).unwrap(), + }), + }; + let domain = [ + Interval::new(-0.4, 4.5).unwrap(), + Interval::new(1.8, 4.2).unwrap(), + ]; + let fitted = fit_surface(&surface, domain, 1e-6, 1 << 16).unwrap(); + assert!(fitted.error_bound <= 1e-6); + let n = [ + (fitted.controls.len() - 1) / 3, + (fitted.controls[0].len() - 1) / 3, + ]; + let step = [0, 1].map(|i| domain[i].width() / n[i] as f64); + for i in 0..n[0] { + for j in 0..n[1] { + for (s, t) in [(0.37, 0.61), (0.93, 0.05), (0.5, 0.5)] { + let uv = [ + domain[0].lo + (i as f64 + s) * step[0], + domain[1].lo + (j as f64 + t) * step[1], + ]; + let p = patch_point(&fitted.controls, [i, j], s, t); + assert!(norm(sub(p, surface.point_at(uv).unwrap())) <= 2e-6); + } + } + } + assert_eq!(fitted.knots[0].len(), n[0] + 1); + assert_eq!(fitted.multiplicities[1].iter().sum::(), 3 * n[1] + 5); +} + +#[test] +fn a_wrapped_circle_fits_with_joined_spans() { + let curve = CurveGeometry::Wrapped { + wrap: wrap(), + curve: Box::new(CurveGeometry::Circle { + frame: Frame3 { + origin: [1.0, 5.0, 3.0], + ..Frame3::IDENTITY + }, + radius: 0.5, + }), + }; + let range = Interval::new(0.0, std::f64::consts::TAU).unwrap(); + let fitted = fit_curve(&curve, range, 1e-6, 20_000).unwrap(); + assert!(fitted.error_bound <= 1e-6); + let spans = fitted.knots.len() - 1; + assert_eq!(fitted.controls.len(), 3 * spans + 1); + assert!(norm(sub(fitted.controls[0], fitted.controls[3 * spans])) < 1e-12); + for k in 0..spans { + let (a, b) = (fitted.knots[k], fitted.knots[k + 1]); + let w = bernstein(0.3); + let p: Point3 = + std::array::from_fn(|i| (0..4).map(|j| w[j] * fitted.controls[3 * k + j][i]).sum()); + let exact = curve.elementary_point(a + 0.3 * (b - a)).unwrap(); + assert!(norm(sub(p, exact)) <= 2e-6); + } +} diff --git a/main/opengeometry/src/exchange/ifc_body/curves.rs b/main/opengeometry/src/exchange/ifc_body/curves.rs index 2fcdbd0a..24d88c5a 100644 --- a/main/opengeometry/src/exchange/ifc_body/curves.rs +++ b/main/opengeometry/src/exchange/ifc_body/curves.rs @@ -1,5 +1,7 @@ use super::entities::{enumeration, real, reals, reference, references, Entities, IfcValue}; -use crate::brep::{BrepEnvelope, CurveGeometry, EdgeGeometry, GeometryError, Orientation}; +use crate::brep::{ + unsupported_wrapped, BrepEnvelope, CurveGeometry, EdgeGeometry, GeometryError, Orientation, +}; use crate::exchange::fit_curve::{fit_intersection_curve, FittedIntersectionCurve}; use crate::math::{norm, Point3}; use std::f64::consts::TAU; @@ -133,6 +135,7 @@ fn add_curve(entities: &mut Entities, geometry: &CurveGeometry) -> Result return Err(unsupported_wrapped("IFC export")), }) } diff --git a/main/opengeometry/src/exchange/ifc_body/surfaces.rs b/main/opengeometry/src/exchange/ifc_body/surfaces.rs index 3c69c9f0..f214fd7f 100644 --- a/main/opengeometry/src/exchange/ifc_body/surfaces.rs +++ b/main/opengeometry/src/exchange/ifc_body/surfaces.rs @@ -1,5 +1,7 @@ use super::entities::{enumeration, real, reference, references, Entities, IfcValue}; -use crate::brep::{BrepEnvelope, Frame3, GeometryError, SurfaceGeometry}; +use crate::brep::{ + unsupported_conoid, unsupported_wrapped, BrepEnvelope, Frame3, GeometryError, SurfaceGeometry, +}; use crate::math::scale; pub(super) fn add_surfaces( @@ -39,6 +41,8 @@ pub(super) fn add_surfaces( let height = cone_height(brep, face.surface)?; add_cone(entities, *frame, *semi_angle, height) } + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("IFC export")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("IFC export")), }; surfaces[face.surface as usize] = Some(id); } diff --git a/main/opengeometry/src/exchange/mod.rs b/main/opengeometry/src/exchange/mod.rs index 346095bb..a8a33bb1 100644 --- a/main/opengeometry/src/exchange/mod.rs +++ b/main/opengeometry/src/exchange/mod.rs @@ -1,3 +1,4 @@ +mod fit_bezier; mod fit_curve; pub mod ifc_body; mod part21; diff --git a/main/opengeometry/src/exchange/preflight.rs b/main/opengeometry/src/exchange/preflight.rs index 97fa7bbe..51a0a589 100644 --- a/main/opengeometry/src/exchange/preflight.rs +++ b/main/opengeometry/src/exchange/preflight.rs @@ -51,6 +51,10 @@ pub(super) fn preflight(brep: &BrepEnvelope, scale: f64) -> Result { &frame.origin } + CurveGeometry::Wrapped { wrap, .. } => { + frame_bound = frame_bound.max(frame_error(wrap.frame, bounds)?); + &wrap.frame.origin + } CurveGeometry::Intersection { .. } => continue, }; magnitude = origin.iter().fold(magnitude, |m, v| m.max(v.abs())); @@ -219,6 +223,15 @@ fn surface_numbers(surface: &SurfaceGeometry, numbers: &mut Vec) { frame_numbers(*frame, numbers); numbers.extend([major_radius, minor_radius]); } + SurfaceGeometry::Wrapped { wrap, surface } => { + frame_numbers(wrap.frame, numbers); + numbers.push(wrap.radius); + surface_numbers(surface, numbers); + } + SurfaceGeometry::Conoid { frame, c } => { + frame_numbers(*frame, numbers); + numbers.extend(c); + } } } @@ -243,6 +256,11 @@ fn curve_numbers(curve: &CurveGeometry, numbers: &mut Vec) { numbers.extend([major_radius, minor_radius]); } CurveGeometry::Intersection { definition } => index_numbers([definition], numbers), + CurveGeometry::Wrapped { wrap, curve } => { + frame_numbers(wrap.frame, numbers); + numbers.push(wrap.radius); + curve_numbers(curve, numbers); + } } } diff --git a/main/opengeometry/src/exchange/step/body.rs b/main/opengeometry/src/exchange/step/body.rs index 9166646b..ac6f5584 100644 --- a/main/opengeometry/src/exchange/step/body.rs +++ b/main/opengeometry/src/exchange/step/body.rs @@ -1,6 +1,7 @@ use super::entities::{ bspline_curve, curve, pcurve, placement, point, real, refs, sense, PcurveOnSurface, }; +use super::wrapped::{add_fitted_surface, add_wrapped_curve}; use crate::brep::{ BrepEnvelope, CurveGeometry, Edge, EdgeGeometry, GeometryError, Orientation, PcurveGeometry, SurfaceGeometry, @@ -42,7 +43,7 @@ pub(super) fn emit_body( mut exchange_bound: f64, ) -> Result { let fitting_budget = brep.accuracy.exchange - exchange_bound; - let surfaces = add_surfaces(writer, brep, scale)?; + let (surfaces, surface_error) = add_surfaces(writer, brep, scale, fitting_budget)?; let vertices = add_vertices(writer, brep, scale); let body_entities = BodyEntities { brep, @@ -58,7 +59,7 @@ pub(super) fn emit_body( pcurveless_edges, } = add_edges(writer, &body_entities, fitting_budget)?; let (faces, collapsed_chart_uses) = add_faces(writer, brep, &surfaces, &vertices, &edges)?; - exchange_bound += fitting_error; + exchange_bound += fitting_error.max(surface_error); if exchange_bound > brep.accuracy.exchange { return Err(GeometryError::LimitExceeded( "STEP fitted curves exceed the exchange error budget".into(), @@ -86,13 +87,25 @@ fn add_surfaces( writer: &mut Part21Writer, brep: &BrepEnvelope, scale: f64, -) -> Result>, GeometryError> { + fitting_budget: f64, +) -> Result<(Vec>, f64), GeometryError> { let mut surfaces = vec![None; brep.geometry.surfaces.len()]; + let mut fitting_error: f64 = 0.0; for face in &brep.topology.faces { if surfaces[face.surface as usize].is_some() { continue; } let surface = brep.geometry.surface(face.surface)?; + if matches!( + surface, + SurfaceGeometry::Wrapped { .. } | SurfaceGeometry::Conoid { .. } + ) { + let (id, error) = + add_fitted_surface(writer, brep, face.surface, fitting_budget, scale)?; + fitting_error = fitting_error.max(error); + surfaces[face.surface as usize] = Some(id); + continue; + } let frame = placement(writer, *surface.frame(), scale); let expression = match surface { SurfaceGeometry::Plane { .. } => format!("PLANE('',#{frame})"), @@ -114,10 +127,15 @@ fn add_surfaces( real(major_radius * scale), real(minor_radius * scale) ), + SurfaceGeometry::Wrapped { .. } | SurfaceGeometry::Conoid { .. } => { + return Err(GeometryError::UnsupportedGeometry( + "STEP wrapped and conoid surfaces require B-spline fitting".into(), + )) + } }; surfaces[face.surface as usize] = Some(writer.add_entity(expression)); } - Ok(surfaces) + Ok((surfaces, fitting_error)) } fn add_vertices(writer: &mut Part21Writer, brep: &BrepEnvelope, scale: f64) -> Vec { @@ -176,6 +194,12 @@ fn add_edges( fitted_curves[curve_id as usize] = Some(fitted); id } + CurveGeometry::Wrapped { .. } => { + let (id, error) = + add_wrapped_curve(writer, brep, curve_id, fitting_budget, scale)?; + fitting_error = fitting_error.max(error); + id + } _ => curve(writer, geometry, scale)?, }; curves[curve_id as usize] = Some(id); diff --git a/main/opengeometry/src/exchange/step/entities.rs b/main/opengeometry/src/exchange/step/entities.rs index b8d863b7..5f22753d 100644 --- a/main/opengeometry/src/exchange/step/entities.rs +++ b/main/opengeometry/src/exchange/step/entities.rs @@ -46,7 +46,7 @@ pub(super) fn curve( real(minor_radius * scale) )) } - CurveGeometry::Intersection { .. } => { + CurveGeometry::Intersection { .. } | CurveGeometry::Wrapped { .. } => { return Err(GeometryError::UnsupportedGeometry( "STEP numerical branches require bounded export-curve fitting".into(), )) diff --git a/main/opengeometry/src/exchange/step/mod.rs b/main/opengeometry/src/exchange/step/mod.rs index 1d5fbeeb..24504180 100644 --- a/main/opengeometry/src/exchange/step/mod.rs +++ b/main/opengeometry/src/exchange/step/mod.rs @@ -4,6 +4,7 @@ mod product; mod report; #[cfg(test)] mod tests; +mod wrapped; pub(crate) use report::{StepBodyInput, StepExportFailure}; pub use report::{StepBodyReport, StepExportReport, StepReport, StepSkipped}; diff --git a/main/opengeometry/src/exchange/step/tests.rs b/main/opengeometry/src/exchange/step/tests.rs index de60a67d..1f0975f2 100644 --- a/main/opengeometry/src/exchange/step/tests.rs +++ b/main/opengeometry/src/exchange/step/tests.rs @@ -1,7 +1,7 @@ use super::{export_bodies, export_step, StepBodyInput}; use crate::brep::{ - coarse_accuracy, BrepEnvelope, Curve, CurveGeometry, EdgeGeometry, Frame3, GeometryError, - IntersectionDefinition, IntersectionSide, PcurveGeometry, Surface, TraceAnchor, + coarse_accuracy, wrapped_sector, BrepEnvelope, Curve, CurveGeometry, EdgeGeometry, Frame3, + GeometryError, IntersectionDefinition, IntersectionSide, PcurveGeometry, Surface, TraceAnchor, }; use crate::math::Interval; use crate::operations::modifying::boolean::{boolean_spheres, BooleanOp}; @@ -224,3 +224,117 @@ fn two_million_entity_export_is_limit_exceeded() { matches!(&failure.error, GeometryError::LimitExceeded(message) if message.contains("2,000,000")) ); } + +#[test] +fn a_wrapped_side_exports_as_b_splines_within_the_exchange_budget() { + let brep = wrapped_sector(); + let (step, report) = export_step(&brep, "metre").unwrap(); + assert_eq!(report.faces, 6); + assert_eq!(step.matches("B_SPLINE_SURFACE_WITH_KNOTS").count(), 1); + assert_eq!(step.matches("B_SPLINE_CURVE_WITH_KNOTS").count(), 2); + assert_eq!(step.matches("=PCURVE(").count(), 2 * report.edges); + assert!(report.exchange_error_bound <= brep.accuracy.exchange); +} + +type Entities = std::collections::HashMap; + +fn entities(step: &str) -> Entities { + step.lines() + .filter_map(|line| { + let (id, rest) = line.strip_prefix('#')?.split_once('=')?; + let (name, args) = rest.split_once('(')?; + Some((id.parse().ok()?, (name.to_string(), args.to_string()))) + }) + .collect() +} + +fn refs(args: &str) -> Vec { + args.split('#') + .skip(1) + .map(|s| s.split(|c: char| !c.is_ascii_digit()).next().unwrap()) + .map(|s| s.parse().unwrap()) + .collect() +} + +fn flag(args: &str) -> f64 { + if args.trim_end_matches([')', ';']).ends_with(".T.") { + 1.0 + } else { + -1.0 + } +} + +fn axis(entities: &Entities, placement: u32) -> [f64; 3] { + let direction = &entities[&refs(&entities[&placement].1)[1]].1; + let inner = direction + .split_once("(") + .unwrap() + .1 + .split(')') + .next() + .unwrap(); + let v: Vec = inner.split(',').map(|s| s.parse().unwrap()).collect(); + [v[0], v[1], v[2]] +} + +fn circular_bound_turns(step: &str) -> Vec<(String, f64)> { + let e = entities(step); + let mut turns = Vec::new(); + for (name, args) in e.values().filter(|(n, _)| n == "ADVANCED_FACE") { + assert_eq!(name, "ADVANCED_FACE"); + let face_refs = refs(args); + let (surface, bounds) = face_refs.split_last().unwrap(); + if e[surface].0 != "PLANE" { + continue; + } + let normal = axis(&e, refs(&e[surface].1)[0]).map(|v| v * flag(args)); + for bound in bounds { + let (kind, bound_args) = &e[bound]; + let edges = refs(&e[&refs(bound_args)[0]].1); + let [oriented] = edges[..] else { continue }; + let oriented_args = &e[&oriented].1; + let edge_args = &e[&refs(oriented_args)[0]].1; + let mut curve = &e[&refs(edge_args)[2]]; + if curve.0 == "SURFACE_CURVE" || curve.0 == "SEAM_CURVE" { + curve = &e[&refs(&curve.1)[0]]; + } + if curve.0 != "CIRCLE" { + continue; + } + let circle_axis = axis(&e, refs(&curve.1)[0]); + let along: f64 = (0..3).map(|i| circle_axis[i] * normal[i]).sum(); + let sense = flag(bound_args) * flag(oriented_args) * flag(edge_args); + turns.push((kind.clone(), along.signum() * sense)); + } + } + turns +} + +#[test] +fn hole_bounds_run_clockwise_about_the_face_normal() { + let bodies = [ + primitives::annular_cylinder("a".into(), frame(), 0.4, 1.0, 2.0, coarse_accuracy(1e-6)), + primitives::cylinder_with_circular_hole( + "w".into(), + frame(), + frame(), + 0.3, + 1.5, + 2.0, + coarse_accuracy(1e-6), + ), + ]; + for brep in bodies { + let (step, _) = export_step(&brep.unwrap(), "metre").unwrap(); + let turns = circular_bound_turns(&step); + assert_eq!(turns.len(), 4, "{turns:?}"); + for (kind, turn) in turns { + let expected = if kind == "FACE_OUTER_BOUND" { + 1.0 + } else { + -1.0 + }; + assert_eq!(turn, expected, "{kind} runs the wrong way"); + } + } +} diff --git a/main/opengeometry/src/exchange/step/wrapped.rs b/main/opengeometry/src/exchange/step/wrapped.rs new file mode 100644 index 00000000..17781d8f --- /dev/null +++ b/main/opengeometry/src/exchange/step/wrapped.rs @@ -0,0 +1,126 @@ +use super::entities::{bspline_curve, point, real, refs}; +use crate::brep::{BrepEnvelope, EdgeGeometry, GeometryError, Surface, SurfaceGeometry, UVBox}; +use crate::exchange::fit_bezier::{fit_curve, fit_surface, FittedSurface}; +use crate::exchange::part21::Part21Writer; +use crate::math::Interval; + +const MAX_PATCHES: usize = 1 << 16; +const MAX_SPANS: usize = 20_000; +const REACH: f64 = 0.1; + +fn check_budget(budget: f64) -> Result<(), GeometryError> { + if budget <= 0.0 { + return Err(GeometryError::LimitExceeded( + "STEP exchange budget leaves no room for B-spline fitting".into(), + )); + } + Ok(()) +} + +pub(super) fn add_fitted_surface( + writer: &mut Part21Writer, + brep: &BrepEnvelope, + surface_id: u32, + budget: f64, + scale: f64, +) -> Result<(usize, f64), GeometryError> { + check_budget(budget)?; + let surface = brep.geometry.surface(surface_id)?; + let domain = reached_past(surface, support_domain(brep, surface_id)?)?; + let fitted = fit_surface(surface, domain, budget, MAX_PATCHES)?; + Ok((bspline_surface(writer, &fitted, scale), fitted.error_bound)) +} + +fn support_domain(brep: &BrepEnvelope, surface_id: u32) -> Result { + brep.topology + .faces + .iter() + .filter(|face| face.surface == surface_id) + .map(|face| face.trim.uv_bounds) + .reduce(|a, b| [a[0].hull(b[0]), a[1].hull(b[1])]) + .ok_or_else(|| GeometryError::InvalidTopology("STEP surface has no face".into())) +} + +fn reached_past(surface: &SurfaceGeometry, domain: UVBox) -> Result { + let periods = surface + .charts() + .first() + .ok_or_else(|| GeometryError::InvalidGeometry("surface has no parameter chart".into()))? + .periods; + let side = |i: usize| { + let d = domain[i]; + let room = periods[i].map_or(f64::INFINITY, |p| (p - d.width()) / 2.0); + let pad = (REACH * d.width()).min(0.9 * room.max(0.0)); + Interval::new(d.lo - pad, d.hi + pad) + }; + Ok([side(0)?, side(1)?]) +} + +fn bspline_surface(writer: &mut Part21Writer, fitted: &FittedSurface, scale: f64) -> usize { + let rows = fitted + .controls + .iter() + .map(|row| { + let ids: Vec<_> = row + .iter() + .map(|p| point(writer, &p.map(|v| v * scale))) + .collect(); + format!("({})", refs(&ids)) + }) + .collect::>() + .join(","); + let list = |values: &[usize]| { + values + .iter() + .map(usize::to_string) + .collect::>() + .join(",") + }; + let reals = |values: &[f64]| { + values + .iter() + .map(|v| real(*v)) + .collect::>() + .join(",") + }; + writer.add_entity(format!( + "B_SPLINE_SURFACE_WITH_KNOTS('',3,3,({rows}),.UNSPECIFIED.,.F.,.F.,.F.,({}),({}),({}),({}),.UNSPECIFIED.)", + list(&fitted.multiplicities[0]), + list(&fitted.multiplicities[1]), + reals(&fitted.knots[0]), + reals(&fitted.knots[1]), + )) +} + +pub(super) fn add_wrapped_curve( + writer: &mut Part21Writer, + brep: &BrepEnvelope, + curve_id: u32, + budget: f64, + scale: f64, +) -> Result<(usize, f64), GeometryError> { + check_budget(budget)?; + let range = brep + .topology + .edges + .iter() + .filter_map(|edge| match edge.geometry { + EdgeGeometry::Curve { curve, range } if curve == curve_id => Some(range), + _ => None, + }) + .reduce(Interval::hull) + .ok_or_else(|| GeometryError::InvalidTopology("STEP curve has no edge".into()))?; + let fitted = fit_curve( + &brep.geometry.curves[curve_id as usize], + range, + budget, + MAX_SPANS, + )?; + let controls = fitted + .controls + .iter() + .map(|control| control.map(|value| value * scale).to_vec()) + .collect::>(); + let id = bspline_curve(writer, &controls, &fitted.knots, &fitted.multiplicities)?; + Ok((id, fitted.error_bound)) +} diff --git a/main/opengeometry/src/intersection/ssi/fallback.rs b/main/opengeometry/src/intersection/ssi/fallback.rs index 084dbf79..758aaa8a 100644 --- a/main/opengeometry/src/intersection/ssi/fallback.rs +++ b/main/opengeometry/src/intersection/ssi/fallback.rs @@ -59,9 +59,12 @@ fn finite_target_domain( Interval::new(0.0, std::f64::consts::TAU)?, Interval::new(0.0, maximum_radius + margin)?, ]), - SurfaceGeometry::Sphere { .. } | SurfaceGeometry::Torus { .. } => Err( - GeometryError::UnsupportedGeometry("SSI trim surface".into()), - ), + SurfaceGeometry::Sphere { .. } + | SurfaceGeometry::Torus { .. } + | SurfaceGeometry::Wrapped { .. } + | SurfaceGeometry::Conoid { .. } => Err(GeometryError::UnsupportedGeometry( + "SSI trim surface".into(), + )), } } diff --git a/main/opengeometry/src/intersection/ssi/mod.rs b/main/opengeometry/src/intersection/ssi/mod.rs index 32d2b1f2..fccd919e 100644 --- a/main/opengeometry/src/intersection/ssi/mod.rs +++ b/main/opengeometry/src/intersection/ssi/mod.rs @@ -7,8 +7,8 @@ mod tests; use super::ssi_result::{GeometryResult, SsiCurve, SsiResult}; use crate::brep::{ - Accuracy, CurveGeometry, Frame3, GeometryError, GeometryStore, PcurveGeometry, Surface, - SurfaceGeometry, + unsupported_conoid, unsupported_wrapped, Accuracy, CurveGeometry, Frame3, GeometryError, + GeometryStore, PcurveGeometry, Surface, SurfaceGeometry, }; use crate::math::{dot, norm, sub, Interval, Point3}; use coaxial::{ @@ -104,6 +104,8 @@ fn analytic_intersection( major_radius, minor_radius, } => torus_pairs(*frame, *major_radius, *minor_radius, sb), + SurfaceGeometry::Wrapped { .. } => Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => Err(unsupported_conoid("intersection")), } } @@ -131,6 +133,8 @@ fn plane_pairs( major_radius, minor_radius, } => plane_torus(plane, *torus, *major_radius, *minor_radius)?, + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } @@ -158,6 +162,8 @@ fn sphere_pairs( major_radius, minor_radius, } => coaxial_sphere_torus(sphere, sphere_radius, *torus, *major_radius, *minor_radius)?, + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } @@ -193,6 +199,8 @@ fn cylinder_pairs( *major_radius, *minor_radius, )?, + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } @@ -220,6 +228,8 @@ fn cone_pairs( major_radius, minor_radius, } => coaxial_cone_torus(cone, semi_angle, *torus, *major_radius, *minor_radius)?, + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } @@ -263,6 +273,8 @@ fn torus_pairs( *other_major, *other_minor, )?, + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } diff --git a/main/opengeometry/src/intersection/universal_ssi/implicit_bounds.rs b/main/opengeometry/src/intersection/universal_ssi/implicit_bounds.rs index c383eebb..c95f6729 100644 --- a/main/opengeometry/src/intersection/universal_ssi/implicit_bounds.rs +++ b/main/opengeometry/src/intersection/universal_ssi/implicit_bounds.rs @@ -1,4 +1,6 @@ -use crate::brep::{GeometryError, PatchBounds, SurfaceGeometry}; +use crate::brep::{ + unsupported_conoid, unsupported_wrapped, GeometryError, PatchBounds, SurfaceGeometry, +}; use crate::math::{Interval, Point3}; fn local_intervals( @@ -59,6 +61,8 @@ pub(super) fn implicit_interval( .add_interval(z2)? .sub_interval(Interval::point(minor_radius * minor_radius)?)? } + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }) } @@ -87,6 +91,8 @@ pub(super) fn implicit_value( let radial = x.mul_add(x, y * y); (radial.sqrt() - major_radius).powi(2) + z * z - minor_radius * minor_radius } + SurfaceGeometry::Wrapped { .. } => return Err(unsupported_wrapped("intersection")), + SurfaceGeometry::Conoid { .. } => return Err(unsupported_conoid("intersection")), }; if value.is_finite() { Ok(value) @@ -109,5 +115,7 @@ pub(super) fn surface_scale(surface: &SurfaceGeometry) -> f64 { minor_radius, .. } => major_radius + minor_radius, + SurfaceGeometry::Wrapped { wrap, .. } => wrap.radius, + SurfaceGeometry::Conoid { c, .. } => 1.0 + c[1].hypot(c[2]), } } diff --git a/main/opengeometry/src/math/interval.rs b/main/opengeometry/src/math/interval.rs index 7fca2806..51a73e2d 100644 --- a/main/opengeometry/src/math/interval.rs +++ b/main/opengeometry/src/math/interval.rs @@ -27,7 +27,7 @@ fn next_down(x: f64) -> f64 { } impl Interval { - pub(crate) fn new(lo: f64, hi: f64) -> Result { + pub fn new(lo: f64, hi: f64) -> Result { finite(lo)?; finite(hi)?; if lo > hi { diff --git a/main/opengeometry/src/operations/creating/sweep/mod.rs b/main/opengeometry/src/operations/creating/sweep/mod.rs index d53c16c5..34f53fab 100644 --- a/main/opengeometry/src/operations/creating/sweep/mod.rs +++ b/main/opengeometry/src/operations/creating/sweep/mod.rs @@ -105,6 +105,7 @@ fn finish_sheet(mut builder: Builder) -> Result { faces, is_closed: false, }); + builder.brep.orient_loops()?; builder.brep.validate()?; Ok(builder.brep) } diff --git a/main/opengeometry/src/operations/modifying/boolean/assembly/append.rs b/main/opengeometry/src/operations/modifying/boolean/assembly/append.rs index 5bdc5702..6d6157ae 100644 --- a/main/opengeometry/src/operations/modifying/boolean/assembly/append.rs +++ b/main/opengeometry/src/operations/modifying/boolean/assembly/append.rs @@ -229,6 +229,7 @@ pub(crate) fn finish_analytic_result( .max(second.revision) .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("boolean revision overflow".into()))?; + out.orient_loops()?; out.validate()?; let inputs = if first_is_a { [first, second] @@ -303,6 +304,7 @@ pub(crate) fn finish_cylinder_result( .max(b.brep.revision) .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("boolean revision overflow".into()))?; + out.orient_loops()?; out.validate()?; let face_mappings = cylinder_face_mappings(&out, [a, b]); Ok(BooleanResult { diff --git a/main/opengeometry/src/operations/modifying/boolean/batch/mod.rs b/main/opengeometry/src/operations/modifying/boolean/batch/mod.rs index dc5228b1..a5369125 100644 --- a/main/opengeometry/src/operations/modifying/boolean/batch/mod.rs +++ b/main/opengeometry/src/operations/modifying/boolean/batch/mod.rs @@ -5,7 +5,10 @@ use super::dispatch::{boolean_brep_outcome_with_trace, record_handler, HandlerId use super::handlers::{boolean_rectilinear, subtract_vertical_arc_extrusion_batch}; use super::operands::{all_planar, full_cylinder, unique_sources}; use super::types::{BooleanOp, BooleanResult}; -use crate::brep::{Accuracy, BrepEnvelope, GeometryError, PatchBounds, SurfaceGeometry}; +use crate::brep::{ + unsupported_conoid, unsupported_wrapped, Accuracy, BrepEnvelope, GeometryError, PatchBounds, + SurfaceGeometry, +}; use prismatic_profile::subtract_prismatic_profile_batch; pub(super) use prismatic_profile::profile_edges; @@ -52,6 +55,12 @@ fn subtract_planar_cutters_inner( id: String, trace: &mut Trace, ) -> Result { + if host.geometry.has_wrapped() || cutters.iter().any(|c| c.geometry.has_wrapped()) { + return Err(unsupported_wrapped("booleans")); + } + if host.geometry.has_conoid() || cutters.iter().any(|c| c.geometry.has_conoid()) { + return Err(unsupported_conoid("booleans")); + } let mut nested = Trace::default(); let result = record_handler(trace, HandlerId::SubtractPlanarCutters, || { planar_cutters_boolean(host, cutters, id, &mut nested) @@ -133,6 +142,7 @@ fn planar_cutters_boolean( for cutter in cutters { append_analytic_input(&mut combined, cutter)?; } + combined.orient_loops()?; combined.validate()?; let result = boolean_rectilinear(host, &combined, BooleanOp::Subtraction, id)?; let handlers = &mut trace.handlers; diff --git a/main/opengeometry/src/operations/modifying/boolean/batch/prismatic_profile.rs b/main/opengeometry/src/operations/modifying/boolean/batch/prismatic_profile.rs index f6bb82ba..2281a3d6 100644 --- a/main/opengeometry/src/operations/modifying/boolean/batch/prismatic_profile.rs +++ b/main/opengeometry/src/operations/modifying/boolean/batch/prismatic_profile.rs @@ -433,6 +433,7 @@ fn finish_profile_batch_result( .unwrap_or(0) .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("boolean revision overflow".into()))?; + out.orient_loops()?; out.validate()?; Ok(BooleanResult { report: BooleanReport { diff --git a/main/opengeometry/src/operations/modifying/boolean/dispatch/mod.rs b/main/opengeometry/src/operations/modifying/boolean/dispatch/mod.rs index 01188f82..c73e5b02 100644 --- a/main/opengeometry/src/operations/modifying/boolean/dispatch/mod.rs +++ b/main/opengeometry/src/operations/modifying/boolean/dispatch/mod.rs @@ -7,7 +7,7 @@ pub(super) use trace::{record_handler, Trace}; use super::handlers::{coincident_boolean, disjoint_boolean}; use super::types::{BooleanOp, BooleanResult}; -use crate::brep::{BrepEnvelope, GeometryError}; +use crate::brep::{unsupported_conoid, unsupported_wrapped, BrepEnvelope, GeometryError}; use table::{generic_boolean, specialized_boolean}; use trace::record_optional; @@ -60,6 +60,12 @@ fn boolean_brep_inner( ) -> Result { a.validate()?; b.validate()?; + if a.geometry.has_wrapped() || b.geometry.has_wrapped() { + return Err(unsupported_wrapped("booleans")); + } + if a.geometry.has_conoid() || b.geometry.has_conoid() { + return Err(unsupported_conoid("booleans")); + } if a.geometry == b.geometry && a.topology == b.topology && a.solids == b.solids { return record_handler(trace, HandlerId::CoincidentBoolean, || { coincident_boolean(a, b, operation, id) diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/embedded.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/embedded.rs index 0168a48a..fc2fae68 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/embedded.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/embedded.rs @@ -346,7 +346,8 @@ fn add_two_arc_plane_face( SurfaceGeometry::Plane { frame }, two_arc_plane_bounds(frame, arcs, tolerance), uses, - ) + )?; + Ok(()) } fn set_embedded_provenance( diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/parallel.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/parallel.rs index 085a1dba..de0cf6df 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/parallel.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/parallel.rs @@ -94,6 +94,7 @@ pub(super) fn sliced_parallel_cylinder_boolean( face_provenance(sources, FaceRole::Split, false); } result.report.face_mappings = cylinder_face_mappings(&result.brep, [a, b]); + result.brep.orient_loops()?; result.brep.validate()?; } else if operation == BooleanOp::Subtraction { result.report.coincident = @@ -410,7 +411,8 @@ fn add_parallel_caps( SurfaceGeometry::Plane { frame: upper_frame }, planar_bounds, upper_uses, - ) + )?; + Ok(()) } fn parallel_cap_bounds( diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/transverse/host.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/transverse/host.rs index 2faa65f4..94b35df0 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/transverse/host.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/cylinder_cylinder/transverse/host.rs @@ -120,7 +120,8 @@ pub(super) fn add_host_lateral_face( ), ], host_holes, - ) + )?; + Ok(()) } pub(super) fn add_host_caps( @@ -167,5 +168,6 @@ pub(super) fn add_host_caps( axis_b: [0.0, host.radius], }, )], - ) + )?; + Ok(()) } diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/planar/facets.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/planar/facets.rs index 718e963a..ecbbe725 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/planar/facets.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/planar/facets.rs @@ -349,6 +349,7 @@ fn finish_planar_result( a.revision.max(b.revision).checked_add(1).ok_or_else(|| { GeometryError::LimitExceeded("planar Boolean revision overflow".into()) })?; + out.orient_loops()?; out.validate()?; let face_mappings = analytic_face_mappings(&out, [a, b]); Ok(BooleanResult { diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/rectilinear/grid/mod.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/rectilinear/grid/mod.rs index ede51c35..488f7e8d 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/rectilinear/grid/mod.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/rectilinear/grid/mod.rs @@ -241,6 +241,7 @@ fn finish_grid_result( .max(b.brep.revision) .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("boolean revision overflow".into()))?; + out.orient_loops()?; out.validate()?; let face_mappings = [a, b] .into_iter() diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/sphere_sphere.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/sphere_sphere.rs index 24977e0d..d54177e6 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/sphere_sphere.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/sphere_sphere.rs @@ -99,6 +99,8 @@ fn sphere_operands<'a>( Some(SurfaceGeometry::Cone { .. }) => "cone", Some(SurfaceGeometry::Torus { .. }) => "torus", Some(SurfaceGeometry::Plane { .. }) => "planar/compound solid", + Some(SurfaceGeometry::Wrapped { .. }) => "wrapped", + Some(SurfaceGeometry::Conoid { .. }) => "conoid", None => "empty solid", } .to_string() @@ -234,6 +236,7 @@ fn finish_sphere_sphere_result( .max(b.brep.revision) .checked_add(1) .ok_or_else(|| GeometryError::LimitExceeded("boolean revision overflow".into()))?; + out.orient_loops()?; out.validate()?; let report = BooleanReport { operation, diff --git a/main/opengeometry/src/operations/modifying/boolean/handlers/vertical_arc_extrusion/cap_provenance.rs b/main/opengeometry/src/operations/modifying/boolean/handlers/vertical_arc_extrusion/cap_provenance.rs index ac5784b1..f96444a1 100644 --- a/main/opengeometry/src/operations/modifying/boolean/handlers/vertical_arc_extrusion/cap_provenance.rs +++ b/main/opengeometry/src/operations/modifying/boolean/handlers/vertical_arc_extrusion/cap_provenance.rs @@ -282,6 +282,7 @@ fn finish_arc_extrusion_result( .fold(a.revision, |revision, cutter| revision.max(cutter.revision)) .checked_add(1) .ok_or_else(coverage)?; + out.orient_loops()?; out.validate()?; let face_mappings = analytic_face_mappings(&out, std::iter::once(a).chain(cutters.iter().copied())); diff --git a/main/opengeometry/src/operations/modifying/boolean/shell.rs b/main/opengeometry/src/operations/modifying/boolean/shell.rs index 9ad7f441..d75311b7 100644 --- a/main/opengeometry/src/operations/modifying/boolean/shell.rs +++ b/main/opengeometry/src/operations/modifying/boolean/shell.rs @@ -5,6 +5,7 @@ use super::operands::{ full_planar_extrusion, full_sphere, full_torus, prismatic_gap, unique_sources, BoxInput, }; use super::types::{BooleanOp, BooleanResult, FaceMapping}; +use crate::brep::{unsupported_conoid, unsupported_wrapped}; use crate::brep::{BrepEnvelope, EdgeGeometry, Frame3, GeometryError, SurfaceGeometry}; use crate::geom2d::{ inset_curved_region, inset_tolerance, offset_from, oriented_ring, pinched, self_intersects2, @@ -74,6 +75,7 @@ pub fn shell_brep( } }) .collect(); + result.brep.orient_loops()?; result.brep.validate()?; Ok(result) } @@ -84,6 +86,8 @@ fn offset_cavity( inner_id: String, ) -> Result { let body = match input.geometry.surfaces.first() { + Some(_) if input.geometry.has_wrapped() => Err(unsupported_wrapped("shelling")), + Some(_) if input.geometry.has_conoid() => Err(unsupported_conoid("shelling")), Some(SurfaceGeometry::Sphere { .. }) => sphere_cavity(input, thickness, inner_id), Some(SurfaceGeometry::Cylinder { .. }) => cylinder_cavity(input, thickness, inner_id), Some(SurfaceGeometry::Torus { .. }) => torus_cavity(input, thickness, inner_id), @@ -96,6 +100,8 @@ fn offset_cavity( Err(error) => Err(error), }, Some(SurfaceGeometry::Cone { .. }) => cone_cavity(input, thickness, inner_id), + Some(SurfaceGeometry::Wrapped { .. }) => Err(unsupported_wrapped("shelling")), + Some(SurfaceGeometry::Conoid { .. }) => Err(unsupported_conoid("shelling")), None => Err(GeometryError::CoverageGap { families: ["restricted analytic shell".into(), "input solid".into()], }), @@ -466,13 +472,7 @@ fn arc_edged_cavity( } fn revolved(input: &BrepEnvelope) -> bool { - let frame = |surface: &SurfaceGeometry| match *surface { - SurfaceGeometry::Plane { frame } - | SurfaceGeometry::Sphere { frame, .. } - | SurfaceGeometry::Cylinder { frame, .. } - | SurfaceGeometry::Cone { frame, .. } - | SurfaceGeometry::Torus { frame, .. } => frame, - }; + let frame = |surface: &SurfaceGeometry| *surface.frame(); let curved = |surface: &&SurfaceGeometry| !matches!(surface, SurfaceGeometry::Plane { .. }); let surfaces = &input.geometry.surfaces; let Some(axis) = surfaces.iter().find(curved).map(frame) else { diff --git a/main/opengeometry/src/operations/modifying/boolean/tests/generic.rs b/main/opengeometry/src/operations/modifying/boolean/tests/generic.rs index c2b761eb..42eba4c4 100644 --- a/main/opengeometry/src/operations/modifying/boolean/tests/generic.rs +++ b/main/opengeometry/src/operations/modifying/boolean/tests/generic.rs @@ -1,5 +1,5 @@ use super::support::{cylinder, sphere}; -use crate::brep::{Accuracy, CurveGeometry, FaceRole, Frame3}; +use crate::brep::{Accuracy, CurveGeometry, FaceRole, Frame3, GeometryError}; use crate::operations::modifying::boolean::dispatch::boolean_brep; use crate::operations::modifying::boolean::types::BooleanOp; use crate::primitives; @@ -121,7 +121,7 @@ fn generic_closed_loop_imprints_an_off_axis_sphere_cone_intersection() { } #[test] -fn generic_closed_loop_handles_periodic_winding() { +fn generic_closed_loop_with_periodic_winding_refuses_the_outer_sphere_cap() { let accuracy = cylinder("accuracy", 0.0, 1.0, false).accuracy; let cone = primitives::cone("cone".into(), Frame3::IDENTITY, 2.0, 2.0, accuracy).unwrap(); let sphere = primitives::sphere( @@ -134,9 +134,10 @@ fn generic_closed_loop_handles_periodic_winding() { accuracy, ) .unwrap(); - let result = boolean_brep(&cone, &sphere, BooleanOp::Intersection, "winding".into()).unwrap(); - result.brep.validate().unwrap(); - tessellate(&result.brep, 0.01, 2_000_000).unwrap(); + let Err(err) = boolean_brep(&cone, &sphere, BooleanOp::Intersection, "winding".into()) else { + panic!("the intersection keeps the sphere cap outside the cone") + }; + assert!(matches!(err, GeometryError::InvalidTopology(_)), "{err:?}"); } #[test] diff --git a/main/opengeometry/src/operations/modifying/boolean/tests/shell.rs b/main/opengeometry/src/operations/modifying/boolean/tests/shell.rs index 254f61cf..f45a6190 100644 --- a/main/opengeometry/src/operations/modifying/boolean/tests/shell.rs +++ b/main/opengeometry/src/operations/modifying/boolean/tests/shell.rs @@ -1,6 +1,7 @@ use super::support::{extrusion, sphere}; -use crate::brep::{FaceRole, Frame3, GeometryError}; +use crate::brep::{wrapped_sector, FaceRole, Frame3, GeometryError}; use crate::operations::modifying::boolean::shell::shell_brep; +use crate::operations::modifying::boolean::{boolean_brep, BooleanOp}; use crate::primitives; use crate::tessellation::tessellate; @@ -68,3 +69,27 @@ fn restricted_shell_offsets_supported_closed_families() { Err(GeometryError::UnresolvedIntersection(_)) )); } + +#[test] +fn booleans_and_shells_refuse_wrapped_geometry() { + let sector = wrapped_sector(); + let cube = primitives::cuboid( + "cube".into(), + Frame3::IDENTITY, + [1.0, 1.0, 1.0], + sector.accuracy, + ) + .unwrap(); + let refused = |result: Result<_, GeometryError>| { + matches!(result, Err(GeometryError::UnsupportedGeometry(_))) + }; + assert!(refused( + boolean_brep(§or, &cube, BooleanOp::Union, "u".into()).map(|_| ()) + )); + assert!(refused( + boolean_brep(&cube, §or, BooleanOp::Subtraction, "s".into()).map(|_| ()) + )); + assert!(refused( + shell_brep(§or, 0.1, "shell".into()).map(|_| ()) + )); +} diff --git a/main/opengeometry/src/primitives/internal/arc_edged_extrusion.rs b/main/opengeometry/src/primitives/internal/arc_edged_extrusion.rs index 452b488b..284c462c 100644 --- a/main/opengeometry/src/primitives/internal/arc_edged_extrusion.rs +++ b/main/opengeometry/src/primitives/internal/arc_edged_extrusion.rs @@ -297,7 +297,8 @@ fn add_cap_faces( [bounds[0], [-bounds[1][1], -bounds[1][0]]], bottom_outer, bottom_holes, - ) + )?; + Ok(()) } fn cap_uses( diff --git a/main/opengeometry/src/primitives/internal/cylinder_sector.rs b/main/opengeometry/src/primitives/internal/cylinder_sector.rs index 31116a28..a354194a 100644 --- a/main/opengeometry/src/primitives/internal/cylinder_sector.rs +++ b/main/opengeometry/src/primitives/internal/cylinder_sector.rs @@ -197,7 +197,8 @@ fn add_lateral_face( uv_line([lo, 0.0], [0.0, 1.0]), ), ], - ) + )?; + Ok(()) } fn add_sector_caps( @@ -258,7 +259,8 @@ fn add_sector_caps( SurfaceGeometry::Plane { frame: top_frame }, [[-radius, radius]; 2], top_uses, - ) + )?; + Ok(()) } fn add_radial_faces( @@ -328,7 +330,8 @@ fn add_radial_faces( SurfaceGeometry::Plane { frame: end_frame }, [[0.0, height], [0.0, radius]], end_uses, - ) + )?; + Ok(()) } fn tangent(frame: Frame3, angle: f64) -> Point3 { diff --git a/main/opengeometry/src/primitives/internal/cylinder_with_circular_hole.rs b/main/opengeometry/src/primitives/internal/cylinder_with_circular_hole.rs index 6c1913f3..a24132c1 100644 --- a/main/opengeometry/src/primitives/internal/cylinder_with_circular_hole.rs +++ b/main/opengeometry/src/primitives/internal/cylinder_with_circular_hole.rs @@ -282,5 +282,6 @@ fn add_annulus_caps( [[-outer_radius, outer_radius]; 2], outer_upper, vec![inner_upper], - ) + )?; + Ok(()) } diff --git a/main/opengeometry/src/primitives/internal/extruded_loop.rs b/main/opengeometry/src/primitives/internal/extruded_loop.rs index 769eaee1..e3a1e28e 100644 --- a/main/opengeometry/src/primitives/internal/extruded_loop.rs +++ b/main/opengeometry/src/primitives/internal/extruded_loop.rs @@ -83,5 +83,6 @@ pub(super) fn add_plane_side( SurfaceGeometry::Plane { frame: side_frame }, [[-g, norm(sub(destination, origin)) + g], [-g, height + g]], uses, - ) + )?; + Ok(()) } diff --git a/main/opengeometry/src/primitives/internal/linear_extrusion.rs b/main/opengeometry/src/primitives/internal/linear_extrusion.rs index 5f8324a7..3fdc5a0d 100644 --- a/main/opengeometry/src/primitives/internal/linear_extrusion.rs +++ b/main/opengeometry/src/primitives/internal/linear_extrusion.rs @@ -190,7 +190,8 @@ fn add_cap_faces( bottom_bounds, bottom_outer, bottom_holes, - ) + )?; + Ok(()) } fn cap_uses( diff --git a/main/opengeometry/src/primitives/internal/revolved_profile.rs b/main/opengeometry/src/primitives/internal/revolved_profile.rs index 9eb030c3..e25bca40 100644 --- a/main/opengeometry/src/primitives/internal/revolved_profile.rs +++ b/main/opengeometry/src/primitives/internal/revolved_profile.rs @@ -375,7 +375,8 @@ fn add_plane_face( [[-radius, radius]; 2], vec![outer], inner.into_iter().map(|hole| vec![hole]).collect(), - ) + )?; + Ok(()) } fn add_lateral_face( diff --git a/main/opengeometry/src/primitives/revolved_section.rs b/main/opengeometry/src/primitives/revolved_section.rs index 85bd8941..85c6f7d1 100644 --- a/main/opengeometry/src/primitives/revolved_section.rs +++ b/main/opengeometry/src/primitives/revolved_section.rs @@ -163,7 +163,8 @@ fn add_lower_cap( axis_b: [0.0, -r0], }, )], - ) + )?; + Ok(()) } fn add_upper_cap( @@ -188,5 +189,6 @@ fn add_upper_cap( axis_b: [0.0, r1], }, )], - ) + )?; + Ok(()) } diff --git a/main/opengeometry/src/query/classify.rs b/main/opengeometry/src/query/classify.rs index 8ea6b431..0d3f6492 100644 --- a/main/opengeometry/src/query/classify.rs +++ b/main/opengeometry/src/query/classify.rs @@ -1,6 +1,7 @@ use super::classification::PointClassification; use super::face_trim::face_contains_uv; use super::ray_roots::{ray_box_domain, support_roots}; +use super::wrapped_roots::{wrapped_ray_roots, Ray}; use crate::brep::{ unit, BrepEnvelope, Face, GeometryError, PatchBounds, SolidRegion, Surface, SurfaceGeometry, UV, }; @@ -45,16 +46,21 @@ fn classify_with_ray<'a>( return Ok(PointClassification::Outside); }; let mut hits: Vec<(f64, Point3)> = Vec::new(); + let ray = Ray { + origin: point, + direction, + domain, + tolerance: brep.accuracy.intersection, + }; for face in faces { let surface = brep.geometry.surface(face.surface)?; - let Some(roots) = support_roots( - surface, - point, - direction, - domain, - brep.accuracy.intersection, - )? - else { + let roots = match surface { + SurfaceGeometry::Wrapped { .. } => { + wrapped_ray_roots(surface, face.trim.uv_bounds, &ray)? + } + _ => support_roots(surface, point, direction, domain, ray.tolerance)?, + }; + let Some(roots) = roots else { return Ok(PointClassification::Unknown); }; for parameter in roots { diff --git a/main/opengeometry/src/query/mod.rs b/main/opengeometry/src/query/mod.rs index 3ae440d4..fc0fc3c2 100644 --- a/main/opengeometry/src/query/mod.rs +++ b/main/opengeometry/src/query/mod.rs @@ -5,6 +5,7 @@ mod measure; mod ray_roots; #[cfg(test)] mod tests; +mod wrapped_roots; pub use classification::PointClassification; pub use classify::classify_point; diff --git a/main/opengeometry/src/query/ray_roots.rs b/main/opengeometry/src/query/ray_roots.rs index 942d533f..33a7b977 100644 --- a/main/opengeometry/src/query/ray_roots.rs +++ b/main/opengeometry/src/query/ray_roots.rs @@ -68,6 +68,8 @@ pub(super) fn support_roots( domain, tolerance, )?), + SurfaceGeometry::Wrapped { .. } => None, + SurfaceGeometry::Conoid { c, .. } => conoid_roots(o, d, c, domain, tolerance), }; Ok(result.map(|roots| { roots @@ -77,6 +79,45 @@ pub(super) fn support_roots( })) } +fn conoid_roots( + o: Point3, + d: Point3, + c: &[f64; 3], + domain: Interval, + tolerance: f64, +) -> Option> { + let w = [o[2] - c[0], d[2]]; + let l = [c[1] * o[0] + c[2] * o[1], c[1] * d[0] + c[2] * d[1]]; + let square = |p: [f64; 2]| [p[0] * p[0], 2.0 * p[0] * p[1], p[1] * p[1]]; + let radial = [ + o[0].mul_add(o[0], o[1] * o[1]), + 2.0 * o[0].mul_add(d[0], o[1] * d[1]), + d[0].mul_add(d[0], d[1] * d[1]), + ]; + let (w2, l2) = (square(w), square(l)); + let mut coefficients = [0.0; 5]; + for i in 0..3 { + coefficients[i] -= l2[i]; + for j in 0..3 { + coefficients[i + j] += w2[i] * radial[j]; + } + } + let candidates = isolate_candidates(&coefficients, domain, tolerance, 100_000).ok()?; + let on_sheet = |t: f64| { + let rho = (o[0] + t * d[0]).hypot(o[1] + t * d[1]); + let (height, lean) = ((w[0] + t * w[1]) * rho, l[0] + t * l[1]); + rho > tolerance && (height - lean).abs() <= (height + lean).abs() + }; + Some( + candidates + .intervals + .into_iter() + .map(|candidate| refine_polynomial_root(&coefficients, candidate)) + .filter(|t| on_sheet(*t)) + .collect(), + ) +} + fn torus_roots( o: Point3, d: Point3, diff --git a/main/opengeometry/src/query/tests/mod.rs b/main/opengeometry/src/query/tests/mod.rs index 9465023a..0bb3fdf7 100644 --- a/main/opengeometry/src/query/tests/mod.rs +++ b/main/opengeometry/src/query/tests/mod.rs @@ -1,6 +1,6 @@ use super::classification::PointClassification; use super::classify::{classify_point, classify_point_validated}; -use crate::brep::{coarse_accuracy, unit, Accuracy, BrepEnvelope, Frame3}; +use crate::brep::{coarse_accuracy, unit, wrapped_sector, Accuracy, BrepEnvelope, Frame3, SECTOR}; use crate::math::{add, cross, dot, scale, Point3}; use crate::primitives; @@ -433,3 +433,28 @@ fn cuboid_corners_edges_and_face_points_are_boundary() { .collect(), ); } + +#[test] +fn points_on_either_side_of_a_wrapped_wall_classify_correctly() { + let brep = wrapped_sector(); + let w = SECTOR.wrap(); + let mid = SECTOR.inner + SECTOR.thickness / 2.0; + for x in [0.5, 2.0, 3.5] { + let y = x * SECTOR.rise / SECTOR.length; + let inside = w.point([x, y + 0.01, mid]); + let outside = w.point([x, y - 0.01, mid]); + assert_eq!( + classify_point(&brep, inside).unwrap(), + PointClassification::Inside + ); + assert_eq!( + classify_point(&brep, outside).unwrap(), + PointClassification::Outside + ); + } + let middle = w.point([SECTOR.length / 2.0, SECTOR.width / 2.0, mid]); + assert_eq!( + classify_point(&brep, middle).unwrap(), + PointClassification::Inside + ); +} diff --git a/main/opengeometry/src/query/wrapped_roots.rs b/main/opengeometry/src/query/wrapped_roots.rs new file mode 100644 index 00000000..21666f80 --- /dev/null +++ b/main/opengeometry/src/query/wrapped_roots.rs @@ -0,0 +1,123 @@ +use crate::brep::{GeometryError, PatchBounds, Surface, SurfaceGeometry, UVBox}; +use crate::math::{add, cross, dot, norm, scale, sub, Interval, Point3}; + +const MAX_VISITS: usize = 50_000; +const MAX_DEPTH: usize = 24; +const LEAF_FRACTION: f64 = 1.0 / 64.0; +const NEWTON_STEPS: usize = 32; + +pub(super) struct Ray { + pub(super) origin: Point3, + pub(super) direction: Point3, + pub(super) domain: Interval, + pub(super) tolerance: f64, +} + +fn ray_in_box(bounds: PatchBounds, ray: &Ray) -> Option { + let (o, d) = (ray.origin, ray.direction); + let (mut lo, mut hi) = (ray.domain.lo, ray.domain.hi); + for axis in 0..3 { + let (a, b) = (bounds.axes[axis].lo, bounds.axes[axis].hi); + if d[axis] == 0.0 { + if o[axis] < a || o[axis] > b { + return None; + } + continue; + } + let (mut t0, mut t1) = ((a - o[axis]) / d[axis], (b - o[axis]) / d[axis]); + if t0 > t1 { + std::mem::swap(&mut t0, &mut t1); + } + lo = lo.max(t0); + hi = hi.min(t1); + } + Interval::new(lo, hi).ok().filter(|_| lo <= hi) +} + +fn diagonal(bounds: PatchBounds) -> f64 { + norm(std::array::from_fn(|i| bounds.axes[i].width())) +} + +pub(super) fn wrapped_ray_roots( + surface: &SurfaceGeometry, + uv: UVBox, + ray: &Ray, +) -> Result>, GeometryError> { + let leaf = diagonal(surface.enclose(uv)?) * LEAF_FRACTION; + let mut roots: Vec = Vec::new(); + let mut stack = vec![(uv, 0usize)]; + let mut visits = 0usize; + while let Some((b, depth)) = stack.pop() { + visits += 1; + if visits > MAX_VISITS { + return Ok(None); + } + let bounds = surface.enclose(b)?; + let Some(span) = ray_in_box(bounds, ray) else { + continue; + }; + if diagonal(bounds) <= leaf || depth >= MAX_DEPTH { + let start = [b[0].midpoint(), b[1].midpoint(), span.midpoint()]; + if let Some([u, v, t]) = ray_newton(surface, start, ray)? { + if uv[0].contains(u) + && uv[1].contains(v) + && ray.domain.contains(t) + && roots.iter().all(|r| (r - t).abs() > ray.tolerance) + { + roots.push(t); + } + } + continue; + } + for child in halves(surface, b)? { + stack.push((child, depth + 1)); + } + } + Ok(Some(roots)) +} + +fn halves(surface: &SurfaceGeometry, b: UVBox) -> Result<[UVBox; 2], GeometryError> { + let jet = surface.derivatives([b[0].midpoint(), b[1].midpoint()])?; + let axis = usize::from(norm(jet.dv) * b[1].width() > norm(jet.du) * b[0].width()); + let m = b[axis].midpoint(); + let (mut low, mut high) = (b, b); + low[axis] = Interval::new(b[axis].lo, m)?; + high[axis] = Interval::new(m, b[axis].hi)?; + Ok([low, high]) +} + +fn ray_newton( + surface: &SurfaceGeometry, + start: [f64; 3], + ray: &Ray, +) -> Result, GeometryError> { + let mut x = start; + for _ in 0..NEWTON_STEPS { + let uv = [x[0], x[1]]; + let (point, jet) = match surface + .point_at(uv) + .and_then(|p| Ok((p, surface.derivatives(uv)?))) + { + Ok(value) => value, + Err(GeometryError::SingularParameterization) => return Ok(None), + Err(error) => return Err(error), + }; + let r = sub(point, add(ray.origin, scale(ray.direction, x[2]))); + if norm(r) <= ray.tolerance { + return Ok(Some(x)); + } + let m = [jet.du, jet.dv, scale(ray.direction, -1.0)]; + let det = dot(m[0], cross(m[1], m[2])); + if det.abs() <= f64::EPSILON * norm(m[0]) * norm(m[1]) { + return Ok(None); + } + let rhs = scale(r, -1.0); + x[0] += dot(rhs, cross(m[1], m[2])) / det; + x[1] += dot(m[0], cross(rhs, m[2])) / det; + x[2] += dot(m[0], cross(m[1], rhs)) / det; + if x.iter().any(|v| !v.is_finite()) { + return Ok(None); + } + } + Ok(None) +} diff --git a/main/opengeometry/src/tessellation/area_bound.rs b/main/opengeometry/src/tessellation/area_bound.rs index 4dd3c848..af7a6d2d 100644 --- a/main/opengeometry/src/tessellation/area_bound.rs +++ b/main/opengeometry/src/tessellation/area_bound.rs @@ -132,6 +132,7 @@ fn deviation( sense, deflection, ), + SurfaceGeometry::Wrapped { .. } | SurfaceGeometry::Conoid { .. } => None, } } diff --git a/main/opengeometry/src/tessellation/deviation.rs b/main/opengeometry/src/tessellation/deviation.rs index b0c2878d..126a223b 100644 --- a/main/opengeometry/src/tessellation/deviation.rs +++ b/main/opengeometry/src/tessellation/deviation.rs @@ -184,6 +184,18 @@ pub(super) fn edge_count( CurveGeometry::Intersection { definition } => { bounded_intersection_count(brep, *definition, curve, range, error, max_triangles) } + geometry @ CurveGeometry::Wrapped { curve: flat, .. } => { + let arc = matches!( + **flat, + CurveGeometry::Circle { .. } | CurveGeometry::Ellipse { .. } + ); + turn_count( + range.width() * (geometry.derivative_bounds(range)?.1 / (8.0 * error)).sqrt(), + if arc { range.width() } else { 0.0 }, + 1, + max_triangles, + ) + } }, } } diff --git a/main/opengeometry/src/tessellation/grid.rs b/main/opengeometry/src/tessellation/grid.rs index d0e50772..03312ba8 100644 --- a/main/opengeometry/src/tessellation/grid.rs +++ b/main/opengeometry/src/tessellation/grid.rs @@ -1,3 +1,4 @@ +use super::wrapped::second_derivative_bounds; use crate::brep::{ period_lifted_uv, BrepEnvelope, Face, GeometryError, PcurveGeometry, Surface, SurfaceGeometry, }; @@ -123,6 +124,9 @@ pub(super) fn grid_size( turn_count(u * ((r + a) / (4.0 * error)).sqrt(), u, 3, max_triangles)?, turn_count(v * (a / (4.0 * error)).sqrt(), v, 3, max_triangles)?, ), + SurfaceGeometry::Wrapped { .. } | SurfaceGeometry::Conoid { .. } => { + sampled_grid(surface, bounds, error, max_triangles)? + } SurfaceGeometry::Plane { .. } => { return Err(GeometryError::InvalidGeometry( "plane does not use a curved grid".into(), @@ -141,6 +145,31 @@ pub(super) fn grid_size( Ok([nu, nv]) } +fn sampled_grid( + surface: &SurfaceGeometry, + bounds: [Interval; 2], + error: f64, + max_triangles: usize, +) -> Result<(usize, usize), GeometryError> { + let second = second_derivative_bounds(surface, bounds)?; + let periods = surface.charts()[0].periods; + let side = |i: usize, minimum: usize| { + let width = bounds[i].width(); + let value = width * (second[i] / (8.0 * error)).sqrt(); + match periods[i] { + Some(_) => turn_count(value, width, minimum, max_triangles), + None => count(value, minimum, max_triangles), + } + }; + let nu = side(0, 3)?; + let nv = side(1, 1)?; + if !matches!(surface, SurfaceGeometry::Conoid { .. }) { + return Ok((nu, nv)); + } + let twist = bounds[1].width() * second[2] * bounds[0].width() / (4.0 * error * nu as f64); + Ok((nu, nv.max(count(twist, 1, max_triangles)?))) +} + pub(super) fn turn_count( value: f64, sweep: f64, diff --git a/main/opengeometry/src/tessellation/mod.rs b/main/opengeometry/src/tessellation/mod.rs index 358b45fa..17126e9c 100644 --- a/main/opengeometry/src/tessellation/mod.rs +++ b/main/opengeometry/src/tessellation/mod.rs @@ -17,6 +17,7 @@ mod tessellate; mod tests; mod trim; mod trimmed_face; +mod wrapped; pub use measure::{measure, Measure}; pub use mesh::Tessellation; diff --git a/main/opengeometry/src/tessellation/tests/mod.rs b/main/opengeometry/src/tessellation/tests/mod.rs index 404d5492..5fcfc05f 100644 --- a/main/opengeometry/src/tessellation/tests/mod.rs +++ b/main/opengeometry/src/tessellation/tests/mod.rs @@ -3,6 +3,7 @@ mod seams; mod short_loops; mod smooth_edges; mod support; +mod wrapped; use super::cache::TessellationCache; use super::tessellate::tessellate; diff --git a/main/opengeometry/src/tessellation/tests/wrapped.rs b/main/opengeometry/src/tessellation/tests/wrapped.rs new file mode 100644 index 00000000..3a443cf7 --- /dev/null +++ b/main/opengeometry/src/tessellation/tests/wrapped.rs @@ -0,0 +1,24 @@ +use crate::brep::{wrapped_sector, SECTOR}; +use crate::math::Point3; +use crate::tessellation::tessellate::tessellate; + +#[test] +fn a_wrapped_side_meshes_to_the_exact_volume() { + let mesh = tessellate(&wrapped_sector(), 1e-3, 1_000_000).unwrap(); + let p = |i: u32| -> Point3 { std::array::from_fn(|j| mesh.positions[i as usize * 3 + j]) }; + let volume: f64 = mesh + .indices + .chunks_exact(3) + .map(|t| { + let (a, b, c) = (p(t[0]), p(t[1]), p(t[2])); + (a[0] * (b[1] * c[2] - b[2] * c[1]) - a[1] * (b[0] * c[2] - b[2] * c[0]) + + a[2] * (b[0] * c[1] - b[1] * c[0])) + / 6.0 + }) + .sum(); + let exact = SECTOR.volume(); + assert!( + ((volume - exact) / exact).abs() < 1e-4, + "{volume} vs {exact}" + ); +} diff --git a/main/opengeometry/src/tessellation/trim.rs b/main/opengeometry/src/tessellation/trim.rs index 75e87714..54aaa77d 100644 --- a/main/opengeometry/src/tessellation/trim.rs +++ b/main/opengeometry/src/tessellation/trim.rs @@ -1,3 +1,4 @@ +use super::wrapped::chord_deviation; use crate::brep::{ period_lifted_uv, BrepEnvelope, EdgeGeometry, Face, GeometryError, HalfEdge, Orientation, Surface, SurfaceGeometry, @@ -262,6 +263,9 @@ pub(super) fn trimmed_surface_edge_deviation( } }; let acceleration = match surface { + SurfaceGeometry::Wrapped { .. } | SurfaceGeometry::Conoid { .. } => { + return chord_deviation(surface, uv[a], uv[b]) + } SurfaceGeometry::Plane { .. } => 0.0, SurfaceGeometry::Sphere { radius, .. } => { let cos_v = maximum_trig(0.0, f64::cos); diff --git a/main/opengeometry/src/tessellation/trimmed_face.rs b/main/opengeometry/src/tessellation/trimmed_face.rs index acb8528a..488b7733 100644 --- a/main/opengeometry/src/tessellation/trimmed_face.rs +++ b/main/opengeometry/src/tessellation/trimmed_face.rs @@ -54,7 +54,7 @@ pub(super) fn curved_trimmed_face( if rect.is_some() && !face.trim.holes.is_empty() { shift_periodic_holes(face, surface, periods, &mut loops)?; } - if !axis_aligned { + if !axis_aligned || matches!(surface, SurfaceGeometry::Conoid { .. }) { return general_curved_trimmed_face(brep, face, size, &loops, error, mesh, max_triangles); } let all_boundary = loops.iter().flatten().collect::>(); diff --git a/main/opengeometry/src/tessellation/wrapped.rs b/main/opengeometry/src/tessellation/wrapped.rs new file mode 100644 index 00000000..ef085b2f --- /dev/null +++ b/main/opengeometry/src/tessellation/wrapped.rs @@ -0,0 +1,41 @@ +use crate::brep::{GeometryError, Surface, SurfaceGeometry}; +use crate::math::{norm, Interval, Point3}; + +const MARGIN: f64 = 1.5; +const GRID: usize = 8; + +pub(super) fn second_derivative_bounds( + surface: &SurfaceGeometry, + bounds: [Interval; 2], +) -> Result<[f64; 3], GeometryError> { + let mut maximum = [0.0_f64; 3]; + for i in 0..=GRID { + for j in 0..=GRID { + let uv = [ + bounds[0].lo + bounds[0].width() * i as f64 / GRID as f64, + bounds[1].lo + bounds[1].width() * j as f64 / GRID as f64, + ]; + let jet = surface.derivatives(uv)?; + maximum[0] = maximum[0].max(norm(jet.duu)); + maximum[1] = maximum[1].max(norm(jet.dvv)); + maximum[2] = maximum[2].max(norm(jet.duv)); + } + } + Ok(maximum.map(|m| m * MARGIN)) +} + +pub(super) fn chord_deviation(surface: &SurfaceGeometry, a: [f64; 2], b: [f64; 2]) -> f64 { + let (du, dv) = (b[0] - a[0], b[1] - a[1]); + let mut maximum = 0.0_f64; + for k in 0..=2 { + let t = k as f64 / 2.0; + let Ok(jet) = surface.derivatives([a[0] + t * du, a[1] + t * dv]) else { + return f64::INFINITY; + }; + let acceleration: Point3 = std::array::from_fn(|i| { + jet.duu[i] * du * du + 2.0 * jet.duv[i] * du * dv + jet.dvv[i] * dv * dv + }); + maximum = maximum.max(norm(acceleration)); + } + maximum * MARGIN / 8.0 +} diff --git a/main/opengeometry/test-support/src/part21/document.rs b/main/opengeometry/test-support/src/part21/document.rs index 31447a7c..197d4e3e 100644 --- a/main/opengeometry/test-support/src/part21/document.rs +++ b/main/opengeometry/test-support/src/part21/document.rs @@ -188,6 +188,9 @@ impl Document { pub(super) fn surface_point(&self, id: usize, uv: [f64; 2]) -> Result<[f64; 3], String> { let expression = self.entity(id)?; + if expression.starts_with("B_SPLINE_SURFACE_WITH_KNOTS(") { + return self.spline_surface_point(expression, uv); + } let args = fields(expression)?; let (origin, z, x) = self.axis(reference(&args[1])?)?; let y = [ diff --git a/main/opengeometry/test-support/src/part21/mod.rs b/main/opengeometry/test-support/src/part21/mod.rs index aded8271..0caba1c2 100644 --- a/main/opengeometry/test-support/src/part21/mod.rs +++ b/main/opengeometry/test-support/src/part21/mod.rs @@ -8,6 +8,7 @@ mod report; mod report_match; mod rules; mod solids; +mod surfaces; #[cfg(test)] mod tests; mod values; diff --git a/main/opengeometry/test-support/src/part21/rules.rs b/main/opengeometry/test-support/src/part21/rules.rs index bf85a019..3b0a26c0 100644 --- a/main/opengeometry/test-support/src/part21/rules.rs +++ b/main/opengeometry/test-support/src/part21/rules.rs @@ -13,6 +13,7 @@ fn allowed(keyword: &str) -> bool { | "AXIS2_PLACEMENT_3D" | "BREP_WITH_VOIDS" | "B_SPLINE_CURVE_WITH_KNOTS" + | "B_SPLINE_SURFACE_WITH_KNOTS" | "CARTESIAN_POINT" | "CIRCLE" | "CLOSED_SHELL" diff --git a/main/opengeometry/test-support/src/part21/surfaces.rs b/main/opengeometry/test-support/src/part21/surfaces.rs new file mode 100644 index 00000000..c0fb48aa --- /dev/null +++ b/main/opengeometry/test-support/src/part21/surfaces.rs @@ -0,0 +1,63 @@ +use super::document::Document; +use super::lexer::{fields, references}; + +fn bernstein(t: f64) -> [f64; 4] { + let s = 1.0 - t; + [s * s * s, 3.0 * s * s * t, 3.0 * s * t * t, t * t * t] +} + +fn span(knots: &[f64], multiplicities: &[f64], value: f64) -> Result<(usize, f64), String> { + let last = knots.len().checked_sub(1).ok_or("empty knot vector")?; + let piecewise = last > 0 + && knots.len() == multiplicities.len() + && multiplicities + .iter() + .enumerate() + .all(|(i, &m)| m == if i == 0 || i == last { 4.0 } else { 3.0 }); + if !piecewise { + return Err("B-spline surface is not piecewise cubic Bezier".into()); + } + let index = knots[1..last] + .iter() + .take_while(|&&knot| knot <= value) + .count(); + let (lo, hi) = (knots[index], knots[index + 1]); + Ok((index, (value - lo) / (hi - lo))) +} + +impl Document { + pub(super) fn spline_surface_point( + &self, + expression: &str, + uv: [f64; 2], + ) -> Result<[f64; 3], String> { + let args = fields(expression)?; + if args[1] != "3" || args[2] != "3" { + return Err("B-spline surface is not bicubic".into()); + } + let rows = fields(&args[3])? + .iter() + .map(|row| references(row)) + .collect::>(); + let (i, s) = span(&self.tuple(&args[10])?, &self.tuple(&args[8])?, uv[0])?; + let (j, t) = span(&self.tuple(&args[11])?, &self.tuple(&args[9])?, uv[1])?; + let (wu, wv) = (bernstein(s), bernstein(t)); + let mut point = [0.0; 3]; + for (a, weight_u) in wu.iter().enumerate() { + for (b, weight_v) in wv.iter().enumerate() { + let id = *rows + .get(3 * i + a) + .and_then(|row| row.get(3 * j + b)) + .ok_or("B-spline surface control net is too small")?; + let control = self.tuple(&fields(self.entity(id)?)?[1])?; + if control.len() != 3 { + return Err("B-spline surface control is not three-dimensional".into()); + } + for axis in 0..3 { + point[axis] += weight_u * weight_v * control[axis]; + } + } + } + Ok(point) + } +} diff --git a/main/opengeometry/tests/conoid_bend.rs b/main/opengeometry/tests/conoid_bend.rs new file mode 100644 index 00000000..9fba7d72 --- /dev/null +++ b/main/opengeometry/tests/conoid_bend.rs @@ -0,0 +1,375 @@ +use opengeometry::brep::{ + conoid_ellipse, mirrored, placed, plane_boundary, projected_boundary, uv_line, BrepEnvelope, + Builder, CurveGeometry, Frame3, GeometryError, Orientation, SurfaceGeometry, Use, +}; +use opengeometry::exchange::export_step; +use opengeometry::math::{Interval, Point3}; +use opengeometry::operations::modifying::boolean::{boolean_brep, BooleanOp}; +use opengeometry::primitives::cuboid; +use opengeometry::query::{classify_point, PointClassification}; +use opengeometry_test_support::accuracy::accuracy; +use opengeometry_test_support::part21::Document; +use opengeometry_test_support::volume::estimate; +use std::f64::consts::FRAC_PI_2; + +const RADII: [f64; 2] = [2.0, 4.0]; +const ENDS: [f64; 2] = [0.0, FRAC_PI_2]; +const PAD: f64 = 1e-3; + +struct Shell { + frame: Frame3, + c: [f64; 3], +} + +fn dot(a: Point3, b: Point3) -> f64 { + a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +} + +fn combine(a: Point3, s: f64, b: Point3, t: f64) -> Point3 { + std::array::from_fn(|i| a[i] * s + b[i] * t) +} + +impl Shell { + fn new() -> Self { + let frame = Frame3::from_axis([1.0, 2.0, 3.0], [1.0, 0.2, 0.1], [0.0, 1.0, 0.3]).unwrap(); + let normal = [1.0, -1.0, 0.0]; + let local = [frame.x, frame.y, frame.z].map(|axis| dot(normal, axis)); + let k = dot(normal, frame.origin) + 5.0 * local[2]; + let c = [ + (k - dot(normal, frame.origin)) / local[2], + -RADII[0] * local[0] / local[2], + -RADII[0] * local[1] / local[2], + ]; + Self { frame, c } + } + + fn height(&self, u: f64) -> f64 { + self.c[0] + self.c[1] * u.cos() + self.c[2] * u.sin() + } + + fn at(&self, u: f64, radius: f64, z: f64) -> Point3 { + self.frame.point([radius * u.cos(), radius * u.sin(), z]) + } + + fn radial(&self, u: f64) -> Point3 { + combine(self.frame.x, u.cos(), self.frame.y, u.sin()) + } + + fn tangent(&self, u: f64) -> Point3 { + combine(self.frame.x, -u.sin(), self.frame.y, u.cos()) + } + + fn volume(&self) -> f64 { + let n = 64; + let h = FRAC_PI_2 / n as f64; + let ring = (RADII[1] * RADII[1] - RADII[0] * RADII[0]) / 2.0; + let sum: f64 = (0..=n) + .map(|i| { + let weight = if i == 0 || i == n { + 1.0 + } else { + 2.0 + 2.0 * (i % 2) as f64 + }; + weight * self.height(i as f64 * h) + }) + .sum(); + ring * sum * h / 3.0 + } +} + +struct Edges { + vertices: [[[u32; 2]; 2]; 2], + arcs: [u32; 2], + ellipses: [(u32, f64); 2], + radials: [u32; 2], + rulings: [u32; 2], + axials: [[u32; 2]; 2], +} + +fn line(b: &mut Builder, origin: Point3, direction: Point3, length: f64) -> u32 { + let curve = CurveGeometry::Line { origin, direction }; + b.edge(curve, Interval::new(0.0, length).unwrap(), false) +} + +fn edges(b: &mut Builder, s: &Shell) -> Edges { + let mut vertices = [[[0; 2]; 2]; 2]; + for (e, &u) in ENDS.iter().enumerate() { + for (r, &radius) in RADII.iter().enumerate() { + vertices[e][r] = [0.0, s.height(u)].map(|z| b.vertex(s.at(u, radius, z))); + } + } + let quarter = Interval::new(0.0, FRAC_PI_2).unwrap(); + let arcs = RADII.map(|radius| { + let circle = CurveGeometry::Circle { + frame: s.frame, + radius, + }; + b.edge(circle, quarter, false) + }); + let ellipses = RADII.map(|radius| { + let (ellipse, phase) = conoid_ellipse(s.frame, s.c, radius).unwrap(); + let range = Interval::new(-phase, FRAC_PI_2 - phase).unwrap(); + (b.edge(ellipse, range, false), phase) + }); + let thickness = RADII[1] - RADII[0]; + let radials = ENDS.map(|u| line(b, s.at(u, RADII[0], 0.0), s.radial(u), thickness)); + let rulings = ENDS.map(|u| line(b, s.at(u, RADII[0], s.height(u)), s.radial(u), thickness)); + let axials = + ENDS.map(|u| RADII.map(|radius| line(b, s.at(u, radius, 0.0), s.frame.z, s.height(u)))); + Edges { + vertices, + arcs, + ellipses, + radials, + rulings, + axials, + } +} + +type Step = (u32, u32, u32, Orientation); + +fn plane(b: &mut Builder, key: &str, frame: Frame3, steps: [Step; 4]) { + let uses = steps + .map(|(edge, from, to, sense)| plane_boundary(b, frame, edge, from, to, sense).unwrap()); + let big = 100.0; + let surface = SurfaceGeometry::Plane { frame }; + b.face(key, surface, [[-big, big], [-big, big]], uses.into()) + .unwrap(); +} + +fn planes(b: &mut Builder, s: &Shell, e: &Edges) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let v = |end: usize, r: usize, level: usize| e.vertices[end][r][level]; + let f = s.frame; + let bottom = Frame3::from_axis(f.origin, f.z.map(|x| -x), f.x).unwrap(); + plane( + b, + "bottom", + bottom, + [ + (e.arcs[0], v(0, 0, 0), v(1, 0, 0), fwd), + (e.radials[1], v(1, 0, 0), v(1, 1, 0), fwd), + (e.arcs[1], v(1, 1, 0), v(0, 1, 0), rev), + (e.radials[0], v(0, 1, 0), v(0, 0, 0), rev), + ], + ); + for (end, &u) in ENDS.iter().enumerate() { + let outward = s.tangent(u).map(|x| if end == 0 { -x } else { x }); + let frame = Frame3::from_axis(f.origin, outward, s.radial(u)).unwrap(); + plane( + b, + ["start", "end"][end], + frame, + [ + (e.radials[end], v(end, 0, 0), v(end, 1, 0), fwd), + (e.axials[end][1], v(end, 1, 0), v(end, 1, 1), fwd), + (e.rulings[end], v(end, 1, 1), v(end, 0, 1), rev), + (e.axials[end][0], v(end, 0, 1), v(end, 0, 0), rev), + ], + ); + } +} + +fn cylinders(b: &mut Builder, s: &Shell, e: &Edges) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let top = s.c[0] + s.c[1].hypot(s.c[2]); + for (r, &radius) in RADII.iter().enumerate() { + let v = |end: usize, level: usize| e.vertices[end][r][level]; + let surface = SurfaceGeometry::Cylinder { + frame: s.frame, + radius, + }; + let ellipse = projected_boundary( + b, + &surface, + e.ellipses[r].0, + v(1, 1), + v(0, 1), + rev, + Some([0.0, s.height(0.0)]), + ) + .unwrap(); + let uses: Vec = vec![ + uv_use(e.arcs[r], v(0, 0), v(1, 0), fwd, [0.0, 0.0], [1.0, 0.0]), + uv_use( + e.axials[1][r], + v(1, 0), + v(1, 1), + fwd, + [ENDS[1], 0.0], + [0.0, 1.0], + ), + ellipse, + uv_use( + e.axials[0][r], + v(0, 1), + v(0, 0), + rev, + [0.0, 0.0], + [0.0, 1.0], + ), + ]; + let bounds = [[-PAD, FRAC_PI_2 + PAD], [-PAD, top + PAD]]; + let face = b + .face(["inner", "outer"][r], surface, bounds, uses) + .unwrap(); + if r == 0 { + b.set_face_sense(face, rev).unwrap(); + } + } +} + +fn uv_use( + edge: u32, + from: u32, + to: u32, + sense: Orientation, + origin: [f64; 2], + dir: [f64; 2], +) -> Use { + opengeometry::brep::boundary(edge, from, to, sense, uv_line(origin, dir)) +} + +fn conoid_face(b: &mut Builder, s: &Shell, e: &Edges, bounds: [[f64; 2]; 2]) { + let (fwd, rev) = (Orientation::Forward, Orientation::Reverse); + let v = |end: usize, r: usize| e.vertices[end][r][1]; + let [(inner, inner_phase), (outer, outer_phase)] = e.ellipses; + let uses = vec![ + uv_use( + inner, + v(0, 0), + v(1, 0), + fwd, + [inner_phase, RADII[0]], + [1.0, 0.0], + ), + uv_use( + e.rulings[1], + v(1, 0), + v(1, 1), + fwd, + [ENDS[1], RADII[0]], + [0.0, 1.0], + ), + uv_use( + outer, + v(1, 1), + v(0, 1), + rev, + [outer_phase, RADII[1]], + [1.0, 0.0], + ), + uv_use( + e.rulings[0], + v(0, 1), + v(0, 0), + rev, + [ENDS[0], RADII[0]], + [0.0, 1.0], + ), + ]; + let surface = SurfaceGeometry::Conoid { + frame: s.frame, + c: s.c, + }; + let face = b.face("cut", surface, bounds, uses).unwrap(); + b.set_face_sense(face, rev).unwrap(); +} + +fn build(s: &Shell, conoid_bounds: [[f64; 2]; 2]) -> Result { + let mut b = Builder::new("conoid-cut".into(), accuracy(1e-5))?; + let e = edges(&mut b, s); + planes(&mut b, s, &e); + cylinders(&mut b, s, &e); + conoid_face(&mut b, s, &e, conoid_bounds); + b.finish_solid() +} + +fn padded() -> [[f64; 2]; 2] { + [[-PAD, FRAC_PI_2 + PAD], [RADII[0] - PAD, RADII[1] + PAD]] +} + +fn exact() -> [[f64; 2]; 2] { + [ENDS, RADII] +} + +fn check_volume(brep: &BrepEnvelope, exact: f64, deflection: f64, relative: f64) { + let volume = estimate(brep, deflection); + let error = (volume.value - exact).abs(); + assert!(error <= volume.error_bound, "{} vs {exact}", volume.value); + assert!(error <= relative * exact, "{} vs {exact}", volume.value); +} + +#[test] +fn a_conoid_cut_shell_is_a_valid_solid_with_its_exact_volume() { + let s = Shell::new(); + let exact_volume = s.volume(); + let closed_form = 6.0 * (s.c[0] * FRAC_PI_2 + s.c[1] + s.c[2]); + assert!((exact_volume - closed_form).abs() < 1e-9 * closed_form); + for (bounds, relative) in [(exact(), 2e-4), (padded(), 2e-4)] { + let brep = build(&s, bounds).unwrap(); + brep.validate().unwrap(); + assert_eq!(brep.topology.faces.len(), 6); + assert_eq!(brep.topology.edges.len(), 12); + check_volume(&brep, exact_volume, 1e-3, relative); + } +} + +#[test] +fn points_on_either_side_of_the_conoid_classify_correctly() { + let s = Shell::new(); + let brep = build(&s, exact()).unwrap(); + for u in [0.2, FRAC_PI_2 / 2.0, 1.3] { + let h = s.height(u); + let classify = |radius: f64, z: f64| classify_point(&brep, s.at(u, radius, z)).unwrap(); + assert_eq!(classify(3.0, h / 2.0), PointClassification::Inside); + assert_eq!(classify(3.5, h - 0.05), PointClassification::Inside); + assert_eq!(classify(2.5, h + 0.05), PointClassification::Outside); + assert_eq!(classify(4.5, h / 2.0), PointClassification::Outside); + } +} + +#[test] +fn a_conoid_cut_shell_exports_to_step_and_round_trips_through_json() { + let s = Shell::new(); + let brep = build(&s, exact()).unwrap(); + let (step, report) = export_step(&brep, "metre").unwrap(); + assert!(report.exchange_error_bound <= brep.accuracy.exchange); + let document = Document::parse(&step).unwrap(); + assert_eq!(document.count("ADVANCED_FACE"), 6); + assert_eq!(document.count("B_SPLINE_SURFACE_WITH_KNOTS"), 1); + assert_eq!(document.count("CYLINDRICAL_SURFACE"), 2); + assert_eq!(document.count("SURFACE_CURVE"), 10); + assert_eq!(document.solids().unwrap().len(), 1); + let (millimetres, _) = export_step(&brep, "millimetre").unwrap(); + Document::parse(&millimetres).unwrap(); + let json = brep.to_json().unwrap(); + assert!(json.contains("\"kind\":\"Conoid\"")); + let back = BrepEnvelope::from_json(&json).unwrap(); + back.validate().unwrap(); + assert_eq!(back.geometry, brep.geometry); + assert_eq!(back.to_json().unwrap(), json); +} + +#[test] +fn a_conoid_cut_shell_moves_scales_and_mirrors_but_refuses_booleans() { + let s = Shell::new(); + let brep = build(&s, exact()).unwrap(); + let volume = s.volume(); + let placement = Frame3::from_axis([-4.0, 1.0, 2.0], [0.3, -1.0, 2.0], [1.0, 0.0, 0.0]).unwrap(); + check_volume( + &placed(&brep, placement, 2.0).unwrap(), + 8.0 * volume, + 2e-3, + 2e-4, + ); + let mirror = mirrored(&brep, [0.5, 0.0, 1.0], [1.0, 2.0, -0.5]).unwrap(); + check_volume(&mirror, volume, 1e-3, 2e-4); + let cube = cuboid("cube".into(), Frame3::IDENTITY, [1.0; 3], brep.accuracy).unwrap(); + for (a, b) in [(&brep, &cube), (&cube, &brep)] { + assert!(matches!( + boolean_brep(a, b, BooleanOp::Union, "u".into()), + Err(GeometryError::UnsupportedGeometry(_)) + )); + } +} diff --git a/main/opengeometry/tests/creating/sweep_bends.rs b/main/opengeometry/tests/creating/sweep_bends.rs index af26e7b3..a15ef9dc 100644 --- a/main/opengeometry/tests/creating/sweep_bends.rs +++ b/main/opengeometry/tests/creating/sweep_bends.rs @@ -99,6 +99,8 @@ fn surface_kinds(body: &BrepEnvelope) -> Vec<&'static str> { SurfaceGeometry::Cone { .. } => "cone", SurfaceGeometry::Torus { .. } => "torus", SurfaceGeometry::Sphere { .. } => "sphere", + SurfaceGeometry::Wrapped { .. } => "wrapped", + SurfaceGeometry::Conoid { .. } => "conoid", }) .collect::>(); kinds.sort_unstable(); diff --git a/main/opengeometry/tests/fixtures/cases/annular-cylinder.brep.json b/main/opengeometry/tests/fixtures/cases/annular-cylinder.brep.json index 6755c583..dca1644f 100644 --- a/main/opengeometry/tests/fixtures/cases/annular-cylinder.brep.json +++ b/main/opengeometry/tests/fixtures/cases/annular-cylinder.brep.json @@ -1 +1 @@ -{"schema_version":2,"id":"annular-cylinder","revision":0,"geometry":{"surfaces":[{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Plane","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]}},{"kind":"Plane","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]}}],"curves":[{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Line","origin":[1.0,0.0,0.0],"direction":[0.0,1.0,0.0]},{"kind":"Line","origin":[0.4,0.0,0.0],"direction":[0.0,1.0,0.0]}],"pcurves":[{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,0.4]}],"intersections":[]},"topology":{"vertices":[{"id":0,"position":[1.0,0.0,0.0],"outgoing_halfedge":0,"tolerance":1e-8},{"id":1,"position":[1.0,2.0,0.0],"outgoing_halfedge":2,"tolerance":1e-8},{"id":2,"position":[0.4,0.0,0.0],"outgoing_halfedge":4,"tolerance":1e-8},{"id":3,"position":[0.4,2.0,0.0],"outgoing_halfedge":6,"tolerance":1e-8}],"edges":[{"id":0,"geometry":{"kind":"Curve","curve":0,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":0,"twin_halfedge":8,"tolerance":1e-8,"chart_seam":false},{"id":1,"geometry":{"kind":"Curve","curve":1,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":2,"twin_halfedge":10,"tolerance":1e-8,"chart_seam":false},{"id":2,"geometry":{"kind":"Curve","curve":2,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":4,"twin_halfedge":9,"tolerance":1e-8,"chart_seam":false},{"id":3,"geometry":{"kind":"Curve","curve":3,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":6,"twin_halfedge":11,"tolerance":1e-8,"chart_seam":false},{"id":4,"geometry":{"kind":"Curve","curve":4,"range":{"lo":0.0,"hi":2.0}},"halfedge":1,"twin_halfedge":3,"tolerance":1e-8,"chart_seam":true},{"id":5,"geometry":{"kind":"Curve","curve":5,"range":{"lo":0.0,"hi":2.0}},"halfedge":5,"twin_halfedge":7,"tolerance":1e-8,"chart_seam":true}],"halfedges":[{"id":0,"from":0,"to":0,"twin":8,"next":1,"prev":3,"edge":0,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":0,"periodic_lift":[0,0]}},{"id":1,"from":0,"to":1,"twin":3,"next":2,"prev":0,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":1,"periodic_lift":[0,0]}},{"id":2,"from":1,"to":1,"twin":10,"next":3,"prev":1,"edge":1,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":2,"periodic_lift":[0,0]}},{"id":3,"from":1,"to":0,"twin":1,"next":0,"prev":2,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":3,"periodic_lift":[0,0]}},{"id":4,"from":2,"to":2,"twin":9,"next":5,"prev":7,"edge":2,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":4,"periodic_lift":[0,0]}},{"id":5,"from":2,"to":3,"twin":7,"next":6,"prev":4,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":5,"periodic_lift":[0,0]}},{"id":6,"from":3,"to":3,"twin":11,"next":7,"prev":5,"edge":3,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":6,"periodic_lift":[0,0]}},{"id":7,"from":3,"to":2,"twin":5,"next":4,"prev":6,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":7,"periodic_lift":[0,0]}},{"id":8,"from":0,"to":0,"twin":0,"next":8,"prev":8,"edge":0,"face":2,"loop_ref":2,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":8,"periodic_lift":[0,0]}},{"id":9,"from":2,"to":2,"twin":4,"next":9,"prev":9,"edge":2,"face":2,"loop_ref":3,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":9,"periodic_lift":[0,0]}},{"id":10,"from":1,"to":1,"twin":2,"next":10,"prev":10,"edge":1,"face":3,"loop_ref":4,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":10,"periodic_lift":[0,0]}},{"id":11,"from":3,"to":3,"twin":6,"next":11,"prev":11,"edge":3,"face":3,"loop_ref":5,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":11,"periodic_lift":[0,0]}}],"loops":[{"id":0,"start_halfedge":0,"face_ref":0,"is_hole":false},{"id":1,"start_halfedge":4,"face_ref":1,"is_hole":false},{"id":2,"start_halfedge":8,"face_ref":2,"is_hole":false},{"id":3,"start_halfedge":9,"face_ref":2,"is_hole":true},{"id":4,"start_halfedge":10,"face_ref":3,"is_hole":false},{"id":5,"start_halfedge":11,"face_ref":3,"is_hole":true}],"faces":[{"id":0,"key":"outer","surface":0,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":0,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"outer","face":0}],"role":"Authored","reversed":false}},{"id":1,"key":"inner","surface":1,"sense":"Reverse","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":1,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"inner","face":1}],"role":"Authored","reversed":false}},{"id":2,"key":"lower_cap","surface":2,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":2,"holes":[3]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"lower_cap","face":2}],"role":"Authored","reversed":false}},{"id":3,"key":"upper_cap","surface":3,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":4,"holes":[5]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"upper_cap","face":3}],"role":"Authored","reversed":false}}],"wires":[],"shells":[{"id":0,"faces":[0,1,2,3],"is_closed":true}]},"solids":[{"outer_shell":0,"cavity_shells":[]}],"accuracy":{"geometric":1e-8,"intersection":1e-9,"tessellation":0.01,"exchange":1e-6},"quality":{"kind":"Analytic"}} \ No newline at end of file +{"schema_version":2,"id":"annular-cylinder","revision":0,"geometry":{"surfaces":[{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Plane","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]}},{"kind":"Plane","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]}}],"curves":[{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Line","origin":[1.0,0.0,0.0],"direction":[0.0,1.0,0.0]},{"kind":"Line","origin":[0.4,0.0,0.0],"direction":[0.0,1.0,0.0]}],"pcurves":[{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,0.4]}],"intersections":[]},"topology":{"vertices":[{"id":0,"position":[1.0,0.0,0.0],"outgoing_halfedge":0,"tolerance":1e-8},{"id":1,"position":[1.0,2.0,0.0],"outgoing_halfedge":2,"tolerance":1e-8},{"id":2,"position":[0.4,0.0,0.0],"outgoing_halfedge":4,"tolerance":1e-8},{"id":3,"position":[0.4,2.0,0.0],"outgoing_halfedge":6,"tolerance":1e-8}],"edges":[{"id":0,"geometry":{"kind":"Curve","curve":0,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":0,"twin_halfedge":8,"tolerance":1e-8,"chart_seam":false},{"id":1,"geometry":{"kind":"Curve","curve":1,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":2,"twin_halfedge":10,"tolerance":1e-8,"chart_seam":false},{"id":2,"geometry":{"kind":"Curve","curve":2,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":4,"twin_halfedge":9,"tolerance":1e-8,"chart_seam":false},{"id":3,"geometry":{"kind":"Curve","curve":3,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":6,"twin_halfedge":11,"tolerance":1e-8,"chart_seam":false},{"id":4,"geometry":{"kind":"Curve","curve":4,"range":{"lo":0.0,"hi":2.0}},"halfedge":1,"twin_halfedge":3,"tolerance":1e-8,"chart_seam":true},{"id":5,"geometry":{"kind":"Curve","curve":5,"range":{"lo":0.0,"hi":2.0}},"halfedge":5,"twin_halfedge":7,"tolerance":1e-8,"chart_seam":true}],"halfedges":[{"id":0,"from":0,"to":0,"twin":8,"next":1,"prev":3,"edge":0,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":0,"periodic_lift":[0,0]}},{"id":1,"from":0,"to":1,"twin":3,"next":2,"prev":0,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":1,"periodic_lift":[0,0]}},{"id":2,"from":1,"to":1,"twin":10,"next":3,"prev":1,"edge":1,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":2,"periodic_lift":[0,0]}},{"id":3,"from":1,"to":0,"twin":1,"next":0,"prev":2,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":3,"periodic_lift":[0,0]}},{"id":4,"from":2,"to":2,"twin":9,"next":7,"prev":5,"edge":2,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":4,"periodic_lift":[0,0]}},{"id":5,"from":3,"to":2,"twin":7,"next":4,"prev":6,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":5,"periodic_lift":[0,0]}},{"id":6,"from":3,"to":3,"twin":11,"next":5,"prev":7,"edge":3,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":6,"periodic_lift":[0,0]}},{"id":7,"from":2,"to":3,"twin":5,"next":6,"prev":4,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":7,"periodic_lift":[0,0]}},{"id":8,"from":0,"to":0,"twin":0,"next":8,"prev":8,"edge":0,"face":2,"loop_ref":2,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":8,"periodic_lift":[0,0]}},{"id":9,"from":2,"to":2,"twin":4,"next":9,"prev":9,"edge":2,"face":2,"loop_ref":3,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":9,"periodic_lift":[0,0]}},{"id":10,"from":1,"to":1,"twin":2,"next":10,"prev":10,"edge":1,"face":3,"loop_ref":4,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":10,"periodic_lift":[0,0]}},{"id":11,"from":3,"to":3,"twin":6,"next":11,"prev":11,"edge":3,"face":3,"loop_ref":5,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":11,"periodic_lift":[0,0]}}],"loops":[{"id":0,"start_halfedge":0,"face_ref":0,"is_hole":false},{"id":1,"start_halfedge":4,"face_ref":1,"is_hole":false},{"id":2,"start_halfedge":8,"face_ref":2,"is_hole":false},{"id":3,"start_halfedge":9,"face_ref":2,"is_hole":true},{"id":4,"start_halfedge":10,"face_ref":3,"is_hole":false},{"id":5,"start_halfedge":11,"face_ref":3,"is_hole":true}],"faces":[{"id":0,"key":"outer","surface":0,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":0,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"outer","face":0}],"role":"Authored","reversed":false}},{"id":1,"key":"inner","surface":1,"sense":"Reverse","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":1,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"inner","face":1}],"role":"Authored","reversed":false}},{"id":2,"key":"lower_cap","surface":2,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":2,"holes":[3]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"lower_cap","face":2}],"role":"Authored","reversed":false}},{"id":3,"key":"upper_cap","surface":3,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":4,"holes":[5]},"shell_ref":0,"provenance":{"sources":[{"entity":"annular-cylinder","body":"annular-cylinder","key":"upper_cap","face":3}],"role":"Authored","reversed":false}}],"wires":[],"shells":[{"id":0,"faces":[0,1,2,3],"is_closed":true}]},"solids":[{"outer_shell":0,"cavity_shells":[]}],"accuracy":{"geometric":1e-8,"intersection":1e-9,"tessellation":0.01,"exchange":1e-6},"quality":{"kind":"Analytic"}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.m b/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.m index f20cf880..4117ecf6 100644 --- a/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.m +++ b/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.m @@ -153,9 +153,9 @@ #146=EDGE_LOOP('',(#142,#143,#144,#145)); #147=FACE_OUTER_BOUND('',#146,.T.); #148=ADVANCED_FACE('outer',(#147),#6,.T.); -#149=ORIENTED_EDGE('',*,*,#86,.T.); +#149=ORIENTED_EDGE('',*,*,#86,.F.); #150=ORIENTED_EDGE('',*,*,#141,.T.); -#151=ORIENTED_EDGE('',*,*,#105,.F.); +#151=ORIENTED_EDGE('',*,*,#105,.T.); #152=ORIENTED_EDGE('',*,*,#141,.F.); #153=EDGE_LOOP('',(#149,#150,#151,#152)); #154=FACE_OUTER_BOUND('',#153,.T.); @@ -163,14 +163,14 @@ #156=ORIENTED_EDGE('',*,*,#48,.F.); #157=EDGE_LOOP('',(#156)); #158=FACE_OUTER_BOUND('',#157,.T.); -#159=ORIENTED_EDGE('',*,*,#86,.F.); +#159=ORIENTED_EDGE('',*,*,#86,.T.); #160=EDGE_LOOP('',(#159)); #161=FACE_BOUND('',#160,.T.); #162=ADVANCED_FACE('lower_cap',(#158,#161),#16,.T.); #163=ORIENTED_EDGE('',*,*,#67,.T.); #164=EDGE_LOOP('',(#163)); #165=FACE_OUTER_BOUND('',#164,.T.); -#166=ORIENTED_EDGE('',*,*,#105,.T.); +#166=ORIENTED_EDGE('',*,*,#105,.F.); #167=EDGE_LOOP('',(#166)); #168=FACE_BOUND('',#167,.T.); #169=ADVANCED_FACE('upper_cap',(#165,#168),#21,.T.); diff --git a/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.mm b/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.mm index c9fce4af..95623616 100644 --- a/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.mm +++ b/main/opengeometry/tests/fixtures/cases/annular-cylinder.step.mm @@ -153,9 +153,9 @@ #146=EDGE_LOOP('',(#142,#143,#144,#145)); #147=FACE_OUTER_BOUND('',#146,.T.); #148=ADVANCED_FACE('outer',(#147),#6,.T.); -#149=ORIENTED_EDGE('',*,*,#86,.T.); +#149=ORIENTED_EDGE('',*,*,#86,.F.); #150=ORIENTED_EDGE('',*,*,#141,.T.); -#151=ORIENTED_EDGE('',*,*,#105,.F.); +#151=ORIENTED_EDGE('',*,*,#105,.T.); #152=ORIENTED_EDGE('',*,*,#141,.F.); #153=EDGE_LOOP('',(#149,#150,#151,#152)); #154=FACE_OUTER_BOUND('',#153,.T.); @@ -163,14 +163,14 @@ #156=ORIENTED_EDGE('',*,*,#48,.F.); #157=EDGE_LOOP('',(#156)); #158=FACE_OUTER_BOUND('',#157,.T.); -#159=ORIENTED_EDGE('',*,*,#86,.F.); +#159=ORIENTED_EDGE('',*,*,#86,.T.); #160=EDGE_LOOP('',(#159)); #161=FACE_BOUND('',#160,.T.); #162=ADVANCED_FACE('lower_cap',(#158,#161),#16,.T.); #163=ORIENTED_EDGE('',*,*,#67,.T.); #164=EDGE_LOOP('',(#163)); #165=FACE_OUTER_BOUND('',#164,.T.); -#166=ORIENTED_EDGE('',*,*,#105,.T.); +#166=ORIENTED_EDGE('',*,*,#105,.F.); #167=EDGE_LOOP('',(#166)); #168=FACE_BOUND('',#167,.T.); #169=ADVANCED_FACE('upper_cap',(#165,#168),#21,.T.); diff --git a/main/opengeometry/tests/fixtures/cases/annular-cylinder.tess.json b/main/opengeometry/tests/fixtures/cases/annular-cylinder.tess.json index a8b25c8a..8dd58bee 100644 --- a/main/opengeometry/tests/fixtures/cases/annular-cylinder.tess.json +++ b/main/opengeometry/tests/fixtures/cases/annular-cylinder.tess.json @@ -1 +1 @@ -{"achievedDeflection":0.01,"indices":[0,1,34,0,34,33,1,2,35,1,35,34,2,3,36,2,36,35,3,4,37,3,37,36,4,5,38,4,38,37,5,6,39,5,39,38,6,7,40,6,40,39,7,8,41,7,41,40,8,9,42,8,42,41,9,10,43,9,43,42,10,11,44,10,44,43,11,12,45,11,45,44,12,13,46,12,46,45,13,14,47,13,47,46,14,15,48,14,48,47,15,16,49,15,49,48,16,17,50,16,50,49,17,18,51,17,51,50,18,19,52,18,52,51,19,20,53,19,53,52,20,21,54,20,54,53,21,22,55,21,55,54,22,23,56,22,56,55,23,24,57,23,57,56,24,25,58,24,58,57,25,26,59,25,59,58,26,27,60,26,60,59,27,28,61,27,61,60,28,29,62,28,62,61,29,30,63,29,63,62,30,31,64,30,64,63,31,32,65,31,65,64,66,100,67,66,99,100,67,101,68,67,100,101,68,102,69,68,101,102,69,103,70,69,102,103,70,104,71,70,103,104,71,105,72,71,104,105,72,106,73,72,105,106,73,107,74,73,106,107,74,108,75,74,107,108,75,109,76,75,108,109,76,110,77,76,109,110,77,111,78,77,110,111,78,112,79,78,111,112,79,113,80,79,112,113,80,114,81,80,113,114,81,115,82,81,114,115,82,116,83,82,115,116,83,117,84,83,116,117,84,118,85,84,117,118,85,119,86,85,118,119,86,120,87,86,119,120,87,121,88,87,120,121,88,122,89,88,121,122,89,123,90,89,122,123,90,124,91,90,123,124,91,125,92,91,124,125,92,126,93,92,125,126,93,127,94,93,126,127,94,128,95,94,127,128,95,129,96,95,128,129,96,130,97,96,129,130,97,131,98,97,130,131,163,132,133,133,134,135,135,136,137,137,138,139,139,140,141,141,142,143,143,144,145,145,146,147,147,148,180,181,180,148,148,149,150,150,151,152,152,153,154,154,155,156,156,157,158,158,159,160,160,161,162,162,163,133,133,135,137,137,139,141,141,143,145,145,147,180,182,181,148,148,150,152,152,154,156,156,158,160,160,162,133,133,137,141,145,180,179,183,182,148,148,152,156,156,160,133,141,145,179,184,183,148,141,179,178,185,184,148,141,178,177,186,185,148,141,177,176,186,148,156,141,176,175,187,186,156,141,175,174,188,187,156,141,174,173,189,188,156,141,173,172,190,189,156,141,172,171,191,190,156,133,141,171,192,191,156,133,171,170,193,192,156,133,170,169,194,193,156,133,169,168,194,156,133,133,168,167,195,194,133,133,167,166,164,195,133,133,166,165,165,164,133,227,196,197,197,198,199,199,200,201,201,202,203,203,204,205,205,206,207,207,208,209,209,210,211,211,212,244,245,244,212,212,213,214,214,215,216,216,217,218,218,219,220,220,221,222,222,223,224,224,225,226,226,227,197,197,199,201,201,203,205,205,207,209,209,211,244,246,245,212,212,214,216,216,218,220,220,222,224,224,226,197,197,201,205,209,244,243,247,246,212,212,216,220,220,224,197,205,209,243,248,247,212,205,243,242,249,248,212,205,242,241,250,249,212,205,241,240,250,212,220,205,240,239,251,250,220,205,239,238,252,251,220,205,238,237,253,252,220,205,237,236,254,253,220,205,236,235,255,254,220,197,205,235,256,255,220,197,235,234,257,256,220,197,234,233,258,257,220,197,233,232,258,220,197,197,232,231,259,258,197,197,231,230,228,259,197,197,230,229,229,228,197],"normals":[1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0],"outlineEdgeIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"outlinePositions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865475,0.7071067811865476,0.0,-0.7071067811865475,0.5555702330196023,0.0,-0.8314696123025452,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.282842712474619,0.28284271247461906,0.0,-0.282842712474619,0.22222809320784093,0.0,-0.3325878449210181,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0],"positions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865475,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.282842712474619,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0,1.0,0.0,0.0,0.9807852804032303,0.0,0.19509032201612872,0.9238795325112865,0.0,0.3826834323650904,0.8314696123025452,0.0,0.5555702330196022,0.7071067811865474,0.0,0.7071067811865477,0.5555702330196018,0.0,0.8314696123025455,0.38268343236509,0.0,0.9238795325112866,0.1950903220161283,0.0,0.9807852804032304,-1.8369701987210297e-16,0.0,1.0,-0.19509032201612866,0.0,0.9807852804032303,-0.38268343236509034,0.0,0.9238795325112865,-0.5555702330196022,0.0,0.8314696123025452,-0.7071067811865477,0.0,0.7071067811865475,-0.8314696123025455,0.0,0.555570233019602,-0.9238795325112868,0.0,0.38268343236508967,-0.9807852804032304,0.0,0.19509032201612836,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,-0.1950903220161286,-0.9238795325112867,0.0,-0.3826834323650899,-0.8314696123025453,0.0,-0.5555702330196022,-0.7071067811865475,0.0,-0.7071067811865476,-0.555570233019602,0.0,-0.8314696123025453,-0.3826834323650897,0.0,-0.9238795325112867,-0.1950903220161282,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,0.19509032201612833,0.0,-0.9807852804032304,0.38268343236508984,0.0,-0.9238795325112867,0.5555702330196023,0.0,-0.8314696123025452,0.7071067811865476,0.0,-0.7071067811865475,0.8314696123025452,0.0,-0.5555702330196022,0.9238795325112867,0.0,-0.3826834323650898,0.9807852804032304,0.0,-0.19509032201612825,0.4,0.0,0.0,0.39231411216129214,0.0,0.0780361288064515,0.3695518130045146,0.0,0.15307337294603618,0.3325878449210181,0.0,0.22222809320784087,0.28284271247461895,0.0,0.28284271247461906,0.22222809320784076,0.0,0.3325878449210182,0.153073372946036,0.0,0.3695518130045147,0.07803612880645133,0.0,0.3923141121612922,-7.347880794884119e-17,0.0,0.4,-0.07803612880645147,0.0,0.39231411216129214,-0.15307337294603615,0.0,0.3695518130045146,-0.22222809320784087,0.0,0.3325878449210181,-0.28284271247461906,0.0,0.282842712474619,-0.3325878449210182,0.0,0.2222280932078408,-0.3695518130045148,0.0,0.15307337294603587,-0.3923141121612922,0.0,0.07803612880645135,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,-0.07803612880645144,-0.36955181300451473,0.0,-0.15307337294603596,-0.33258784492101817,0.0,-0.22222809320784087,-0.282842712474619,0.0,-0.28284271247461906,-0.2222280932078408,0.0,-0.33258784492101817,-0.1530733729460359,0.0,-0.36955181300451473,-0.07803612880645128,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,0.07803612880645133,0.0,-0.3923141121612922,0.15307337294603596,0.0,-0.36955181300451473,0.22222809320784093,0.0,-0.3325878449210181,0.28284271247461906,0.0,-0.282842712474619,0.3325878449210181,0.0,-0.22222809320784087,0.36955181300451473,0.0,-0.15307337294603593,0.3923141121612922,0.0,-0.0780361288064513,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515],"revision":0,"triangleFaceIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]} \ No newline at end of file +{"achievedDeflection":0.01,"indices":[0,1,34,0,34,33,1,2,35,1,35,34,2,3,36,2,36,35,3,4,37,3,37,36,4,5,38,4,38,37,5,6,39,5,39,38,6,7,40,6,40,39,7,8,41,7,41,40,8,9,42,8,42,41,9,10,43,9,43,42,10,11,44,10,44,43,11,12,45,11,45,44,12,13,46,12,46,45,13,14,47,13,47,46,14,15,48,14,48,47,15,16,49,15,49,48,16,17,50,16,50,49,17,18,51,17,51,50,18,19,52,18,52,51,19,20,53,19,53,52,20,21,54,20,54,53,21,22,55,21,55,54,22,23,56,22,56,55,23,24,57,23,57,56,24,25,58,24,58,57,25,26,59,25,59,58,26,27,60,26,60,59,27,28,61,27,61,60,28,29,62,28,62,61,29,30,63,29,63,62,30,31,64,30,64,63,31,32,65,31,65,64,66,100,67,66,99,100,67,101,68,67,100,101,68,102,69,68,101,102,69,103,70,69,102,103,70,104,71,70,103,104,71,105,72,71,104,105,72,106,73,72,105,106,73,107,74,73,106,107,74,108,75,74,107,108,75,109,76,75,108,109,76,110,77,76,109,110,77,111,78,77,110,111,78,112,79,78,111,112,79,113,80,79,112,113,80,114,81,80,113,114,81,115,82,81,114,115,82,116,83,82,115,116,83,117,84,83,116,117,84,118,85,84,117,118,85,119,86,85,118,119,86,120,87,86,119,120,87,121,88,87,120,121,88,122,89,88,121,122,89,123,90,89,122,123,90,124,91,90,123,124,91,125,92,91,124,125,92,126,93,92,125,126,93,127,94,93,126,127,94,128,95,94,127,128,95,129,96,95,128,129,96,130,97,96,129,130,97,131,98,97,130,131,163,132,133,133,134,135,135,136,137,137,138,139,139,140,141,141,142,143,143,144,145,145,146,147,147,148,180,179,180,148,148,149,150,150,151,152,152,153,154,154,155,156,156,157,158,158,159,160,160,161,162,162,163,133,133,135,137,137,139,141,141,143,145,145,147,180,178,179,148,148,150,152,152,154,156,156,158,160,160,162,133,133,137,141,145,180,181,177,178,148,148,152,156,156,160,133,141,145,181,176,177,148,141,181,182,175,176,148,141,182,183,174,175,148,141,183,184,174,148,156,141,184,185,173,174,156,141,185,186,172,173,156,141,186,187,171,172,156,141,187,188,170,171,156,141,188,189,169,170,156,133,141,189,168,169,156,133,189,190,167,168,156,133,190,191,166,167,156,133,191,192,166,156,133,133,192,193,165,166,133,133,193,194,164,165,133,133,194,195,195,164,133,227,196,197,197,198,199,199,200,201,201,202,203,203,204,205,205,206,207,207,208,209,209,210,211,211,212,244,243,244,212,212,213,214,214,215,216,216,217,218,218,219,220,220,221,222,222,223,224,224,225,226,226,227,197,197,199,201,201,203,205,205,207,209,209,211,244,242,243,212,212,214,216,216,218,220,220,222,224,224,226,197,197,201,205,209,244,245,241,242,212,212,216,220,220,224,197,205,209,245,240,241,212,205,245,246,239,240,212,205,246,247,238,239,212,205,247,248,238,212,220,205,248,249,237,238,220,205,249,250,236,237,220,205,250,251,235,236,220,205,251,252,234,235,220,205,252,253,233,234,220,197,205,253,232,233,220,197,253,254,231,232,220,197,254,255,230,231,220,197,255,256,230,220,197,197,256,257,229,230,197,197,257,258,228,229,197,197,258,259,259,228,197],"normals":[1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0],"outlineEdgeIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"outlinePositions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865476,0.7071067811865476,0.0,-0.7071067811865476,0.5555702330196023,0.0,-0.8314696123025452,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.28284271247461906,0.28284271247461906,2.0,-0.28284271247461906,0.22222809320784093,2.0,-0.3325878449210181,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0],"positions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865476,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.28284271247461906,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0,1.0,0.0,0.0,0.9807852804032303,0.0,0.19509032201612872,0.9238795325112865,0.0,0.3826834323650904,0.8314696123025452,0.0,0.5555702330196022,0.7071067811865474,0.0,0.7071067811865477,0.5555702330196018,0.0,0.8314696123025455,0.38268343236509,0.0,0.9238795325112866,0.1950903220161283,0.0,0.9807852804032304,-1.8369701987210297e-16,0.0,1.0,-0.19509032201612866,0.0,0.9807852804032303,-0.38268343236509034,0.0,0.9238795325112865,-0.5555702330196022,0.0,0.8314696123025452,-0.7071067811865477,0.0,0.7071067811865475,-0.8314696123025455,0.0,0.555570233019602,-0.9238795325112868,0.0,0.38268343236508967,-0.9807852804032304,0.0,0.19509032201612836,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,-0.1950903220161286,-0.9238795325112867,0.0,-0.3826834323650899,-0.8314696123025453,0.0,-0.5555702330196022,-0.7071067811865475,0.0,-0.7071067811865476,-0.555570233019602,0.0,-0.8314696123025453,-0.3826834323650897,0.0,-0.9238795325112867,-0.1950903220161282,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,0.19509032201612833,0.0,-0.9807852804032304,0.38268343236508984,0.0,-0.9238795325112867,0.5555702330196023,0.0,-0.8314696123025452,0.7071067811865476,0.0,-0.7071067811865476,0.8314696123025452,0.0,-0.5555702330196022,0.9238795325112867,0.0,-0.3826834323650898,0.9807852804032304,0.0,-0.19509032201612825,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.4,2.0,0.0,0.39231411216129214,2.0,0.0780361288064515,0.3695518130045146,2.0,0.15307337294603618,0.3325878449210181,2.0,0.22222809320784087,0.28284271247461895,2.0,0.28284271247461906,0.22222809320784076,2.0,0.3325878449210182,0.153073372946036,2.0,0.3695518130045147,0.07803612880645133,2.0,0.3923141121612922,-7.347880794884119e-17,2.0,0.4,-0.07803612880645147,2.0,0.39231411216129214,-0.15307337294603615,2.0,0.3695518130045146,-0.22222809320784087,2.0,0.3325878449210181,-0.28284271247461906,2.0,0.282842712474619,-0.3325878449210182,2.0,0.2222280932078408,-0.3695518130045148,2.0,0.15307337294603587,-0.3923141121612922,2.0,0.07803612880645135,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,-0.07803612880645144,-0.36955181300451473,2.0,-0.15307337294603596,-0.33258784492101817,2.0,-0.22222809320784087,-0.282842712474619,2.0,-0.28284271247461906,-0.2222280932078408,2.0,-0.33258784492101817,-0.1530733729460359,2.0,-0.36955181300451473,-0.07803612880645128,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,0.07803612880645133,2.0,-0.3923141121612922,0.15307337294603596,2.0,-0.36955181300451473,0.22222809320784093,2.0,-0.3325878449210181,0.28284271247461906,2.0,-0.28284271247461906,0.3325878449210181,2.0,-0.22222809320784087,0.36955181300451473,2.0,-0.15307337294603593,0.3923141121612922,2.0,-0.0780361288064513],"revision":0,"triangleFaceIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.fallback.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.fallback.json index d398bf70..1bc0b661 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.fallback.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.fallback.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"round-a","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-9,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-9,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.3,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":2,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}],"handlers":["prismatic_curved_boolean"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.3,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.3,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"two-round-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-0.300000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[0.0,0.3,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,0.3,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-3.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,3.0],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"batch-prismatic.single-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-9,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":17,"id":14,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":21,"id":15,"tolerance":1e-9,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":29,"id":16,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":31,"id":17,"tolerance":1e-9,"twin_halfedge":33}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-3.000000001}]}},{"id":2,"key":"vertical-plane-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":3,"key":"vertical-plane-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":6.283185309679586,"lo":3.141592651089793},{"hi":0.300000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":3.1415926560897933,"lo":-2.5e-9},{"hi":0.300000001,"lo":-1e-9}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":1,"twin":24,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":20,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":12,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":5,"to":5,"twin":32,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":4,"to":4,"twin":28,"wire_ref":null},{"edge":6,"face":1,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":7,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":8,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":9,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":6,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":11,"to":11,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":10,"prev":10,"to":10,"twin":34,"wire_ref":null},{"edge":3,"face":2,"from":0,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":4,"next":13,"prev":15,"to":3,"twin":3,"wire_ref":null},{"edge":12,"face":2,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":4,"next":14,"prev":12,"to":7,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":4,"next":15,"prev":13,"to":6,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":6,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":12,"prev":14,"to":0,"twin":25,"wire_ref":null},{"edge":2,"face":3,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":5,"next":17,"prev":19,"to":2,"twin":2,"wire_ref":null},{"edge":14,"face":3,"from":2,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":5,"next":18,"prev":16,"to":8,"twin":23,"wire_ref":null},{"edge":7,"face":3,"from":8,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":5,"next":19,"prev":17,"to":7,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":7,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":5,"next":16,"prev":18,"to":3,"twin":13,"wire_ref":null},{"edge":1,"face":4,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":6,"next":21,"prev":23,"to":1,"twin":1,"wire_ref":null},{"edge":15,"face":4,"from":1,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":6,"next":22,"prev":20,"to":9,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":9,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":6,"next":23,"prev":21,"to":8,"twin":8,"wire_ref":null},{"edge":14,"face":4,"from":8,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":6,"next":20,"prev":22,"to":2,"twin":17,"wire_ref":null},{"edge":0,"face":5,"from":1,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":7,"next":25,"prev":27,"to":0,"twin":0,"wire_ref":null},{"edge":13,"face":5,"from":0,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":7,"next":26,"prev":24,"to":6,"twin":15,"wire_ref":null},{"edge":9,"face":5,"from":6,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":7,"next":27,"prev":25,"to":9,"twin":9,"wire_ref":null},{"edge":15,"face":5,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":7,"next":24,"prev":26,"to":1,"twin":21,"wire_ref":null},{"edge":5,"face":6,"from":4,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":8,"next":29,"prev":31,"to":5,"twin":5,"wire_ref":null},{"edge":16,"face":6,"from":5,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":8,"next":30,"prev":28,"to":11,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":11,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":8,"next":31,"prev":29,"to":10,"twin":10,"wire_ref":null},{"edge":17,"face":6,"from":10,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":8,"next":28,"prev":30,"to":4,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":5,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":9,"next":33,"prev":35,"to":4,"twin":4,"wire_ref":null},{"edge":17,"face":7,"from":4,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":9,"next":34,"prev":32,"to":10,"twin":31,"wire_ref":null},{"edge":11,"face":7,"from":10,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":9,"next":35,"prev":33,"to":11,"twin":11,"wire_ref":null},{"edge":16,"face":7,"from":11,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":9,"next":32,"prev":34,"to":5,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":4},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":10},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,5,4,3,2,7,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":2,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.1,0.0,1.5],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":6,"outgoing_halfedge":6,"position":[0.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":7,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":8,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":9,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":10,"position":[1.1,0.3,1.5],"tolerance":1e-9},{"id":11,"outgoing_halfedge":11,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"round-a","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-9,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-9,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.3,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":2,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}],"handlers":["prismatic_curved_boolean"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.3,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.3,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"two-round-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-0.300000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[0.0,0.3,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,0.3,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-3.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,3.0],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"batch-prismatic.single-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-9,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":17,"id":14,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":21,"id":15,"tolerance":1e-9,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":29,"id":16,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":31,"id":17,"tolerance":1e-9,"twin_halfedge":33}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-3.000000001}]}},{"id":2,"key":"vertical-plane-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":3,"key":"vertical-plane-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":6.283185309679586,"lo":3.141592651089793},{"hi":0.300000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":3.1415926560897933,"lo":-2.5e-9},{"hi":0.300000001,"lo":-1e-9}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":3,"prev":1,"to":0,"twin":24,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":20,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":0,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":12,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":5,"to":4,"twin":32,"wire_ref":null},{"edge":5,"face":0,"from":4,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":4,"prev":4,"to":5,"twin":28,"wire_ref":null},{"edge":6,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":2,"next":9,"prev":7,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":8,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":2,"next":6,"prev":8,"to":7,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":7,"prev":9,"to":8,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":8,"prev":6,"to":9,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":3,"next":11,"prev":11,"to":10,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":10,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":3,"next":10,"prev":10,"to":11,"twin":34,"wire_ref":null},{"edge":3,"face":2,"from":3,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":4,"next":15,"prev":13,"to":0,"twin":3,"wire_ref":null},{"edge":12,"face":2,"from":7,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":4,"next":12,"prev":14,"to":3,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":13,"prev":15,"to":7,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":4,"next":14,"prev":12,"to":6,"twin":25,"wire_ref":null},{"edge":2,"face":3,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":5,"next":19,"prev":17,"to":3,"twin":2,"wire_ref":null},{"edge":14,"face":3,"from":8,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":5,"next":16,"prev":18,"to":2,"twin":23,"wire_ref":null},{"edge":7,"face":3,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":5,"next":17,"prev":19,"to":8,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":3,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":5,"next":18,"prev":16,"to":7,"twin":13,"wire_ref":null},{"edge":1,"face":4,"from":1,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":6,"next":23,"prev":21,"to":2,"twin":1,"wire_ref":null},{"edge":15,"face":4,"from":9,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":6,"next":20,"prev":22,"to":1,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":8,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":6,"next":21,"prev":23,"to":9,"twin":8,"wire_ref":null},{"edge":14,"face":4,"from":2,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":6,"next":22,"prev":20,"to":8,"twin":17,"wire_ref":null},{"edge":0,"face":5,"from":0,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":7,"next":27,"prev":25,"to":1,"twin":0,"wire_ref":null},{"edge":13,"face":5,"from":6,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":7,"next":24,"prev":26,"to":0,"twin":15,"wire_ref":null},{"edge":9,"face":5,"from":9,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":7,"next":25,"prev":27,"to":6,"twin":9,"wire_ref":null},{"edge":15,"face":5,"from":1,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":7,"next":26,"prev":24,"to":9,"twin":21,"wire_ref":null},{"edge":5,"face":6,"from":5,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":8,"next":31,"prev":29,"to":4,"twin":5,"wire_ref":null},{"edge":16,"face":6,"from":11,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":8,"next":28,"prev":30,"to":5,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":10,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":8,"next":29,"prev":31,"to":11,"twin":10,"wire_ref":null},{"edge":17,"face":6,"from":4,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":8,"next":30,"prev":28,"to":10,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":4,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":9,"next":35,"prev":33,"to":5,"twin":4,"wire_ref":null},{"edge":17,"face":7,"from":10,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":9,"next":32,"prev":34,"to":4,"twin":31,"wire_ref":null},{"edge":11,"face":7,"from":11,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":9,"next":33,"prev":35,"to":10,"twin":11,"wire_ref":null},{"edge":16,"face":7,"from":5,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":9,"next":34,"prev":32,"to":11,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":4},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":10},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,5,4,3,2,7,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":0,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":5,"position":[1.1,0.0,1.5],"tolerance":1e-9},{"id":5,"outgoing_halfedge":4,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":6,"outgoing_halfedge":9,"position":[0.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":7,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":8,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":11,"position":[1.1,0.3,1.5],"tolerance":1e-9},{"id":11,"outgoing_halfedge":10,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.json index f5975715..f88ef13f 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/prismatic.single-round.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"round-a","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-9,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-9,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.3,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":2,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","prismatic_curved_boolean"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.3,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.3,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"two-round-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-0.300000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[0.0,0.3,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,0.3,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-3.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,3.0],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"batch-prismatic.single-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-9,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":17,"id":14,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":21,"id":15,"tolerance":1e-9,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":29,"id":16,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":31,"id":17,"tolerance":1e-9,"twin_halfedge":33}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-3.000000001}]}},{"id":2,"key":"vertical-plane-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":3,"key":"vertical-plane-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":6.283185309679586,"lo":3.141592651089793},{"hi":0.300000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":3.1415926560897933,"lo":-2.5e-9},{"hi":0.300000001,"lo":-1e-9}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":1,"twin":24,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":20,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":12,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":5,"to":5,"twin":32,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":4,"to":4,"twin":28,"wire_ref":null},{"edge":6,"face":1,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":7,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":8,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":9,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":6,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":11,"to":11,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":10,"prev":10,"to":10,"twin":34,"wire_ref":null},{"edge":3,"face":2,"from":0,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":4,"next":13,"prev":15,"to":3,"twin":3,"wire_ref":null},{"edge":12,"face":2,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":4,"next":14,"prev":12,"to":7,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":4,"next":15,"prev":13,"to":6,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":6,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":12,"prev":14,"to":0,"twin":25,"wire_ref":null},{"edge":2,"face":3,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":5,"next":17,"prev":19,"to":2,"twin":2,"wire_ref":null},{"edge":14,"face":3,"from":2,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":5,"next":18,"prev":16,"to":8,"twin":23,"wire_ref":null},{"edge":7,"face":3,"from":8,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":5,"next":19,"prev":17,"to":7,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":7,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":5,"next":16,"prev":18,"to":3,"twin":13,"wire_ref":null},{"edge":1,"face":4,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":6,"next":21,"prev":23,"to":1,"twin":1,"wire_ref":null},{"edge":15,"face":4,"from":1,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":6,"next":22,"prev":20,"to":9,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":9,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":6,"next":23,"prev":21,"to":8,"twin":8,"wire_ref":null},{"edge":14,"face":4,"from":8,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":6,"next":20,"prev":22,"to":2,"twin":17,"wire_ref":null},{"edge":0,"face":5,"from":1,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":7,"next":25,"prev":27,"to":0,"twin":0,"wire_ref":null},{"edge":13,"face":5,"from":0,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":7,"next":26,"prev":24,"to":6,"twin":15,"wire_ref":null},{"edge":9,"face":5,"from":6,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":7,"next":27,"prev":25,"to":9,"twin":9,"wire_ref":null},{"edge":15,"face":5,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":7,"next":24,"prev":26,"to":1,"twin":21,"wire_ref":null},{"edge":5,"face":6,"from":4,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":8,"next":29,"prev":31,"to":5,"twin":5,"wire_ref":null},{"edge":16,"face":6,"from":5,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":8,"next":30,"prev":28,"to":11,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":11,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":8,"next":31,"prev":29,"to":10,"twin":10,"wire_ref":null},{"edge":17,"face":6,"from":10,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":8,"next":28,"prev":30,"to":4,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":5,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":9,"next":33,"prev":35,"to":4,"twin":4,"wire_ref":null},{"edge":17,"face":7,"from":4,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":9,"next":34,"prev":32,"to":10,"twin":31,"wire_ref":null},{"edge":11,"face":7,"from":10,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":9,"next":35,"prev":33,"to":11,"twin":11,"wire_ref":null},{"edge":16,"face":7,"from":11,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":9,"next":32,"prev":34,"to":5,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":4},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":10},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,5,4,3,2,7,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":2,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.1,0.0,1.5],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":6,"outgoing_halfedge":6,"position":[0.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":7,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":8,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":9,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":10,"position":[1.1,0.3,1.5],"tolerance":1e-9},{"id":11,"outgoing_halfedge":11,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"round-a","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-9,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-9,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.3,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-a","entity":"round-a","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":2,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","prismatic_curved_boolean"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.3,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.3,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"two-round-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-0.300000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.300000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[0.0,0.3,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.0,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.0,0.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[6.0,0.3,0.0]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[6.0,0.3,3.0]},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[1.5,0.3,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,0.3,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[6.0,0.0,3.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.9,0.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,0.3,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[1.5,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,-3.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[1.5,-1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[6.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[6.0,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.3]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.3,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,0.0],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[6.0,0.0,3.0],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[1.5,0.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"batch-prismatic.single-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":6.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-9,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":17,"id":14,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":21,"id":15,"tolerance":1e-9,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":29,"id":16,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":0.3,"lo":0.0}},"halfedge":31,"id":17,"tolerance":1e-9,"twin_halfedge":33}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-3.000000001}]}},{"id":2,"key":"vertical-plane-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":3,"key":"vertical-plane-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":1,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"two-round-host","entity":"two-round-host","face":0,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":6.000000001,"lo":-1e-9},{"hi":0.300000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":6.283185309679586,"lo":3.141592651089793},{"hi":0.300000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-a","entity":"round-a","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":3.1415926560897933,"lo":-2.5e-9},{"hi":0.300000001,"lo":-1e-9}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":3,"prev":1,"to":0,"twin":24,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":20,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":0,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":12,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":5,"to":4,"twin":32,"wire_ref":null},{"edge":5,"face":0,"from":4,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":4,"prev":4,"to":5,"twin":28,"wire_ref":null},{"edge":6,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":2,"next":9,"prev":7,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":8,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":2,"next":6,"prev":8,"to":7,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":7,"prev":9,"to":8,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":8,"prev":6,"to":9,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":3,"next":11,"prev":11,"to":10,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":10,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":3,"next":10,"prev":10,"to":11,"twin":34,"wire_ref":null},{"edge":3,"face":2,"from":3,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":4,"next":15,"prev":13,"to":0,"twin":3,"wire_ref":null},{"edge":12,"face":2,"from":7,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":4,"next":12,"prev":14,"to":3,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":13,"prev":15,"to":7,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":4,"next":14,"prev":12,"to":6,"twin":25,"wire_ref":null},{"edge":2,"face":3,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":5,"next":19,"prev":17,"to":3,"twin":2,"wire_ref":null},{"edge":14,"face":3,"from":8,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":5,"next":16,"prev":18,"to":2,"twin":23,"wire_ref":null},{"edge":7,"face":3,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":5,"next":17,"prev":19,"to":8,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":3,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":5,"next":18,"prev":16,"to":7,"twin":13,"wire_ref":null},{"edge":1,"face":4,"from":1,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":6,"next":23,"prev":21,"to":2,"twin":1,"wire_ref":null},{"edge":15,"face":4,"from":9,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":6,"next":20,"prev":22,"to":1,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":8,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":6,"next":21,"prev":23,"to":9,"twin":8,"wire_ref":null},{"edge":14,"face":4,"from":2,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":6,"next":22,"prev":20,"to":8,"twin":17,"wire_ref":null},{"edge":0,"face":5,"from":0,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":7,"next":27,"prev":25,"to":1,"twin":0,"wire_ref":null},{"edge":13,"face":5,"from":6,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":7,"next":24,"prev":26,"to":0,"twin":15,"wire_ref":null},{"edge":9,"face":5,"from":9,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":7,"next":25,"prev":27,"to":6,"twin":9,"wire_ref":null},{"edge":15,"face":5,"from":1,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":7,"next":26,"prev":24,"to":9,"twin":21,"wire_ref":null},{"edge":5,"face":6,"from":5,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":8,"next":31,"prev":29,"to":4,"twin":5,"wire_ref":null},{"edge":16,"face":6,"from":11,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":8,"next":28,"prev":30,"to":5,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":10,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":8,"next":29,"prev":31,"to":11,"twin":10,"wire_ref":null},{"edge":17,"face":6,"from":4,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":8,"next":30,"prev":28,"to":10,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":4,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":9,"next":35,"prev":33,"to":5,"twin":4,"wire_ref":null},{"edge":17,"face":7,"from":10,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":9,"next":32,"prev":34,"to":4,"twin":31,"wire_ref":null},{"edge":11,"face":7,"from":11,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":9,"next":33,"prev":35,"to":10,"twin":11,"wire_ref":null},{"edge":16,"face":7,"from":5,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":9,"next":34,"prev":32,"to":11,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":4},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":10},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,5,4,3,2,7,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,3.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":0,"position":[6.0,0.0,3.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[6.0,0.0,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":5,"position":[1.1,0.0,1.5],"tolerance":1e-9},{"id":5,"outgoing_halfedge":4,"position":[1.9,0.0,1.5],"tolerance":1e-9},{"id":6,"outgoing_halfedge":9,"position":[0.0,0.3,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[0.0,0.3,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":7,"position":[6.0,0.3,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":8,"position":[6.0,0.3,3.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":11,"position":[1.1,0.3,1.5],"tolerance":1e-9},{"id":11,"outgoing_halfedge":10,"position":[1.9,0.3,1.5],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.forward.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.forward.json index 08df0065..38218a6c 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.forward.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.forward.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.5,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.5,1.1],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"rectangular-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":8,"id":2,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":2,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":15,"id":4,"tolerance":6.3e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":6.3e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":10,"id":6,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":13,"id":7,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":7,"id":9,"tolerance":6.3e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":10,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":6.3e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.2,1.0,1.1],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":3,"position":[3.2,1.0,1.1],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.2,1.5,1.1],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[3.2,1.5,1.1],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.2,1.0,1.5],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[3.2,1.0,1.5],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":7,"position":[2.2,1.5,1.5],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[3.2,1.5,1.5],"tolerance":6.3e-8}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.65,1.5,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.4]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[-0.0,-1.0,-0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"}]},"id":"round-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":6.3e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3999999999999999,"lo":0.0}},"halfedge":1,"id":2,"tolerance":6.3e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.4,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.65,1.5,-0.5],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":2,"position":[3.05,1.5,-0.5],"tolerance":6.3e-8}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_planar_cutters","subtract_vertical_arc_extrusion","generic_two_sided_cutter_band_subtraction"],"host":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,-2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]}],"intersections":[],"pcurves":[{"direction":[-0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,2.1520682726985685]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,-1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.0901201280414963,0.0,-2.1520682726985685],"x":[-0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,0.0],"z":[-0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,1.9368614454287116],"x":[0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,-0.0],"z":[-0.717356090899523,0.0,0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0}]},"id":"mixed-curved-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":7,"id":0,"tolerance":6.3e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":6.3e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":6,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":1,"id":4,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":6.3e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":5,"id":6,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":2,"id":7,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":4,"id":9,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":3,"id":10,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":6.3e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.8000000233333334,"lo":-0.8000000233333334},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.800000021,"lo":-0.800000021},{"hi":3.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":6,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":5,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":0,"position":[2.0901201280414963,3.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":1,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":2,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":3,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471659,0.0,0.7173560908995223],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.465765601187591,1.0,1.1]},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.598076211353316,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.5]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.7910571473905725,1.5,1.1]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.6967067093471659,0.0,-0.7173560908995223],"kind":"Line","origin":[1.8811081152373468,3.0,-1.9368614454287116]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471652,0.0,-0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,0.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.4999999999999998]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.4657656011875906,0.0,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,-1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,3.0,1.1000000000000005]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,1.5,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,0.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.5,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.598076211353316,0.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,2.1520682726985685]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,3.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,1.5,1.5]},{"definition":0,"kind":"Intersection"},{"definition":1,"kind":"Intersection"}],"intersections":[{"anchors":[{"parameter":0.0,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-2.2370900898141954,0.03225563626985917]},{"parameter":0.028334801114291642,"point":[2.679668824997465,1.1249999843059526,0.3307188962004861],"uv_a":[6.160388449313543,1.12499998425],"uv_b":[-2.2935305273231577,0.029668824997465038]},{"parameter":0.06261555364766803,"point":[2.676489529532718,1.148437485266038,0.35553311839962887],"uv_a":[6.151122836532611,1.148437485234375],"uv_b":[-2.361809801256655,0.02648952953271788]},{"parameter":0.06917300359337525,"point":[2.6758798017644945,1.1531099403349856,0.3600934413561505],"uv_a":[6.1494187979880905,1.15310994033352],"uv_b":[-2.3748679768681527,0.02587980176449456]},{"parameter":0.09472350578879225,"point":[2.673511927131303,1.1718749862698106,0.37727175277559466],"uv_a":[6.142996291169094,1.17187498621875],"uv_b":[-2.4257545571066568,0.0235119271313029]},{"parameter":0.12512878456108087,"point":[2.670736692480739,1.1953124871700322,0.3964410668323627],"uv_a":[6.135822511238574,1.195312487203125],"uv_b":[-2.4863205326425137,0.020736692480739283]},{"parameter":0.14995049847172123,"point":[2.66853225449655,1.2152819057274709,0.4110177693783217],"uv_a":[6.130362338140644,1.2152819057554232],"uv_b":[-2.5357728337336125,0.01853225449655005]},{"parameter":0.15417322142588208,"point":[2.668164456906109,1.2187499882008486,0.41339863435515534],"uv_a":[6.129470076501057,1.2187499881875001],"uv_b":[-2.5441862084349074,0.018164456906109017]},{"parameter":0.18210498285059248,"point":[2.6657958081649715,1.242187489148561,0.4284071768811314],"uv_a":[6.123842549443157,1.2421874891718752],"uv_b":[-2.5998556927074383,0.015795808164971614]},{"parameter":0.2091194781015368,"point":[2.6636312892736353,1.2656249901660308,0.4416654330895639],"uv_a":[6.118867069463013,1.2656249901562502],"uv_b":[-2.6537174838059925,0.013631289273635439]},{"parameter":0.23537113950850322,"point":[2.66167139832315,1.2890624911389978,0.4533269982602597],"uv_a":[6.1144873948445735,1.289062491140625],"uv_b":[-2.7060802629751683,0.011671398323150228]},{"parameter":0.256443011692048,"point":[2.660215662637239,1.3083039602163389,0.46179284131799114],"uv_a":[6.111305878293199,1.308303960231183],"uv_b":[-2.7481264156909653,0.010215662637238943]},{"parameter":0.2609875710109817,"point":[2.6599165875972526,1.3124999921208964,0.4635124022444197],"uv_a":[6.1106594428997605,1.312499992125],"uv_b":[-2.7571958620866104,0.009916587597252668]},{"parameter":0.28607223779480606,"point":[2.6583672632416975,1.33593749309167,0.47231715379922057],"uv_a":[6.107348320847363,1.335937493109375],"uv_b":[-2.8072746448894756,0.008367263241697565]},{"parameter":0.3107171775011209,"point":[2.657023784686102,1.3593749940794733,0.4798172648614164],"uv_a":[6.104526287239927,1.3593749940937498],"uv_b":[-2.8564962009681647,0.007023784686102097]},{"parameter":0.33500186015188027,"point":[2.6558864643186353,1.3828124950733056,0.4860731309880169],"uv_a":[6.102171320575353,1.3828124950781249],"uv_b":[-2.9050170325986295,0.005886464318635376]},{"parameter":0.3589972392979255,"point":[2.654955567088826,1.4062499960645936,0.4911323006820845],"uv_a":[6.100266097951611,1.4062499960625],"uv_b":[-2.9529762594057267,0.004955567088825941]},{"parameter":0.38276790371366365,"point":[2.654231310219106,1.429687497041538,0.4950314655552374],"uv_a":[6.098797261305364,1.429687497046875],"uv_b":[-3.000499988146808,0.004231310219106277]},{"parameter":0.40637377755047316,"point":[2.6537138628622183,1.4531249980248027,0.49779788480974135],"uv_a":[6.097754892221692,1.45312499803125],"uv_b":[-3.0477047745014545,0.00371386286221842]},{"parameter":0.4298715140080698,"point":[2.6534033459790627,1.4765624990156134,0.4994503814668287],"uv_a":[6.0971321448404385,1.476562499015625],"uv_b":[-3.0947004684855486,0.0034033459790627774]},{"parameter":0.45331568701695135,"point":[2.653299832265033,1.5,0.5000000000511745],"uv_a":[6.096925003564456,1.5],"uv_b":[-3.141592653589793,0.0032998322650330536]},{"parameter":0.4767598600258329,"point":[2.6534033459790627,1.5234375009843866,0.4994503814668287],"uv_a":[6.0971321448404385,1.523437500984375],"uv_b":[-3.1884848386940376,0.0034033459790627774]},{"parameter":0.5002575964834295,"point":[2.6537138628622183,1.5468750019751973,0.49779788480974135],"uv_a":[6.097754892221692,1.54687500196875],"uv_b":[-3.2354805326781317,0.00371386286221842]},{"parameter":0.523863470320239,"point":[2.654231310219106,1.570312502958462,0.4950314655552374],"uv_a":[6.098797261305364,1.570312502953125],"uv_b":[-3.2826853190327783,0.004231310219106277]},{"parameter":0.5476341347359772,"point":[2.654955567088826,1.5937500039354064,0.4911323006820845],"uv_a":[6.100266097951611,1.5937500039375],"uv_b":[-3.3302090477738595,0.004955567088825941]},{"parameter":0.5716295138820224,"point":[2.6558864643186353,1.6171875049266944,0.4860731309880169],"uv_a":[6.102171320575353,1.6171875049218751],"uv_b":[-3.3781682745809567,0.005886464318635376]},{"parameter":0.5959141965327819,"point":[2.657023784686102,1.6406250059205267,0.4798172648614164],"uv_a":[6.104526287239927,1.6406250059062502],"uv_b":[-3.4266891062114215,0.007023784686102097]},{"parameter":0.6205591362390966,"point":[2.6583672632416975,1.66406250690833,0.47231715379922057],"uv_a":[6.107348320847363,1.664062506890625],"uv_b":[-3.4759106622901106,0.008367263241697565]},{"parameter":0.645643803022921,"point":[2.6599165875972526,1.6875000078791036,0.4635124022444197],"uv_a":[6.1106594428997605,1.687500007875],"uv_b":[-3.525989445092976,0.009916587597252668]},{"parameter":0.6501883623418547,"point":[2.660215662637239,1.6916960397836611,0.46179284131799114],"uv_a":[6.111305878293199,1.691696039768817],"uv_b":[-3.535058891488621,0.010215662637238943]},{"parameter":0.6712602345253995,"point":[2.66167139832315,1.7109375088610022,0.4533269982602597],"uv_a":[6.1144873948445735,1.710937508859375],"uv_b":[-3.577105044204418,0.011671398323150228]},{"parameter":0.697511895932366,"point":[2.6636312892736353,1.7343750098339692,0.4416654330895639],"uv_a":[6.118867069463013,1.7343750098437498],"uv_b":[-3.6294678233735937,0.013631289273635439]},{"parameter":0.7245263911833103,"point":[2.6657958081649715,1.757812510851439,0.4284071768811314],"uv_a":[6.123842549443157,1.7578125108281248],"uv_b":[-3.683329614472148,0.015795808164971614]},{"parameter":0.7524581526080207,"point":[2.668164456906109,1.7812500117991514,0.41339863435515534],"uv_a":[6.129470076501057,1.7812500118124999],"uv_b":[-3.738999098744679,0.018164456906109017]},{"parameter":0.7566808755621816,"point":[2.66853225449655,1.7847180942725291,0.4110177693783217],"uv_a":[6.130362338140644,1.7847180942445768],"uv_b":[-3.7474124734459737,0.01853225449655005]},{"parameter":0.7815025894728219,"point":[2.670736692480739,1.8046875128299678,0.3964410668323627],"uv_a":[6.135822511238574,1.804687512796875],"uv_b":[-3.7968647745370725,0.020736692480739283]},{"parameter":0.8119078682451105,"point":[2.673511927131303,1.8281250137301894,0.37727175277559466],"uv_a":[6.142996291169094,1.82812501378125],"uv_b":[-3.8574307500729295,0.0235119271313029]},{"parameter":0.8374583704405275,"point":[2.6758798017644945,1.8468900596650144,0.3600934413561505],"uv_a":[6.1494187979880905,1.84689005966648],"uv_b":[-3.9083173303114336,0.02587980176449456]},{"parameter":0.8440158203862347,"point":[2.676489529532718,1.851562514733962,0.35553311839962887],"uv_a":[6.151122836532611,1.851562514765625],"uv_b":[-3.9213755059229314,0.02648952953271788]},{"parameter":0.878296572919611,"point":[2.679668824997465,1.8750000156940474,0.3307188962004861],"uv_a":[6.160388449313543,1.87500001575],"uv_b":[-3.9896547798564286,0.029668824997465038]},{"parameter":0.9066313740339027,"point":[2.682255636269859,1.8930588992139792,0.309038349905685],"uv_a":[6.168475257835536,1.8930588991854695],"uv_b":[-4.046095217365391,0.03225563626985917]},{"parameter":0.9154681118685938,"point":[2.6830490965935136,1.8984375167303162,0.3020720862093555],"uv_a":[6.171072038485683,1.898437516734375],"uv_b":[-4.063697530428579,0.03304909659351374]},{"parameter":0.9566760112783708,"point":[2.686629585655327,1.921875017694837,0.2683681603195926],"uv_a":[6.183625297356484,1.92187501771875],"uv_b":[-4.145824715609436,0.036629585655326924]},{"parameter":0.9690637587096833,"point":[2.6876574427069433,1.9283719520199973,0.2578710349665264],"uv_a":[6.187531717682981,1.9283719519789853],"uv_b":[-4.170515405258614,0.03765744270694338]},{"parameter":1.004062580127355,"point":[2.6904094928695583,1.9453125187070932,0.22736921664616086],"uv_a":[6.198874637593571,1.9453125187031248],"uv_b":[-4.240310477201132,0.04040949286955842]},{"parameter":1.0271667910844,"point":[2.6920832594763313,1.9553155784149696,0.20661007731490855],"uv_a":[6.206588177530428,1.9553155784108087],"uv_b":[-4.286401564583248,0.0420832594763314]},{"parameter":1.0625178429302367,"point":[2.6943879789281096,1.9687500197040324,0.1739925832035218],"uv_a":[6.218698924623721,1.9687500196874999],"uv_b":[-4.35696789203586,0.04438797892810964]},{"parameter":1.0823752028069469,"point":[2.6955314793972236,1.975278819574291,0.15527409180585766],"uv_a":[6.225644637377873,1.9752788195002098],"uv_b":[-4.396619305311677,0.045531479397223684]},{"parameter":1.1356481782814714,"point":[2.6980008502910633,1.9890895502642703,0.10388172037675547],"uv_a":[6.2447010972253185,1.9890895502702768],"uv_b":[-4.503101029766185,0.04800085029106338]},{"parameter":1.1517975554941897,"point":[2.698564165559826,1.9921875207400295,0.08804228733141027],"uv_a":[6.250571271133383,1.9921875206718749],"uv_b":[-4.535381530439569,0.04856416555982612]},{"parameter":1.1877571590697558,"point":[2.6994904754362534,1.99724121612939,0.05245162560341963],"uv_a":[6.263757557072764,1.9972412161754107],"uv_b":[-4.6072923654263125,0.04949047543625351]},{"parameter":1.2392826767807936,"point":[2.6999998138937857,1.9999989950868042,0.0010024836771621234],"uv_a":[6.282814016920209,1.999998995148141],"uv_b":[-4.710384011687316,0.04999981389378583]},{"parameter":1.2907975115920034,"point":[2.6995286807036782,1.9974485882753887,-0.05044702228975368],"uv_a":[6.301870476767655,1.9974485883102902],"uv_b":[-4.813454990847523,0.04952868070367833]},{"parameter":1.3287713593431787,"point":[2.6985641655431207,1.9921875206956527,-0.08804228783551027],"uv_a":[6.315799343415534,1.9921875206718749],"uv_b":[-4.889396431337886,0.04856416554312082]},{"parameter":1.3428722316668074,"point":[2.698077246952141,1.9895108073171726,-0.10187820905755031],"uv_a":[6.3209269366151,1.989510807279073],"uv_b":[-4.917582290131343,0.048077246952141106]},{"parameter":1.3960865449589484,"point":[2.6956460397094473,1.9759281157955804,-0.153272399989274],"uv_a":[6.339983396462546,1.9759281157986295],"uv_b":[-5.023949920612639,0.04564603970944736]},{"parameter":1.4180509198041897,"point":[2.694387978944502,1.9687500197454413,-0.17399258296503345],"uv_a":[6.347671689641234,1.9687500196874999],"uv_b":[-5.0678100682575336,0.044387978944502304]},{"parameter":1.45120479941553,"point":[2.6922359418385375,1.956217455224096,-0.20461093197499977],"uv_a":[6.359039856309991,1.956217455164631],"uv_b":[-5.133990066703966,0.04223594183853763]},{"parameter":1.4765068365529088,"point":[2.690409492858698,1.945312518681071,-0.227369216761379],"uv_a":[6.367495976813366,1.9453125187031248],"uv_b":[-5.184467483797146,0.040409492858698215]},{"parameter":1.5091728293897624,"point":[2.687848191674414,1.929567109430189,-0.2558751619620383],"uv_a":[6.378096316157436,1.9295671094416216],"uv_b":[-5.24960984875082,0.037848191674414]},{"parameter":1.5238945235008194,"point":[2.6866295856806124,1.921875017752155,-0.2683681601029221],"uv_a":[6.38274531690847,1.92187501771875],"uv_b":[-5.278953244732782,0.036629585680612475]},{"parameter":1.5651024229164958,"point":[2.683049096621975,1.898437516791168,-0.3020720860026923],"uv_a":[6.39529857577927,1.898437516734375],"uv_b":[-5.361080429937905,0.03304909662197497]},{"parameter":1.5714001120926695,"point":[2.682484382574458,1.8946168557621426,-0.3070464740359601],"uv_a":[6.397152776004882,1.8946168558170062],"uv_b":[-5.373625150412406,0.03248438257445807]},{"parameter":1.6022729373260531,"point":[2.679668825028625,1.8750000157566713,-0.3307188960032387],"uv_a":[6.405982164951411,1.87500001575],"uv_b":[-5.4351231805342355,0.029668825028625]},{"parameter":1.636553689865318,"point":[2.676489529566215,1.851562514797001,-0.3555331182112076],"uv_a":[6.415247777732344,1.851562514765625],"uv_b":[-5.50340245449183,0.026489529566215086]},{"parameter":1.6402429620635373,"point":[2.676146462339821,1.8489410950732177,-0.3581062860764056],"uv_a":[6.416209235852327,1.8489410950441387],"uv_b":[-5.5107490441552915,0.026146462339820875]},{"parameter":1.6686606523699568,"point":[2.6735119271668495,1.8281250137925558,-0.37727175259540324],"uv_a":[6.423374323095858,1.82812501378125],"uv_b":[-5.567347210365832,0.023511927166849578]},{"parameter":1.6990659313877927,"point":[2.6707366924618046,1.8046875127991515,-0.39644106691982683],"uv_a":[6.430548103168361,1.804687512796875],"uv_b":[-5.6279131863877705,0.02073669246180465]},{"parameter":1.720412352146336,"point":[2.6688367325081037,1.7875578286620981,-0.40903605611156013],"uv_a":[6.435265695699773,1.7875578286759928],"uv_b":[-5.670439788281108,0.018836732508103804]},{"parameter":1.7281112220715473,"point":[2.668164456886363,1.781250011769516,-0.41339863443903974],"uv_a":[6.436900537905881,1.7812500118124999],"uv_b":[-5.685778862168076,0.018164456886363034]},{"parameter":1.7560429834932776,"point":[2.665795808144511,1.7578125108233147,-0.42840717696171626],"uv_a":[6.442528064963776,1.7578125108281248],"uv_b":[-5.7414483464285295,0.015795808144511092]},{"parameter":1.7830574787412532,"point":[2.6636312892525402,1.7343750098076303,-0.4416654331671527],"uv_a":[6.447503544943923,1.7343750098437498],"uv_b":[-5.795310137515057,0.013631289252540313]},{"parameter":1.8093091400611427,"point":[2.661671398333681,1.7109375088728267,-0.4533269982238437],"uv_a":[6.4518832194913704,1.710937508859375],"uv_b":[-5.847672916512794,0.011671398333680916]},{"parameter":1.8252799228484844,"point":[2.6605578475175835,1.6963875252620246,-0.45981728976936054],"uv_a":[6.454322155547218,1.6963875252814207],"uv_b":[-5.879538094132449,0.010557847517583596]},{"parameter":1.834926323041138,"point":[2.6599165875751147,1.6875000078570217,-0.46351240231687274],"uv_a":[6.455711171507174,1.687500007875],"uv_b":[-5.898788515771685,0.009916587575114821]},{"parameter":1.8600109898219923,"point":[2.658367263219139,1.6640625068886525,-0.4723171538695391],"uv_a":[6.459022293559571,1.664062506890625],"uv_b":[-5.948867298562591,0.008367263219139165]},{"parameter":1.884655929525338,"point":[2.657023784663185,1.640625005903401,-0.4798172649298883],"uv_a":[6.461844327167008,1.6406250059062502],"uv_b":[-5.998088854629342,0.007023784663184873]},{"parameter":1.908940612173128,"point":[2.6558864642954187,1.617187504912243,-0.48607313105492644],"uv_a":[6.464199293831582,1.6171875049218751],"uv_b":[-6.046609686247884,0.005886464295418836]},{"parameter":1.9329359913162028,"point":[2.654955567065369,1.5937500039237296,-0.49113230074771436],"uv_a":[6.466104516455323,1.5937500039375],"uv_b":[-6.09456891304307,0.004955567065369149]},{"parameter":1.956706655728973,"point":[2.654231310195462,1.5703125029496365,-0.4950314656198781],"uv_a":[6.467573353101572,1.570312502953125],"uv_b":[-6.142092641772257,0.004231310195462079]},{"parameter":1.980312529562813,"point":[2.653713862838442,1.546875001969282,-0.49779788487367427],"uv_a":[6.468615722185245,1.54687500196875],"uv_b":[-6.1892974281150135,0.0037138628384418837]},{"parameter":2.0038102660059347,"point":[2.6534033459906636,1.5234375009858294,-0.49945038143594533],"uv_a":[6.469238469495507,1.523437500984375],"uv_b":[-6.236293122069564,0.00340334599066372]},{"parameter":2.0272544390138956,"point":[2.6532998323121433,1.5,-0.49999999992617605],"uv_a":[6.469445610700496,1.5],"uv_b":[-6.283185307179586,0.0032998323121433693]},{"parameter":2.0506986120218564,"point":[2.6534033459906636,1.4765624990141706,-0.49945038143594533],"uv_a":[6.469238469495507,1.476562499015625],"uv_b":[-6.330077492289608,0.00340334599066372]},{"parameter":2.0741963484649784,"point":[2.653713862838442,1.453124998030718,-0.49779788487367427],"uv_a":[6.468615722185245,1.45312499803125],"uv_b":[-6.377073186244159,0.0037138628384418837]},{"parameter":2.0978022222988186,"point":[2.654231310195462,1.4296874970503635,-0.4950314656198781],"uv_a":[6.467573353101572,1.429687497046875],"uv_b":[-6.424277972586916,0.004231310195462079]},{"parameter":2.1215728867115886,"point":[2.654955567065369,1.4062499960762704,-0.49113230074771436],"uv_a":[6.466104516455323,1.4062499960625],"uv_b":[-6.471801701316102,0.004955567065369149]},{"parameter":2.1455682658546635,"point":[2.6558864642954187,1.382812495087757,-0.48607313105492644],"uv_a":[6.464199293831582,1.3828124950781249],"uv_b":[-6.519760928111288,0.005886464295418836]},{"parameter":2.1698529485024536,"point":[2.657023784663185,1.359374994096599,-0.4798172649298883],"uv_a":[6.461844327167008,1.3593749940937498],"uv_b":[-6.568281759729831,0.007023784663184873]},{"parameter":2.1944978882057993,"point":[2.658367263219139,1.3359374931113475,-0.4723171538695391],"uv_a":[6.459022293559571,1.335937493109375],"uv_b":[-6.617503315796581,0.008367263219139165]},{"parameter":2.219582554986654,"point":[2.6599165875751147,1.3124999921429783,-0.46351240231687274],"uv_a":[6.455711171507174,1.312499992125],"uv_b":[-6.667582098587488,0.009916587575114821]},{"parameter":2.2292289551793076,"point":[2.6605578475175835,1.3036124747379754,-0.45981728976936054],"uv_a":[6.454322155547218,1.3036124747185793],"uv_b":[-6.686832520226724,0.010557847517583596]},{"parameter":2.245199737966649,"point":[2.661671398333681,1.2890624911271733,-0.4533269982238437],"uv_a":[6.4518832194913704,1.289062491140625],"uv_b":[-6.718697697846379,0.011671398333680916]},{"parameter":2.2714513992865384,"point":[2.6636312892525402,1.2656249901923697,-0.4416654331671527],"uv_a":[6.447503544943923,1.2656249901562502],"uv_b":[-6.771060476844116,0.013631289252540313]},{"parameter":2.298465894534514,"point":[2.665795808144511,1.2421874891766853,-0.42840717696171626],"uv_a":[6.442528064963776,1.2421874891718752],"uv_b":[-6.824922267930643,0.015795808144511092]},{"parameter":2.3263976559562445,"point":[2.668164456886363,1.218749988230484,-0.41339863443903974],"uv_a":[6.436900537905881,1.2187499881875001],"uv_b":[-6.880591752191097,0.018164456886363034]},{"parameter":2.334096525881456,"point":[2.6688367325081037,1.2124421713379019,-0.40903605611156013],"uv_a":[6.435265695699773,1.2124421713240072],"uv_b":[-6.8959308260780645,0.018836732508103804]},{"parameter":2.3554429466399993,"point":[2.6707366924618046,1.1953124872008485,-0.39644106691982683],"uv_a":[6.430548103168361,1.195312487203125],"uv_b":[-6.938457427971402,0.02073669246180465]},{"parameter":2.3858482256578353,"point":[2.6735119271668495,1.1718749862074442,-0.37727175259540324],"uv_a":[6.423374323095858,1.17187498621875],"uv_b":[-6.99902340399334,0.023511927166849578]},{"parameter":2.4142659159642545,"point":[2.676146462339821,1.1510589049267823,-0.3581062860764056],"uv_a":[6.416209235852327,1.1510589049558613],"uv_b":[-7.055621570203881,0.026146462339820875]},{"parameter":2.4179551881624737,"point":[2.676489529566215,1.148437485202999,-0.3555331182112076],"uv_a":[6.415247777732344,1.148437485234375],"uv_b":[-7.062968159867342,0.026489529566215086]},{"parameter":2.4522359407017382,"point":[2.679668825028625,1.1249999842433287,-0.3307188960032387],"uv_a":[6.405982164951411,1.12499998425],"uv_b":[-7.131247433824937,0.029668825028625]},{"parameter":2.483108765935122,"point":[2.682484382574458,1.1053831442378574,-0.3070464740359601],"uv_a":[6.397152776004882,1.1053831441829938],"uv_b":[-7.192745463946767,0.03248438257445807]},{"parameter":2.4894064551112955,"point":[2.683049096621975,1.101562483208832,-0.3020720860026923],"uv_a":[6.39529857577927,1.101562483265625],"uv_b":[-7.205290184421267,0.03304909662197497]},{"parameter":2.5306143545269717,"point":[2.6866295856806124,1.078124982247845,-0.2683681601029221],"uv_a":[6.38274531690847,1.07812498228125],"uv_b":[-7.28741736962639,0.036629585680612475]},{"parameter":2.545336048638029,"point":[2.687848191674414,1.070432890569811,-0.2558751619620383],"uv_a":[6.378096316157436,1.0704328905583784],"uv_b":[-7.316760765608352,0.037848191674414]},{"parameter":2.5780020414748828,"point":[2.690409492858698,1.0546874813189289,-0.22736921676137894],"uv_a":[6.367495976813366,1.054687481296875],"uv_b":[-7.381903130562026,0.040409492858698215]},{"parameter":2.6033040786122617,"point":[2.6922359418385375,1.043782544775904,-0.20461093197499977],"uv_a":[6.359039856309991,1.043782544835369],"uv_b":[-7.432380547655207,0.04223594183853763]},{"parameter":2.636457958223602,"point":[2.694387978944502,1.0312499802545585,-0.17399258296503345],"uv_a":[6.347671689641234,1.0312499803125],"uv_b":[-7.498560546101639,0.044387978944502304]},{"parameter":2.658422333068843,"point":[2.6956460397094473,1.0240718842044194,-0.15327239998927394],"uv_a":[6.339983396462546,1.02407188420137],"uv_b":[-7.542420693746534,0.04564603970944736]},{"parameter":2.711636646360984,"point":[2.698077246952141,1.0104891926828272,-0.10187820905755025],"uv_a":[6.3209269366151,1.0104891927209265],"uv_b":[-7.648788324227829,0.048077246952141106]},{"parameter":2.7257375186846122,"point":[2.6985641655431207,1.007812479304347,-0.08804228783551021],"uv_a":[6.315799343415534,1.007812479328125],"uv_b":[-7.6769741830212865,0.04856416554312082]},{"parameter":2.7637113664357873,"point":[2.6995286807036782,1.0025514117246113,-0.05044702228975368],"uv_a":[6.301870476767655,1.0025514116897098],"uv_b":[-7.752915623511649,0.04952868070367833]},{"parameter":2.8152262012469973,"point":[2.6999998138937857,1.0000010049131958,0.0010024836771621234],"uv_a":[6.282814016920209,1.000001004851859],"uv_b":[-7.855986602671856,0.04999981389378583]},{"parameter":2.866751718958035,"point":[2.6994904754362534,1.00275878387061,0.05245162560341963],"uv_a":[6.263757557072764,1.0027587838245893],"uv_b":[-7.95907824893286,0.04949047543625351]},{"parameter":2.902711322533601,"point":[2.698564165559826,1.0078124792599703,0.08804228733141027],"uv_a":[6.250571271133383,1.007812479328125],"uv_b":[-8.030989083919604,0.04856416555982612]},{"parameter":2.9188606997463196,"point":[2.6980008502910633,1.0109104497357295,0.10388172037675542],"uv_a":[6.2447010972253185,1.0109104497297228],"uv_b":[-8.063269584592987,0.04800085029106338]},{"parameter":2.972133675220844,"point":[2.6955314793972236,1.0247211804257086,0.1552740918058576],"uv_a":[6.225644637377873,1.0247211804997898],"uv_b":[-8.169751309047495,0.045531479397223684]},{"parameter":2.9919910350975543,"point":[2.6943879789281096,1.0312499802959674,0.17399258320352173],"uv_a":[6.218698924623721,1.0312499803125],"uv_b":[-8.209402722323311,0.04438797892810964]},{"parameter":3.027342086943391,"point":[2.6920832594763313,1.0446844215850304,0.20661007731490855],"uv_a":[6.206588177530428,1.0446844215891913],"uv_b":[-8.279969049775923,0.0420832594763314]},{"parameter":3.050446297900436,"point":[2.6904094928695583,1.0546874812929066,0.22736921664616086],"uv_a":[6.198874637593571,1.054687481296875],"uv_b":[-8.326060137158041,0.04040949286955842]},{"parameter":3.085445119318108,"point":[2.6876574427069433,1.0716280479800027,0.2578710349665264],"uv_a":[6.187531717682981,1.0716280480210147],"uv_b":[-8.395855209100558,0.03765744270694338]},{"parameter":3.09783286674942,"point":[2.686629585655327,1.078124982305163,0.2683681603195926],"uv_a":[6.183625297356484,1.07812498228125],"uv_b":[-8.420545898749737,0.036629585655326924]},{"parameter":3.139040766159197,"point":[2.6830490965935136,1.1015624832696838,0.3020720862093555],"uv_a":[6.171072038485683,1.101562483265625],"uv_b":[-8.502673083930594,0.03304909659351374]},{"parameter":3.147877503993888,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-8.520275396993782,0.03225563626985917]}],"residual_tolerance":1.575e-8,"surfaces":[6,16],"uv_tubes":[[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.124209214796271,"lo":-2.406411402341082},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.1569719794561633,"lo":-2.4983683491236492},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.3356934500336592,"lo":-2.4009843280911483},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.2730948163911444,"lo":-2.527527717583665},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.304622606034943,"lo":-2.6074524837142277},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.387415930460316,"lo":-2.63467743591581},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.5189460843310227,"lo":-2.561012957837497},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.4328472398898455,"lo":-2.7111946612525},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.49213211051033,"lo":-2.761441066003101},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254676408,"lo":-2.81080582131352},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6219879575435745,"lo":-2.832218721122559},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.729987522899675,"lo":-2.7753347548779006},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.65703829648088,"lo":-2.907432210495206},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.7088315327320975,"lo":-2.954939313125543},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537707235,"lo":-3.002058695859559},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098578984435,"lo":-3.048894713019921},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.8579288019235642,"lo":-3.0955474456289704},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415437515,"lo":-3.1421143472107476},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133865332663,"lo":-3.1886918564537368},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982770595,"lo":-3.235377023798282},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.047808283381304,"lo":-3.2822692089025267},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507258495,"lo":-3.32947192064632},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709599688387,"lo":-3.3770948917420713},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.187637861550616,"lo":-3.425256505256022},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594159665,"lo":-3.474086728195151},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.281126611320027,"lo":-3.523730769472351},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940540434,"lo":-3.5743537744474887},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309668438,"lo":-3.6261470106987064},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5078505523016856,"lo":-3.553197784279911},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.450966586057027,"lo":-3.6611973496360117},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.472379485866066,"lo":-3.7341933817119455},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411764854,"lo":-3.791053196669256},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.571990645927086,"lo":-3.8503380672897407},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.722172349342089,"lo":-3.7642392228485635},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.648507871263776,"lo":-3.89576937671927},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.6757328234653586,"lo":-3.9785627011446434},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.755657589595921,"lo":-4.010090490788442},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.882200979088438,"lo":-3.947491857145927},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.784816958055937,"lo":-4.126213327723423},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.876773904838504,"lo":-4.158976092383315},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-4.010890591239015,"lo":-4.098902156554955},{"hi":0.03463601724082288,"lo":0.030668715622550025}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.8994431600668644,"lo":-4.31007908597115},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.096443336311079,"lo":-4.219896784556971},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.030925261373579,"lo":-4.3799006210861675},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.148128302436899,"lo":-4.378583739347481},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.145268909678024,"lo":-4.498100546941084},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.277665065484228,"lo":-4.475922131863309},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.18365585640266,"lo":-4.716064478675202},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.438540028419418,"lo":-4.599942531786336},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.3915598604660815,"lo":-4.7511140353998},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.401109072904305,"lo":-4.916567304209324},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.5042420533669025,"lo":-5.019596949167937},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.661572109866798,"lo":-5.041279312318611},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.833024713750971,"lo":-4.973954007718258},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.704847029168753,"lo":-5.236685181575229},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.936229625322849,"lo":-5.1555303635473235},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.935450071364669,"lo":-5.26635006359683},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-5.033035232517605,"lo":-5.285422317983507},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.054182753889798,"lo":-5.379894578658169},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.190923056786897,"lo":-5.337640036696706},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874322536,"lo":-5.525334800348151},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.335990988988904,"lo":-5.398714591361407},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.250629090168746,"lo":-5.558119240777895},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632619046,"lo":-5.63996100240702},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.488709275164908,"lo":-5.525442223482214},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.39755271173421,"lo":-5.680543542786913},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.446215258321955,"lo":-5.749045138431647},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.542859982601096,"lo":-5.755492992067783},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.639761640507173,"lo":-5.716457009942011},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.574439893647168,"lo":-5.852787314949437},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764255475,"lo":-5.9030337196881115},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579519583,"lo":-5.952398474508268},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.783942561273484,"lo":-5.943268449371758},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.841037250853977,"lo":-5.9372893590501565},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.798630950189871,"lo":-6.049024864144405},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186429091,"lo":-6.096531966762842},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191392256,"lo":-6.14365134948497},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232657513,"lo":-6.190487366633442},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.999521455584698,"lo":-6.237140099230629},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683069086743,"lo":-6.283707000800527},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040205912,"lo":-6.330284509978665},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.14250875184952,"lo":-6.3769696773996305},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936959542,"lo":-6.423861862509653},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104380507,"lo":-6.47106457415326},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613558645,"lo":-6.51868754527243},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.329230515128543,"lo":-6.566849158774475},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247725731,"lo":-6.61567938170166},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719264874202,"lo":-6.6653234229669165},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.4698386475963305,"lo":-6.715946427930081},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.517345750214767,"lo":-6.7677396641693015},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.629081255309016,"lo":-6.725333363505196},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.623102164987414,"lo":-6.782428053085688},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139850905,"lo":-6.87578603483959},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894671061,"lo":-6.932645850103698},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.713583299409735,"lo":-6.991930720712005},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.849913604417162,"lo":-6.926608973852},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.81087762229139,"lo":-7.023510631758077},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325475927525,"lo":-7.120155356037217},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.885827071572259,"lo":-7.168817902624962},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.040928390876958,"lo":-7.077661339194265},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.9264096119521525,"lo":-7.267805981740127},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.0082513735812775,"lo":-7.315741524190426},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.1676560229977655,"lo":-7.230379625370269},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035814011021,"lo":-7.451671740036637},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.228730577662467,"lo":-7.375447557572276},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.186476035701004,"lo":-7.512187860469375},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.280948296375666,"lo":-7.533335381841567},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.300020550762342,"lo":-7.630920542994503},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.410840250811849,"lo":-7.630140989036324},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.329685432783943,"lo":-7.86152358519042},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.5924166066409144,"lo":-7.733345900608201},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.525091302040561,"lo":-7.9047985044923745},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.546773665191235,"lo":-8.06212856099227},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.649803310149848,"lo":-8.165261541454868},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.815256578959373,"lo":-8.174810753893091},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.966428082572836,"lo":-8.127830585939755},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.850306135683972,"lo":-8.38271475795651},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-8.090448482495862,"lo":-8.288705548874944},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.068270067418087,"lo":-8.421101704681147},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.187786875011687,"lo":-8.418242311922278},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.186469993273008,"lo":-8.535445352985592},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.346473829802202,"lo":-8.469927278048093},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-8.256291528388022,"lo":-8.666927454292308},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-8.467468457804218,"lo":-8.555480023120158},{"hi":0.03463601724082288,"lo":0.030668715622550025}]]},{"anchors":[{"parameter":0.0,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-2.081583143507084,0.3400255935013612]},{"parameter":0.027960601948876673,"point":[2.9879723108865743,1.078124982260299,0.2683681601500001],"uv_a":[6.193609511793907,1.07812498228125],"uv_b":[-2.1373605912358022,0.3379723108865744]},{"parameter":0.06566350641898697,"point":[2.985032342842705,1.0994777312845825,0.2993023758744895],"uv_a":[6.183251596162853,1.0994777313317967],"uv_b":[-2.2125545136462232,0.3350323428427049]},{"parameter":0.06914134111203746,"point":[2.984753332289419,1.1015624833168893,0.30207208636967364],"uv_a":[6.182323686679556,1.101562483265625],"uv_b":[-2.2194877770635526,0.33475333228941917]},{"parameter":0.10627874720988245,"point":[2.9817151124528634,1.1249999842435154,0.33071889600382687],"uv_a":[6.172721158909179,1.12499998425],"uv_b":[-2.2935305269455717,0.33171511245286345]},{"parameter":0.138451119986034,"point":[2.9790322399577196,1.1469658845454735,0.3540719041429702],"uv_a":[6.1648856016319,1.1469658845608737],"uv_b":[-2.3576621455573745,0.3290322399577197]},{"parameter":0.14053223592357528,"point":[2.9788582043878766,1.148437485213058,0.3555331182412742],"uv_a":[6.1643950877238165,1.148437485234375],"uv_b":[-2.3618098009586244,0.3288582043878767]},{"parameter":0.1726109003025741,"point":[2.9761831302065995,1.1718749862655384,0.3772717527632513],"uv_a":[6.157094202032266,1.17187498621875],"uv_b":[-2.425754557084009,0.3261831302065996]},{"parameter":0.20299169788098603,"point":[2.973690380710923,1.1953124872401966,0.39644106703150683],"uv_a":[6.150650620365512,1.195312487203125],"uv_b":[-2.486320532996485,0.32369038071092326]},{"parameter":0.22377451989690716,"point":[2.972027308682751,1.2119959662445097,0.4087220039129997],"uv_a":[6.146519607100946,1.2119959662778652],"uv_b":[-2.527755845914946,0.3220273086827512]},{"parameter":0.23201503912643257,"point":[2.971380414731811,1.2187499882135842,0.4133986343912045],"uv_a":[6.1449458871691025,1.2187499881875001],"uv_b":[-2.5441862084965225,0.3213804147318111]},{"parameter":0.2599273283225378,"point":[2.9692536588896807,1.242187489148606,0.42840717688126084],"uv_a":[6.139893056008326,1.2421874891718752],"uv_b":[-2.5998556927076493,0.3192536588896808]},{"parameter":0.2869249884216469,"point":[2.9673105070407413,1.2656249901667684,0.44166543309173684],"uv_a":[6.135426420474502,1.2656249901562502],"uv_b":[-2.6537174838093325,0.3173105070407414]},{"parameter":0.3131624290936812,"point":[2.9655513201809924,1.2890624911441202,0.4533269982760353],"uv_a":[6.131495248472412,1.289062491140625],"uv_b":[-2.7060802629977676,0.3155513201809925]},{"parameter":0.3380244834888475,"point":[2.9640199117830357,1.3118138222699471,0.46323424153891385],"uv_a":[6.128153612569992,1.3118138222613736],"uv_b":[-2.7557150480637147,0.3140199117830358]},{"parameter":0.3387661663716,"point":[2.963976425838612,1.3124999921298923,0.46351240227393675],"uv_a":[6.128059766113292,1.312499992125],"uv_b":[-2.7571958621254273,0.3139764258386122]},{"parameter":0.3638415140017471,"point":[2.9625861179326485,1.3359374931093746,0.47231715386248857],"uv_a":[6.125088483845136,1.335937493109375],"uv_b":[-2.8072746449644437,0.31258611793264857]},{"parameter":0.38847931536185726,"point":[2.961380656429395,1.3593749940954285,0.4798172649252091],"uv_a":[6.122556360574773,1.3593749940937498],"uv_b":[-2.8564962010346706,0.31138065642939505]},{"parameter":0.41275880271272114,"point":[2.9603602671622977,1.3828124950683494,0.48607313096507004],"uv_a":[6.120443514455005,1.3828124950781249],"uv_b":[-2.905017032578237,0.3103602671622978]},{"parameter":0.4367506572602511,"point":[2.9595251415313575,1.4062499960514447,0.4911323006081817],"uv_a":[6.118734302858896,1.4062499960625],"uv_b":[-2.952976259352182,0.3095251415313576]},{"parameter":0.46051916706439316,"point":[2.9588754363665952,1.4296874970565727,0.49503146566535783],"uv_a":[6.117416661523907,1.429687497046875],"uv_b":[-3.0004999882075496,0.3088754363665953]},{"parameter":0.4841239329795401,"point":[2.9584112739474304,1.4531249980307959,0.49779788487451726],"uv_a":[6.1164816319842075,1.45312499803125],"uv_b":[-3.047704774525534,0.3084112739474305]},{"parameter":0.5076212685256527,"point":[2.958132741516926,1.4765624990160457,0.4994503814760793],"uv_a":[6.115923030013848,1.476562499015625],"uv_b":[-3.094700468487279,0.30813274151692616]},{"parameter":0.5310653968754574,"point":[2.958039891529144,1.5,0.5000000000611257],"uv_a":[6.115737227918569,1.5],"uv_b":[-3.141592653589793,0.30803989152914424]},{"parameter":0.5545095252252621,"point":[2.958132741516926,1.5234375009839543,0.4994503814760793],"uv_a":[6.115923030013848,1.523437500984375],"uv_b":[-3.188484838692307,0.30813274151692616]},{"parameter":0.5780068607713746,"point":[2.9584112739474304,1.5468750019692041,0.49779788487451726],"uv_a":[6.1164816319842075,1.54687500196875],"uv_b":[-3.2354805326540523,0.3084112739474305]},{"parameter":0.6016116266865216,"point":[2.9588754363665952,1.5703125029434273,0.49503146566535783],"uv_a":[6.117416661523907,1.570312502953125],"uv_b":[-3.2826853189720366,0.3088754363665953]},{"parameter":0.6253801364906636,"point":[2.9595251415313575,1.5937500039485553,0.4911323006081817],"uv_a":[6.118734302858896,1.5937500039375],"uv_b":[-3.3302090478274042,0.3095251415313576]},{"parameter":0.6493719910381935,"point":[2.9603602671622977,1.6171875049316506,0.48607313096507004],"uv_a":[6.120443514455005,1.6171875049218751],"uv_b":[-3.3781682746013493,0.3103602671622978]},{"parameter":0.6736514783890574,"point":[2.961380656429395,1.6406250059045715,0.4798172649252091],"uv_a":[6.122556360574773,1.6406250059062502],"uv_b":[-3.4266891061449156,0.31138065642939505]},{"parameter":0.6982892797491675,"point":[2.9625861179326485,1.6640625068906254,0.47231715386248857],"uv_a":[6.125088483845136,1.664062506890625],"uv_b":[-3.4759106622151426,0.31258611793264857]},{"parameter":0.7233646273793146,"point":[2.963976425838612,1.6875000078701077,0.46351240227393675],"uv_a":[6.128059766113292,1.687500007875],"uv_b":[-3.525989445054159,0.3139764258386122]},{"parameter":0.7241063102620672,"point":[2.9640199117830357,1.6881861777300529,0.46323424153891385],"uv_a":[6.128153612569992,1.6881861777386264],"uv_b":[-3.5274702591158715,0.3140199117830358]},{"parameter":0.7489683646572335,"point":[2.9655513201809924,1.7109375088558798,0.4533269982760353],"uv_a":[6.131495248472412,1.710937508859375],"uv_b":[-3.5771050441818186,0.3155513201809925]},{"parameter":0.7752058053292677,"point":[2.9673105070407413,1.7343750098332316,0.44166543309173684],"uv_a":[6.135426420474502,1.7343750098437498],"uv_b":[-3.6294678233702538,0.3173105070407414]},{"parameter":0.8022034654283768,"point":[2.9692536588896807,1.757812510851394,0.42840717688126084],"uv_a":[6.139893056008326,1.7578125108281248],"uv_b":[-3.683329614471937,0.3192536588896808]},{"parameter":0.8301157546244821,"point":[2.971380414731811,1.7812500117864158,0.4133986343912045],"uv_a":[6.1449458871691025,1.7812500118124999],"uv_b":[-3.7389990986830637,0.3213804147318111]},{"parameter":0.8383562738540075,"point":[2.972027308682751,1.7880040337554903,0.4087220039129997],"uv_a":[6.146519607100946,1.7880040337221348],"uv_b":[-3.75542946126464,0.3220273086827512]},{"parameter":0.8591390958699285,"point":[2.973690380710923,1.8046875127598034,0.39644106703150683],"uv_a":[6.150650620365512,1.804687512796875],"uv_b":[-3.7968647741831014,0.32369038071092326]},{"parameter":0.8895198934483405,"point":[2.9761831302065995,1.8281250137344616,0.3772717527632513],"uv_a":[6.157094202032266,1.82812501378125],"uv_b":[-3.857430750095577,0.3261831302065996]},{"parameter":0.9215985578273392,"point":[2.9788582043878766,1.851562514786942,0.3555331182412742],"uv_a":[6.1643950877238165,1.851562514765625],"uv_b":[-3.921375506220962,0.3288582043878767]},{"parameter":0.9236796737648805,"point":[2.9790322399577196,1.8530341154545265,0.3540719041429702],"uv_a":[6.1648856016319,1.8530341154391263],"uv_b":[-3.9255231616222117,0.3290322399577197]},{"parameter":0.9558520465410321,"point":[2.9817151124528634,1.8750000157564846,0.33071889600382687],"uv_a":[6.172721158909179,1.87500001575],"uv_b":[-3.9896547802340145,0.33171511245286345]},{"parameter":0.9929894526388771,"point":[2.984753332289419,1.8984375166831107,0.30207208636967364],"uv_a":[6.182323686679556,1.898437516734375],"uv_b":[-4.063697530116034,0.33475333228941917]},{"parameter":0.9964672873319276,"point":[2.985032342842705,1.9005222687154175,0.2993023758744895],"uv_a":[6.183251596162853,1.9005222686682033],"uv_b":[-4.070630793533363,0.3350323428427049]},{"parameter":1.0341701918020378,"point":[2.9879723108865743,1.921875017739701,0.2683681601500001],"uv_a":[6.193609511793907,1.92187501771875],"uv_b":[-4.1458247159437835,0.3379723108865744]},{"parameter":1.0621307937509141,"point":[2.990025593501361,1.9361800657104595,0.24443189280520253],"uv_a":[6.2016175906938065,1.9361800656611843],"uv_b":[-4.201602163672502,0.3400255935013612]},{"parameter":1.081530484277304,"point":[2.99137146463429,1.945312518754148,0.2273692164378188],"uv_a":[6.207322823072767,1.9453125187031248],"uv_b":[-4.240310477615036,0.34137146463429024]},{"parameter":1.1233060883448023,"point":[2.994010307708874,1.962706951180748,0.18947896277030496],"uv_a":[6.21998358522476,1.9627069511839812],"uv_b":[-4.323719007011324,0.3440103077088743]},{"parameter":1.1399563130081112,"point":[2.9949501800369926,1.968750019662461,0.17399258344294688],"uv_a":[6.225155215538505,1.9687500196874999],"uv_b":[-4.356967891558006,0.34495018003699274]},{"parameter":1.1815666960635112,"point":[2.9969851414200517,1.9815806660152426,0.13446212146289366],"uv_a":[6.238349579755713,1.9815806660036719],"uv_b":[-4.440113025616254,0.34698514142005177]},{"parameter":1.229214087928075,"point":[2.998707814310851,1.9921875207229818,0.08804228752506559],"uv_a":[6.253833663689513,1.9921875206718749],"uv_b":[-4.535381530052305,0.3487078143108513]},{"parameter":1.2379835399870236,"point":[2.998949091222668,1.9936553977252123,0.07939992604383014],"uv_a":[6.256715574286667,1.9936553976847358],"uv_b":[-4.552914019133949,0.34894909122266826]},{"parameter":1.293380309955671,"point":[2.999901494675918,1.99940862801749,0.024310948999184546],"uv_a":[6.275081568817621,1.999408627997067],"uv_b":[-4.663747904226072,0.349901494675918]},{"parameter":1.348478677818362,"point":[2.9998420305338556,1.9990513081448087,-0.030786228130472493],"uv_a":[6.2934475633485745,1.9990513081483483],"uv_b":[-4.774000408416548,0.34984203053385565]},{"parameter":1.403955715116119,"point":[2.998770718853752,1.9925706287723952,-0.08587302104395379],"uv_a":[6.311813557879528,1.992570628843767],"uv_b":[-4.884990754064252,0.3487707188537521]},{"parameter":1.4061594509690132,"point":[2.9987078142710573,1.9921875206055155,-0.08804228885943374],"uv_a":[6.312536951121648,1.9921875206718749],"uv_b":[-4.889396433385479,0.34870781427105735]},{"parameter":1.4605334458072101,"point":[2.9966879209893302,1.9797275224690436,-0.1409308489857392],"uv_a":[6.330179552410482,1.9797275224787612],"uv_b":[-4.998122908279489,0.3466879209893303]},{"parameter":1.4954132906747397,"point":[2.9949501800535847,1.9687500197090473,-0.17399258317463864],"uv_a":[6.341215398725307,1.9687500196874999],"uv_b":[-5.067810068675873,0.3449501800535848]},{"parameter":1.519077735033578,"point":[2.9935943394688804,1.9600076838869414,-0.19594114092896384],"uv_a":[6.348545546941436,1.9600076838350269],"uv_b":[-5.115065608224227,0.3435943394688805]},{"parameter":1.5538428470629704,"point":[2.9913714645937475,1.9453125186461344,-0.22736921691606637],"uv_a":[6.359047791464718,1.9453125187031248],"uv_b":[-5.184467484104458,0.34137146459374756]},{"parameter":1.580688630748231,"point":[2.989491017758296,1.932500341259705,-0.25088534185181033],"uv_a":[6.36691154147239,1.932500341212875],"uv_b":[-5.238033575112214,0.33949101775829593]},{"parameter":1.601203330610856,"point":[2.987972310875444,1.92187501771164,-0.26836816025607485],"uv_a":[6.372761102606741,1.92187501771875],"uv_b":[-5.278953245034719,0.3379723108754442]},{"parameter":1.6423813938726104,"point":[2.9847533323182245,1.8984375167516232,-0.3020720861369931],"uv_a":[6.384046927584258,1.898437516734375],"uv_b":[-5.361080430199728,0.3347533323182246]},{"parameter":1.6470218030402053,"point":[2.9843793399091125,1.8956261424212553,-0.30574491900756773],"uv_a":[6.385277536003343,1.8956261424735315],"uv_b":[-5.370331090604577,0.3343793399091126]},{"parameter":1.679521568305571,"point":[2.9817151124391463,1.8750000157258093,-0.330718896100445],"uv_a":[6.39364945549147,1.87500001575],"uv_b":[-5.435123180720872,0.3317151124391464]},{"parameter":1.7137739258950988,"point":[2.9788582043731306,1.8515625147560555,-0.3555331183335919],"uv_a":[6.401975526676833,1.851562514765625],"uv_b":[-5.503402454722163,0.32885820437313074]},{"parameter":1.72091629919211,"point":[2.978261030091669,1.8464661071564765,-0.3605013684048319],"uv_a":[6.403643530534297,1.8464661071772088],"uv_b":[-5.517637304153507,0.32826103009166907]},{"parameter":1.745855408194644,"point":[2.9761831302425756,1.8281250138047276,-0.37727175256023615],"uv_a":[6.409276412231548,1.82812501378125],"uv_b":[-5.567347210301307,0.3261831302425757]},{"parameter":1.776236205779676,"point":[2.973690380748728,1.8046875128283095,-0.3964410668370696],"uv_a":[6.415719993898301,1.804687512796875],"uv_b":[-5.627913186240673,0.32369038074872813]},{"parameter":1.8052570859497412,"point":[2.971380414771232,1.7812500118523045,-0.41339863420470424],"uv_a":[6.421424727094712,1.7812500118124999],"uv_b":[-5.68577886176755,0.321380414771232]},{"parameter":1.808369739931587,"point":[2.971138152013541,1.778678880365249,-0.4151362205890914],"uv_a":[6.422009525065251,1.7786788803689406],"uv_b":[-5.691985295358635,0.32113815201354123]},{"parameter":1.8331704450667723,"point":[2.9692536588719127,1.75781251082419,-0.4284071769592079],"uv_a":[6.426477558392323,1.7578125108281248],"uv_b":[-5.741448346424442,0.3192536588719128]},{"parameter":1.8601681051630032,"point":[2.967310507022423,1.7343750098077526,-0.44166543316679185],"uv_a":[6.430944193926146,1.7343750098437498],"uv_b":[-5.795310137514503,0.31731050702242314]},{"parameter":1.8864055457423028,"point":[2.965551320193207,1.7109375088711614,-0.4533269982289724],"uv_a":[6.434875365859817,1.710937508859375],"uv_b":[-5.847672916520141,0.3155513201932072]},{"parameter":1.9120090455704917,"point":[2.9639764258193875,1.6875000078487399,-0.4635124023440469],"uv_a":[6.438310848287356,1.687500007875],"uv_b":[-5.89878851580742,0.31397642581938756]},{"parameter":1.9290726021117979,"point":[2.963013108223454,1.6716003485187807,-0.4696310471481647],"uv_a":[6.440375519596205,1.6716003485384285],"uv_b":[-5.932862850106976,0.31301310822345396]},{"parameter":1.9370861248056854,"point":[2.9625861179453747,1.6640625069029968,-0.472317153818279],"uv_a":[6.441282130487092,1.664062506890625],"uv_b":[-5.948867298501852,0.31258611794537483]},{"parameter":1.961723926228562,"point":[2.9613806564094936,1.6406250058879954,-0.47981726499148236],"uv_a":[6.443814253825877,1.6406250059062502],"uv_b":[-5.998088854693556,0.31138065640949364]},{"parameter":1.98600341357655,"point":[2.9603602671421374,1.6171875049176623,-0.48607313102983524],"uv_a":[6.445927099945645,1.6171875049218751],"uv_b":[-6.046609686225586,0.3103602671421375]},{"parameter":2.009995268121205,"point":[2.959525141510987,1.5937500039372514,-0.49113230067171487],"uv_a":[6.447636311541753,1.5937500039375],"uv_b":[-6.094568912988007,0.3095251415109872]},{"parameter":2.033763777858961,"point":[2.958875436413802,1.5703125029630696,-0.4950314655214878],"uv_a":[6.448953952739905,1.570312502953125],"uv_b":[-6.142092641717985,0.308875436413802]},{"parameter":2.0573685438247455,"point":[2.9584112739267834,1.5468750019634778,-0.49779788493640886],"uv_a":[6.449888982416442,1.54687500196875],"uv_b":[-6.1892974281383335,0.30841127392678347]},{"parameter":2.0808658793679835,"point":[2.9581327414962093,1.5234375009810819,-0.49945038153756327],"uv_a":[6.450447584386803,1.523437500984375],"uv_b":[-6.236293122088576,0.3081327414962094]},{"parameter":2.1043100077124057,"point":[2.958039891542615,1.5,-0.5000000000212772],"uv_a":[6.450633386413662,1.5],"uv_b":[-6.283185307179586,0.30803989154261524]},{"parameter":2.127754136056828,"point":[2.9581327414962093,1.4765624990189181,-0.49945038153756327],"uv_a":[6.450447584386803,1.476562499015625],"uv_b":[-6.330077492270597,0.3081327414962094]},{"parameter":2.151251471600066,"point":[2.9584112739267834,1.4531249980365222,-0.49779788493640886],"uv_a":[6.449888982416442,1.45312499803125],"uv_b":[-6.377073186220839,0.30841127392678347]},{"parameter":2.1748562375658507,"point":[2.958875436413802,1.4296874970369304,-0.4950314655214878],"uv_a":[6.448953952739905,1.429687497046875],"uv_b":[-6.424277972641187,0.308875436413802]},{"parameter":2.1986247473036062,"point":[2.959525141510987,1.4062499960627486,-0.49113230067171487],"uv_a":[6.447636311541753,1.4062499960625],"uv_b":[-6.471801701371166,0.3095251415109872]},{"parameter":2.2226166018482614,"point":[2.9603602671421374,1.3828124950823377,-0.48607313102983524],"uv_a":[6.445927099945645,1.3828124950781249],"uv_b":[-6.519760928133587,0.3103602671421375]},{"parameter":2.2468960891962495,"point":[2.9613806564094936,1.3593749941120046,-0.47981726499148236],"uv_a":[6.443814253825877,1.3593749940937498],"uv_b":[-6.5682817596656164,0.31138065640949364]},{"parameter":2.271533890619126,"point":[2.9625861179453747,1.3359374930970032,-0.472317153818279],"uv_a":[6.441282130487092,1.335937493109375],"uv_b":[-6.617503315857321,0.31258611794537483]},{"parameter":2.279547413313013,"point":[2.963013108223454,1.3283996514812193,-0.4696310471481647],"uv_a":[6.440375519596205,1.3283996514615715],"uv_b":[-6.6335077642521965,0.31301310822345396]},{"parameter":2.2966109698543193,"point":[2.9639764258193875,1.3124999921512601,-0.4635124023440469],"uv_a":[6.438310848287356,1.312499992125],"uv_b":[-6.667582098551753,0.31397642581938756]},{"parameter":2.322214469682508,"point":[2.965551320193207,1.2890624911288386,-0.4533269982289724],"uv_a":[6.434875365859817,1.289062491140625],"uv_b":[-6.718697697839032,0.3155513201932072]},{"parameter":2.3484519102618076,"point":[2.967310507022423,1.2656249901922474,-0.44166543316679185],"uv_a":[6.430944193926146,1.2656249901562502],"uv_b":[-6.77106047684467,0.31731050702242314]},{"parameter":2.3754495703580383,"point":[2.9692536588719127,1.24218748917581,-0.4284071769592079],"uv_a":[6.426477558392323,1.2421874891718752],"uv_b":[-6.82492226793473,0.3192536588719128]},{"parameter":2.4002502754932236,"point":[2.971138152013541,1.221321119634751,-0.4151362205890914],"uv_a":[6.422009525065251,1.2213211196310594],"uv_b":[-6.874385319000537,0.32113815201354123]},{"parameter":2.4033629294750694,"point":[2.971380414771232,1.2187499881476955,-0.41339863420470424],"uv_a":[6.421424727094712,1.2187499881875001],"uv_b":[-6.880591752591623,0.321380414771232]},{"parameter":2.4323838096451347,"point":[2.973690380748728,1.1953124871716905,-0.3964410668370696],"uv_a":[6.415719993898301,1.195312487203125],"uv_b":[-6.938457428118499,0.32369038074872813]},{"parameter":2.4627646072301665,"point":[2.9761831302425756,1.1718749861952724,-0.37727175256023615],"uv_a":[6.409276412231548,1.17187498621875],"uv_b":[-6.999023404057866,0.3261831302425757]},{"parameter":2.4877037162327005,"point":[2.978261030091669,1.1535338928435235,-0.3605013684048319],"uv_a":[6.403643530534297,1.1535338928227912],"uv_b":[-7.048733310205665,0.32826103009166907]},{"parameter":2.494846089529712,"point":[2.9788582043731306,1.1484374852439445,-0.3555331183335919],"uv_a":[6.401975526676833,1.148437485234375],"uv_b":[-7.062968159637009,0.32885820437313074]},{"parameter":2.5290984471192397,"point":[2.9817151124391463,1.1249999842741907,-0.330718896100445],"uv_a":[6.39364945549147,1.12499998425],"uv_b":[-7.1312474336383005,0.3317151124391464]},{"parameter":2.5615982123846055,"point":[2.9843793399091125,1.1043738575787447,-0.30574491900756773],"uv_a":[6.385277536003343,1.1043738575264685],"uv_b":[-7.196039523754595,0.3343793399091126]},{"parameter":2.5662386215522,"point":[2.9847533323182245,1.1015624832483768,-0.3020720861369931],"uv_a":[6.384046927584258,1.101562483265625],"uv_b":[-7.205290184159445,0.3347533323182246]},{"parameter":2.6074166848139546,"point":[2.987972310875444,1.07812498228836,-0.26836816025607485],"uv_a":[6.372761102606741,1.07812498228125],"uv_b":[-7.287417369324453,0.3379723108754442]},{"parameter":2.6279313846765793,"point":[2.989491017758296,1.067499658740295,-0.25088534185181033],"uv_a":[6.36691154147239,1.067499658787125],"uv_b":[-7.328337039246959,0.33949101775829593]},{"parameter":2.65477716836184,"point":[2.9913714645937475,1.0546874813538654,-0.22736921691606635],"uv_a":[6.359047791464718,1.054687481296875],"uv_b":[-7.381903130254716,0.34137146459374756]},{"parameter":2.6895422803912323,"point":[2.9935943394688804,1.0399923161130586,-0.19594114092896384],"uv_a":[6.348545546941436,1.0399923161649731],"uv_b":[-7.4513050061349455,0.3435943394688805]},{"parameter":2.7132067247500706,"point":[2.9949501800535847,1.0312499802909525,-0.1739925831746386],"uv_a":[6.341215398725307,1.0312499803125],"uv_b":[-7.498560545683301,0.3449501800535848]},{"parameter":2.7480865696176004,"point":[2.9966879209893302,1.020272477530956,-0.14093084898573915],"uv_a":[6.330179552410482,1.0202724775212384],"uv_b":[-7.568247706079684,0.3466879209893303]},{"parameter":2.802460564455797,"point":[2.9987078142710573,1.0078124793944845,-0.08804228885943374],"uv_a":[6.312536951121648,1.007812479328125],"uv_b":[-7.676974180973693,0.34870781427105735]},{"parameter":2.8046643003086915,"point":[2.998770718853752,1.0074293712276043,-0.08587302104395379],"uv_a":[6.311813557879528,1.0074293711562325],"uv_b":[-7.68137986029492,0.3487707188537521]},{"parameter":2.8601413376064486,"point":[2.9998420305338556,1.0009486918551913,-0.030786228130472493],"uv_a":[6.2934475633485745,1.0009486918516517],"uv_b":[-7.792370205942625,0.34984203053385565]},{"parameter":2.9152397054691397,"point":[2.999901494675918,1.00059137198251,0.024310948999184546],"uv_a":[6.275081568817621,1.000591372002933],"uv_b":[-7.902622710133101,0.349901494675918]},{"parameter":2.970636475437787,"point":[2.998949091222668,1.0063446022747877,0.07939992604383014],"uv_a":[6.256715574286667,1.0063446023152642],"uv_b":[-8.013456595225223,0.34894909122266826]},{"parameter":2.9794059274967357,"point":[2.998707814310851,1.007812479277018,0.08804228752506559],"uv_a":[6.253833663689513,1.007812479328125],"uv_b":[-8.030989084306867,0.3487078143108513]},{"parameter":3.0270533193612996,"point":[2.9969851414200517,1.0184193339847571,0.13446212146289355],"uv_a":[6.238349579755713,1.0184193339963277],"uv_b":[-8.126257588742918,0.34698514142005177]},{"parameter":3.0686637024167,"point":[2.9949501800369926,1.031249980337539,0.17399258344294682],"uv_a":[6.225155215538505,1.0312499803125],"uv_b":[-8.209402722801165,0.34495018003699274]},{"parameter":3.085313927080009,"point":[2.994010307708874,1.037293048819252,0.18947896277030496],"uv_a":[6.21998358522476,1.0372930488160188],"uv_b":[-8.242651607347849,0.3440103077088743]},{"parameter":3.127089531147507,"point":[2.99137146463429,1.054687481245852,0.2273692164378188],"uv_a":[6.207322823072767,1.054687481296875],"uv_b":[-8.326060136744136,0.34137146463429024]},{"parameter":3.146489221673897,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-8.36476845068667,0.3400255935013612]}],"residual_tolerance":1.575e-8,"surfaces":[8,16],"uv_tubes":[[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-1.970028248049648,"lo":-2.2489154866932384},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-1.9869727464149602,"lo":-2.3629423584670652},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-2.1986879868115645,"lo":-2.2333543038982113},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.0714022772995144,"lo":-2.44161602670961},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.165267289721966,"lo":-2.48592538278098},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.349366834754875,"lo":-2.370105111761124},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.233920288707855,"lo":-2.5536440693347786},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.3046226052590577,"lo":-2.607452484821436},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.4034499071595623,"lo":-2.6106264717518686},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.494895120751793,"lo":-2.5770469336596755},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.432847240074269,"lo":-2.7111946611299027},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.492132110504283,"lo":-2.761441066012699},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254324622,"lo":-2.810805821374638},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6068106928658734,"lo":-2.854984618195609},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.7527534199402894,"lo":-2.7601574902488526},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.6570382964473946,"lo":-2.9074322106424764},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.70883153282399,"lo":-2.9549393131751245},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537947538,"lo":-3.0020586956653696},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098579030347,"lo":-3.048894712900072},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.857928801641447,"lo":-3.095547445918285},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415571581,"lo":-3.1421143471615025},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133866020433,"lo":-3.18869185641077},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982822514,"lo":-3.235377023794821},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.0478082833847653,"lo":-3.282269208897335},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507688164,"lo":-3.329471920577543},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709600180837,"lo":-3.3770948916080052},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.1876378612613014,"lo":-3.4252565055381394},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594279514,"lo":-3.4740867281492394},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.2811266115142166,"lo":-3.5237307692320483},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940044617,"lo":-3.5743537743555964},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309653711,"lo":-3.6261470107321916},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5230278169307336,"lo":-3.530431887239297},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.4282006889839773,"lo":-3.676374614313713},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.4723794858049484,"lo":-3.734193381747124},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411668873,"lo":-3.7910531966753034},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.5719906460496835,"lo":-3.850338067105317},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.7061383735199107,"lo":-3.788290186427793},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.6725588354277177,"lo":-3.879735400020024},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.67573282235815,"lo":-3.9785627019205285},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.7295412378448076,"lo":-4.049265018471731},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.913080195418462,"lo":-3.9338184724247114},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.797259924398606,"lo":-4.117918017457621},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.8415692804699755,"lo":-4.211783029880073},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-4.049831003281376,"lo":-4.084497320368021},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.920242948712522,"lo":-4.296212560764625},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.034269820486347,"lo":-4.313157059129938},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.124185535787432,"lo":-4.317727105500106},{"hi":0.34406320690014836,"lo":0.3373338512355031}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.073493418822462,"lo":-4.490536065803898},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.257221237917959,"lo":-4.423465660651371},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.19067762344151,"lo":-4.60640329373275},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.249576016744152,"lo":-4.725918538924407},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.500316551889018,"lo":-4.5879789972972365},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.331246248949704,"lo":-4.885415674410317},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.4432428958451196,"lo":-4.9945054167975},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.552019717121139,"lo":-5.106971445359661},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.876179395421798,"lo":-4.898207792027933},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.671943483597459,"lo":-5.21557585806751},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.858748587486723,"lo":-5.207184389468639},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.973298989579164,"lo":-5.2095766873209355},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.976261856463766,"lo":-5.323271235864919},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.077335302088946,"lo":-5.345165757127726},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.156194235267202,"lo":-5.36079258487973},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874704702,"lo":-5.525334800529745},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.342579109390028,"lo":-5.388832411414277},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.240746910371988,"lo":-5.564707360953461},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632718289,"lo":-5.639961002724746},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.474932755859475,"lo":-5.546107003016195},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.4182174918579085,"lo":-5.666767022596906},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.4462152584225745,"lo":-5.749045138119405},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.51218183518692,"lo":-5.801510212821303},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.673365994585379,"lo":-5.704398162540806},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.593059193227021,"lo":-5.840374448556056},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764244321,"lo":-5.903033719694624},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579503226,"lo":-5.952398474531417},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.7454417179455834,"lo":-6.001019714381977},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.830639847208307,"lo":-6.001011518706089},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.900853953317225,"lo":-5.980876195291603},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186118443,"lo":-6.096531967076965},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191629496,"lo":-6.143651349289645},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232700744,"lo":-6.190487366512849},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.99952145552805,"lo":-6.237140099177942},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683068877289,"lo":-6.28370700097903},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040237849,"lo":-6.33028450998906},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.142508751906554,"lo":-6.376969677361608},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936997565,"lo":-6.423861862452618},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104370113,"lo":-6.471064574121323},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613380143,"lo":-6.518687545481884},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.32923051518123,"lo":-6.566849158831123},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247846324,"lo":-6.6156793816584285},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719265069527,"lo":-6.665323422729676},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.469838647282208,"lo":-6.71594642824073},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.58549441906757,"lo":-6.665516661041948},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.565359095653084,"lo":-6.735730767150866},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.5653508999771955,"lo":-6.820928896413589},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139827755,"lo":-6.875786034855946},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894664549,"lo":-6.932645850114851},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.725996165803116,"lo":-6.973311421132151},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.8619724518183665,"lo":-6.8930046197737935},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.764860401537869,"lo":-7.054188779172253},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325476239767,"lo":-7.120155355936598},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.899603591762267,"lo":-7.148153122501264},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.020263611342977,"lo":-7.091437858499697},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.926409611634426,"lo":-7.267805981640883},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.001663253405711,"lo":-7.325623703987184},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.177538202944896,"lo":-7.223791504969144},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035813829428,"lo":-7.45167173965447},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.205578029479442,"lo":-7.41017637909197},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.221204857231445,"lo":-7.48903531227023},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.243099378494256,"lo":-7.590108757895405},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.356793927038235,"lo":-7.593071624780011},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.359186224890534,"lo":-7.707622026872451},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.350794756291665,"lo":-7.894427130761712},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.668162822331239,"lo":-7.6901912189373745},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.459399168999512,"lo":-8.014350897238034},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.571865197561673,"lo":-8.123127718514052},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.6809549399488555,"lo":-8.235124365409469},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.978391617061936,"lo":-8.066054062470155},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.840452075434765,"lo":-8.31679459761502},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.959967320626424,"lo":-8.37569299091766},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.142904953707799,"lo":-8.309149376441216},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.075834548555274,"lo":-8.49287719553671},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.248643508859068,"lo":-8.442185078571738},{"hi":0.34406320690014836,"lo":0.3373338512355031}]]}],"pcurves":[{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[2.0901201280414963,-2.152068272698568]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.465765601187591,-1.1]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.598076211353316,-1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.244994432064365,1.5]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.7910571473905725,1.1]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[-1.0000000000000002,0.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.5]},{"direction":[1.0000000000000002,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.5]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3530817792889511,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.3530817792889511,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3252915462029815,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.32529154620298195,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-4.440892098500626e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"definition":0,"kind":"IntersectionSide","side":"A"},{"definition":0,"kind":"IntersectionSide","side":"B"},{"definition":1,"kind":"IntersectionSide","side":"A"},{"definition":1,"kind":"IntersectionSide","side":"B"}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,-1.9368614454287116],"x":[0.6967067093471659,0.0,-0.7173560908995223],"y":[0.0,1.0,0.0],"z":[0.7173560908995223,-0.0,0.6967067093471659]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.0901201280414963,0.0,2.1520682726985685],"x":[-0.6967067093471652,0.0,-0.717356090899523],"y":[0.0,1.0,0.0],"z":[0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[2.244994432064365,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.7910571473905725,1.0,1.1],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5}]},"id":"batch-staged.mixed-curved-openings.forward","quality":{"kind":"Analytic"},"revision":2,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":72},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":1,"id":1,"tolerance":6.3e-8,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":2,"id":2,"tolerance":6.3e-8,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":3,"id":3,"tolerance":6.3e-8,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":6.3e-8,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":5,"id":5,"tolerance":6.3e-8,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":6,"id":6,"tolerance":6.3e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":7,"id":7,"tolerance":6.3e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":8,"id":8,"tolerance":6.3e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":9,"id":9,"tolerance":6.3e-8,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":10,"id":10,"tolerance":6.3e-8,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":11,"id":11,"tolerance":6.3e-8,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":12,"id":12,"tolerance":6.3e-8,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":13,"id":13,"tolerance":6.3e-8,"twin_halfedge":92},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":14,"id":14,"tolerance":6.3e-8,"twin_halfedge":86},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":15,"id":15,"tolerance":6.3e-8,"twin_halfedge":88},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":16,"id":16,"tolerance":6.3e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":17,"id":17,"tolerance":6.3e-8,"twin_halfedge":90},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":18,"id":18,"tolerance":6.3e-8,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":19,"id":19,"tolerance":6.3e-8,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":20,"id":20,"tolerance":6.3e-8,"twin_halfedge":56},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":21,"id":21,"tolerance":6.3e-8,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":22,"id":22,"tolerance":6.3e-8,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":23,"id":23,"tolerance":6.3e-8,"twin_halfedge":76},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":25,"id":24,"tolerance":6.3e-8,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":26,"id":25,"tolerance":6.3e-8,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":27,"id":26,"tolerance":6.3e-8,"twin_halfedge":91},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":29,"id":27,"tolerance":6.3e-8,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":30,"id":28,"tolerance":6.3e-8,"twin_halfedge":74},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":31,"id":29,"tolerance":6.3e-8,"twin_halfedge":73},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":33,"id":30,"tolerance":6.3e-8,"twin_halfedge":43},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":37,"id":31,"tolerance":6.3e-8,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":32,"tolerance":6.3e-8,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":39,"id":33,"tolerance":6.3e-8,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":41,"id":34,"tolerance":6.3e-8,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":42,"id":35,"tolerance":6.3e-8,"twin_halfedge":85},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":45,"id":36,"tolerance":6.3e-8,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":46,"id":37,"tolerance":6.3e-8,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":47,"id":38,"tolerance":6.3e-8,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":53,"id":39,"tolerance":6.3e-8,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":54,"id":40,"tolerance":6.3e-8,"twin_halfedge":87},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":55,"id":41,"tolerance":6.3e-8,"twin_halfedge":95},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":61,"id":42,"tolerance":6.3e-8,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":65,"id":43,"tolerance":6.3e-8,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":66,"id":44,"tolerance":6.3e-8,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":67,"id":45,"tolerance":6.3e-8,"twin_halfedge":77},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":69,"id":46,"tolerance":6.3e-8,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":70,"id":47,"tolerance":6.3e-8,"twin_halfedge":81},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":3.147877503993888,"lo":0.0}},"halfedge":96,"id":48,"tolerance":6.3e-8,"twin_halfedge":97},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":3.146489221673897,"lo":0.0}},"halfedge":98,"id":49,"tolerance":6.3e-8,"twin_halfedge":99}],"faces":[{"id":0,"key":"batch-staged.mixed-curved-openings.forward:planar:lower-cap-0","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":1,"key":"batch-staged.mixed-curved-openings.forward:planar:upper-cap-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":-1.0999999369999995,"lo":-1.500000063}]}},{"id":2,"key":"batch-staged.mixed-curved-openings.forward:planar:lower-cap-2","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":1.500000063,"lo":1.0999999369999995}]}},{"id":3,"key":"batch-staged.mixed-curved-openings.forward:planar:upper-cap-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":4,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-4","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":5.694154360296646,"lo":5.483185283846253},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-5","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":6,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[16],"outer":6,"uv_bounds":[{"hi":7.0831853305129195,"lo":5.863571900276408},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":7,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-7","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.3000000629999996,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":8,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[18],"outer":8,"uv_bounds":[{"hi":7.083185328179586,"lo":5.907761678198547},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":9,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-9","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":10,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-10","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.759586552581287,"lo":5.4831852861795864},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":11,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-11","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":12,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-12","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.3530818422889511,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":13,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-13","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.32529160920298195,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":14,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-14","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":3.000000063,"lo":1.499999937}]}},{"id":15,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-15","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":3.000000063,"lo":1.499999937}]}},{"id":16,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[19],"outer":17,"uv_bounds":[{"hi":-2.081576844571777,"lo":-8.52028169592909},{"hi":0.3499989716450176,"lo":0.0033002839911298975}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":7,"to":1,"twin":72,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":64,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":60,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":4,"prev":2,"to":4,"twin":52,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":0,"next":5,"prev":3,"to":5,"twin":44,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":0,"next":6,"prev":4,"to":6,"twin":36,"wire_ref":null},{"edge":6,"face":0,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":0,"next":7,"prev":5,"to":7,"twin":32,"wire_ref":null},{"edge":7,"face":0,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":0,"next":0,"prev":6,"to":0,"twin":24,"wire_ref":null},{"edge":8,"face":1,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":1,"next":9,"prev":11,"to":9,"twin":34,"wire_ref":null},{"edge":9,"face":1,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":1,"next":10,"prev":8,"to":10,"twin":84,"wire_ref":null},{"edge":10,"face":1,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":1,"next":11,"prev":9,"to":11,"twin":62,"wire_ref":null},{"edge":11,"face":1,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":1,"next":8,"prev":10,"to":8,"twin":80,"wire_ref":null},{"edge":12,"face":2,"from":12,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":2,"next":13,"prev":15,"to":13,"twin":82,"wire_ref":null},{"edge":13,"face":2,"from":13,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":2,"next":14,"prev":12,"to":14,"twin":92,"wire_ref":null},{"edge":14,"face":2,"from":14,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":2,"next":15,"prev":13,"to":15,"twin":86,"wire_ref":null},{"edge":15,"face":2,"from":15,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":2,"next":12,"prev":14,"to":12,"twin":88,"wire_ref":null},{"edge":16,"face":3,"from":16,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":3,"next":17,"prev":23,"to":17,"twin":28,"wire_ref":null},{"edge":17,"face":3,"from":17,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":3,"next":18,"prev":16,"to":18,"twin":90,"wire_ref":null},{"edge":18,"face":3,"from":18,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":3,"next":19,"prev":17,"to":19,"twin":40,"wire_ref":null},{"edge":19,"face":3,"from":19,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":3,"next":20,"prev":18,"to":20,"twin":48,"wire_ref":null},{"edge":20,"face":3,"from":20,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":3,"next":21,"prev":19,"to":21,"twin":56,"wire_ref":null},{"edge":21,"face":3,"from":21,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":3,"next":22,"prev":20,"to":22,"twin":94,"wire_ref":null},{"edge":22,"face":3,"from":22,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":3,"next":23,"prev":21,"to":23,"twin":68,"wire_ref":null},{"edge":23,"face":3,"from":23,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":3,"next":16,"prev":22,"to":16,"twin":76,"wire_ref":null},{"edge":7,"face":4,"from":0,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":4,"next":25,"prev":31,"to":7,"twin":7,"wire_ref":null},{"edge":24,"face":4,"from":7,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":4,"next":26,"prev":24,"to":8,"twin":35,"wire_ref":null},{"edge":25,"face":4,"from":8,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":4,"next":27,"prev":25,"to":12,"twin":83,"wire_ref":null},{"edge":26,"face":4,"from":12,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":4,"next":28,"prev":26,"to":17,"twin":91,"wire_ref":null},{"edge":16,"face":4,"from":17,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":4,"next":29,"prev":27,"to":16,"twin":16,"wire_ref":null},{"edge":27,"face":4,"from":16,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":4,"next":30,"prev":28,"to":24,"twin":75,"wire_ref":null},{"edge":28,"face":4,"from":24,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":4,"next":31,"prev":29,"to":25,"twin":74,"wire_ref":null},{"edge":29,"face":4,"from":25,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":4,"next":24,"prev":30,"to":0,"twin":73,"wire_ref":null},{"edge":6,"face":5,"from":7,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":5,"next":33,"prev":35,"to":6,"twin":6,"wire_ref":null},{"edge":30,"face":5,"from":6,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":5,"next":34,"prev":32,"to":9,"twin":43,"wire_ref":null},{"edge":8,"face":5,"from":9,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":5,"next":35,"prev":33,"to":8,"twin":8,"wire_ref":null},{"edge":24,"face":5,"from":8,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":5,"next":32,"prev":34,"to":7,"twin":25,"wire_ref":null},{"edge":5,"face":6,"from":6,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Forward"},"id":36,"loop_ref":6,"next":37,"prev":43,"to":5,"twin":5,"wire_ref":null},{"edge":31,"face":6,"from":5,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Forward"},"id":37,"loop_ref":6,"next":38,"prev":36,"to":26,"twin":51,"wire_ref":null},{"edge":32,"face":6,"from":26,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Forward"},"id":38,"loop_ref":6,"next":39,"prev":37,"to":27,"twin":50,"wire_ref":null},{"edge":33,"face":6,"from":27,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Forward"},"id":39,"loop_ref":6,"next":40,"prev":38,"to":19,"twin":49,"wire_ref":null},{"edge":18,"face":6,"from":19,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Reverse"},"id":40,"loop_ref":6,"next":41,"prev":39,"to":18,"twin":18,"wire_ref":null},{"edge":34,"face":6,"from":18,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Forward"},"id":41,"loop_ref":6,"next":42,"prev":40,"to":15,"twin":89,"wire_ref":null},{"edge":35,"face":6,"from":15,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Forward"},"id":42,"loop_ref":6,"next":43,"prev":41,"to":9,"twin":85,"wire_ref":null},{"edge":30,"face":6,"from":9,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Reverse"},"id":43,"loop_ref":6,"next":36,"prev":42,"to":6,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":5,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Reverse"},"id":44,"loop_ref":7,"next":45,"prev":51,"to":4,"twin":4,"wire_ref":null},{"edge":36,"face":7,"from":4,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Forward"},"id":45,"loop_ref":7,"next":46,"prev":44,"to":28,"twin":59,"wire_ref":null},{"edge":37,"face":7,"from":28,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Forward"},"id":46,"loop_ref":7,"next":47,"prev":45,"to":29,"twin":58,"wire_ref":null},{"edge":38,"face":7,"from":29,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Forward"},"id":47,"loop_ref":7,"next":48,"prev":46,"to":20,"twin":57,"wire_ref":null},{"edge":19,"face":7,"from":20,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Reverse"},"id":48,"loop_ref":7,"next":49,"prev":47,"to":19,"twin":19,"wire_ref":null},{"edge":33,"face":7,"from":19,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Reverse"},"id":49,"loop_ref":7,"next":50,"prev":48,"to":27,"twin":39,"wire_ref":null},{"edge":32,"face":7,"from":27,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Reverse"},"id":50,"loop_ref":7,"next":51,"prev":49,"to":26,"twin":38,"wire_ref":null},{"edge":31,"face":7,"from":26,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Reverse"},"id":51,"loop_ref":7,"next":44,"prev":50,"to":5,"twin":37,"wire_ref":null},{"edge":3,"face":8,"from":4,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Reverse"},"id":52,"loop_ref":8,"next":53,"prev":59,"to":3,"twin":3,"wire_ref":null},{"edge":39,"face":8,"from":3,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Forward"},"id":53,"loop_ref":8,"next":54,"prev":52,"to":10,"twin":63,"wire_ref":null},{"edge":40,"face":8,"from":10,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Forward"},"id":54,"loop_ref":8,"next":55,"prev":53,"to":14,"twin":87,"wire_ref":null},{"edge":41,"face":8,"from":14,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Forward"},"id":55,"loop_ref":8,"next":56,"prev":54,"to":21,"twin":95,"wire_ref":null},{"edge":20,"face":8,"from":21,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Forward"},"id":56,"loop_ref":8,"next":57,"prev":55,"to":20,"twin":20,"wire_ref":null},{"edge":38,"face":8,"from":20,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Reverse"},"id":57,"loop_ref":8,"next":58,"prev":56,"to":29,"twin":47,"wire_ref":null},{"edge":37,"face":8,"from":29,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Reverse"},"id":58,"loop_ref":8,"next":59,"prev":57,"to":28,"twin":46,"wire_ref":null},{"edge":36,"face":8,"from":28,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Reverse"},"id":59,"loop_ref":8,"next":52,"prev":58,"to":4,"twin":45,"wire_ref":null},{"edge":2,"face":9,"from":3,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Reverse"},"id":60,"loop_ref":9,"next":61,"prev":63,"to":2,"twin":2,"wire_ref":null},{"edge":42,"face":9,"from":2,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Forward"},"id":61,"loop_ref":9,"next":62,"prev":60,"to":11,"twin":71,"wire_ref":null},{"edge":10,"face":9,"from":11,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Forward"},"id":62,"loop_ref":9,"next":63,"prev":61,"to":10,"twin":10,"wire_ref":null},{"edge":39,"face":9,"from":10,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Reverse"},"id":63,"loop_ref":9,"next":60,"prev":62,"to":3,"twin":53,"wire_ref":null},{"edge":1,"face":10,"from":2,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Reverse"},"id":64,"loop_ref":10,"next":65,"prev":71,"to":1,"twin":1,"wire_ref":null},{"edge":43,"face":10,"from":1,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Forward"},"id":65,"loop_ref":10,"next":66,"prev":64,"to":30,"twin":79,"wire_ref":null},{"edge":44,"face":10,"from":30,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Forward"},"id":66,"loop_ref":10,"next":67,"prev":65,"to":31,"twin":78,"wire_ref":null},{"edge":45,"face":10,"from":31,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Forward"},"id":67,"loop_ref":10,"next":68,"prev":66,"to":23,"twin":77,"wire_ref":null},{"edge":22,"face":10,"from":23,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Forward"},"id":68,"loop_ref":10,"next":69,"prev":67,"to":22,"twin":22,"wire_ref":null},{"edge":46,"face":10,"from":22,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Forward"},"id":69,"loop_ref":10,"next":70,"prev":68,"to":13,"twin":93,"wire_ref":null},{"edge":47,"face":10,"from":13,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Forward"},"id":70,"loop_ref":10,"next":71,"prev":69,"to":11,"twin":81,"wire_ref":null},{"edge":42,"face":10,"from":11,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Reverse"},"id":71,"loop_ref":10,"next":64,"prev":70,"to":2,"twin":61,"wire_ref":null},{"edge":0,"face":11,"from":1,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Reverse"},"id":72,"loop_ref":11,"next":73,"prev":79,"to":0,"twin":0,"wire_ref":null},{"edge":29,"face":11,"from":0,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Reverse"},"id":73,"loop_ref":11,"next":74,"prev":72,"to":25,"twin":31,"wire_ref":null},{"edge":28,"face":11,"from":25,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Reverse"},"id":74,"loop_ref":11,"next":75,"prev":73,"to":24,"twin":30,"wire_ref":null},{"edge":27,"face":11,"from":24,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Reverse"},"id":75,"loop_ref":11,"next":76,"prev":74,"to":16,"twin":29,"wire_ref":null},{"edge":23,"face":11,"from":16,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Reverse"},"id":76,"loop_ref":11,"next":77,"prev":75,"to":23,"twin":23,"wire_ref":null},{"edge":45,"face":11,"from":23,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Reverse"},"id":77,"loop_ref":11,"next":78,"prev":76,"to":31,"twin":67,"wire_ref":null},{"edge":44,"face":11,"from":31,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Reverse"},"id":78,"loop_ref":11,"next":79,"prev":77,"to":30,"twin":66,"wire_ref":null},{"edge":43,"face":11,"from":30,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Reverse"},"id":79,"loop_ref":11,"next":72,"prev":78,"to":1,"twin":65,"wire_ref":null},{"edge":11,"face":12,"from":8,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Reverse"},"id":80,"loop_ref":12,"next":81,"prev":83,"to":11,"twin":11,"wire_ref":null},{"edge":47,"face":12,"from":11,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Reverse"},"id":81,"loop_ref":12,"next":82,"prev":80,"to":13,"twin":70,"wire_ref":null},{"edge":12,"face":12,"from":13,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Reverse"},"id":82,"loop_ref":12,"next":83,"prev":81,"to":12,"twin":12,"wire_ref":null},{"edge":25,"face":12,"from":12,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Reverse"},"id":83,"loop_ref":12,"next":80,"prev":82,"to":8,"twin":26,"wire_ref":null},{"edge":9,"face":13,"from":10,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Reverse"},"id":84,"loop_ref":13,"next":85,"prev":87,"to":9,"twin":9,"wire_ref":null},{"edge":35,"face":13,"from":9,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Reverse"},"id":85,"loop_ref":13,"next":86,"prev":84,"to":15,"twin":42,"wire_ref":null},{"edge":14,"face":13,"from":15,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Reverse"},"id":86,"loop_ref":13,"next":87,"prev":85,"to":14,"twin":14,"wire_ref":null},{"edge":40,"face":13,"from":14,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Reverse"},"id":87,"loop_ref":13,"next":84,"prev":86,"to":10,"twin":54,"wire_ref":null},{"edge":15,"face":14,"from":12,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Forward"},"id":88,"loop_ref":14,"next":89,"prev":91,"to":15,"twin":15,"wire_ref":null},{"edge":34,"face":14,"from":15,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Reverse"},"id":89,"loop_ref":14,"next":90,"prev":88,"to":18,"twin":41,"wire_ref":null},{"edge":17,"face":14,"from":18,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Reverse"},"id":90,"loop_ref":14,"next":91,"prev":89,"to":17,"twin":17,"wire_ref":null},{"edge":26,"face":14,"from":17,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Reverse"},"id":91,"loop_ref":14,"next":88,"prev":90,"to":12,"twin":27,"wire_ref":null},{"edge":13,"face":15,"from":14,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Reverse"},"id":92,"loop_ref":15,"next":93,"prev":95,"to":13,"twin":13,"wire_ref":null},{"edge":46,"face":15,"from":13,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Reverse"},"id":93,"loop_ref":15,"next":94,"prev":92,"to":22,"twin":69,"wire_ref":null},{"edge":21,"face":15,"from":22,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Forward"},"id":94,"loop_ref":15,"next":95,"prev":93,"to":21,"twin":21,"wire_ref":null},{"edge":41,"face":15,"from":21,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Reverse"},"id":95,"loop_ref":15,"next":92,"prev":94,"to":14,"twin":55,"wire_ref":null},{"edge":48,"face":6,"from":32,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Forward"},"id":96,"loop_ref":16,"next":96,"prev":96,"to":32,"twin":97,"wire_ref":null},{"edge":48,"face":16,"from":32,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Reverse"},"id":97,"loop_ref":17,"next":97,"prev":97,"to":32,"twin":96,"wire_ref":null},{"edge":49,"face":8,"from":33,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Forward"},"id":98,"loop_ref":18,"next":98,"prev":98,"to":33,"twin":99,"wire_ref":null},{"edge":49,"face":16,"from":33,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Reverse"},"id":99,"loop_ref":19,"next":99,"prev":99,"to":33,"twin":98,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":24},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":36},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":44},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":52},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":60},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":64},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":72},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":80},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":84},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":88},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":92},{"face_ref":6,"id":16,"is_hole":true,"start_halfedge":96},{"face_ref":16,"id":17,"is_hole":false,"start_halfedge":97},{"face_ref":8,"id":18,"is_hole":true,"start_halfedge":98},{"face_ref":16,"id":19,"is_hole":true,"start_halfedge":99}],"shells":[{"faces":[0,11,10,9,8,7,6,5,4,3,15,12,1,13,14,2,16],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":1,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":2,"position":[2.598076211353316,0.0,1.5],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":3,"position":[2.791057147390573,0.0,1.0999999999999992],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":6,"position":[2.4657656011875906,0.0,1.1000000000000003],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":7,"position":[2.244994432064365,0.0,1.4999999999999998],"tolerance":6.3e-8},{"id":8,"outgoing_halfedge":8,"position":[2.244994432064365,1.0,1.4999999999999998],"tolerance":6.3e-8},{"id":9,"outgoing_halfedge":9,"position":[2.4657656011875906,1.0,1.1000000000000005],"tolerance":6.3e-8},{"id":10,"outgoing_halfedge":10,"position":[2.7910571473905725,1.0,1.1],"tolerance":6.3e-8},{"id":11,"outgoing_halfedge":11,"position":[2.598076211353316,1.0,1.5],"tolerance":6.3e-8},{"id":12,"outgoing_halfedge":12,"position":[2.244994432064365,1.5,1.5],"tolerance":6.3e-8},{"id":13,"outgoing_halfedge":13,"position":[2.598076211353316,1.5,1.5],"tolerance":6.3e-8},{"id":14,"outgoing_halfedge":14,"position":[2.791057147390573,1.5,1.0999999999999996],"tolerance":6.3e-8},{"id":15,"outgoing_halfedge":15,"position":[2.465765601187591,1.5,1.1],"tolerance":6.3e-8},{"id":16,"outgoing_halfedge":16,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":17,"outgoing_halfedge":17,"position":[2.244994432064365,3.0,1.4999999999999998],"tolerance":6.3e-8},{"id":18,"outgoing_halfedge":18,"position":[2.4657656011875906,3.0,1.1000000000000005],"tolerance":6.3e-8},{"id":19,"outgoing_halfedge":19,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":20,"outgoing_halfedge":20,"position":[2.0901201280414963,3.0,-2.152068272698568],"tolerance":6.3e-8},{"id":21,"outgoing_halfedge":21,"position":[2.791057147390573,3.0,1.0999999999999992],"tolerance":6.3e-8},{"id":22,"outgoing_halfedge":22,"position":[2.598076211353316,3.0,1.5],"tolerance":6.3e-8},{"id":23,"outgoing_halfedge":23,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8},{"id":24,"outgoing_halfedge":30,"position":[1.8811081152373468,1.5,1.9368614454287116],"tolerance":6.3e-8},{"id":25,"outgoing_halfedge":31,"position":[1.8811081152373468,1.0,1.9368614454287116],"tolerance":6.3e-8},{"id":26,"outgoing_halfedge":38,"position":[1.8811081152373468,1.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":27,"outgoing_halfedge":39,"position":[1.8811081152373468,1.5,-1.9368614454287116],"tolerance":6.3e-8},{"id":28,"outgoing_halfedge":46,"position":[2.0901201280414963,1.0,-2.152068272698568],"tolerance":6.3e-8},{"id":29,"outgoing_halfedge":47,"position":[2.0901201280414963,1.5,-2.152068272698568],"tolerance":6.3e-8},{"id":30,"outgoing_halfedge":66,"position":[2.0901201280414963,1.0,2.1520682726985685],"tolerance":6.3e-8},{"id":31,"outgoing_halfedge":67,"position":[2.0901201280414963,1.5,2.1520682726985685],"tolerance":6.3e-8},{"id":32,"outgoing_halfedge":96,"position":[2.682255636269859,1.1069411008145305,0.30903834988326967],"tolerance":6.3e-8},{"id":33,"outgoing_halfedge":98,"position":[2.990025593501361,1.0638199343388153,0.244431892777589],"tolerance":6.3e-8}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.5,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.5,1.1],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"rectangular-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":8,"id":2,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":2,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":15,"id":4,"tolerance":6.3e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":6.3e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":10,"id":6,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":13,"id":7,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":7,"id":9,"tolerance":6.3e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":10,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":6.3e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.2,1.0,1.1],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":3,"position":[3.2,1.0,1.1],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.2,1.5,1.1],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[3.2,1.5,1.1],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.2,1.0,1.5],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[3.2,1.0,1.5],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":7,"position":[2.2,1.5,1.5],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[3.2,1.5,1.5],"tolerance":6.3e-8}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.65,1.5,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.4]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[-0.0,-1.0,-0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"}]},"id":"round-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":6.3e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3999999999999999,"lo":0.0}},"halfedge":1,"id":2,"tolerance":6.3e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.4,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.65,1.5,-0.5],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":2,"position":[3.05,1.5,-0.5],"tolerance":6.3e-8}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_planar_cutters","subtract_vertical_arc_extrusion","generic_two_sided_cutter_band_subtraction"],"host":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,-2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]}],"intersections":[],"pcurves":[{"direction":[-0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,2.1520682726985685]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,-1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.0901201280414963,0.0,-2.1520682726985685],"x":[-0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,0.0],"z":[-0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,1.9368614454287116],"x":[0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,-0.0],"z":[-0.717356090899523,0.0,0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0}]},"id":"mixed-curved-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":7,"id":0,"tolerance":6.3e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":6.3e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":6,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":1,"id":4,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":6.3e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":5,"id":6,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":2,"id":7,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":4,"id":9,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":3,"id":10,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":6.3e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.8000000233333334,"lo":-0.8000000233333334},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.800000021,"lo":-0.800000021},{"hi":3.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":6,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":5,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":0,"position":[2.0901201280414963,3.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":1,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":2,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":3,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471659,0.0,0.7173560908995223],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.465765601187591,1.0,1.1]},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.598076211353316,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.5]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.7910571473905725,1.5,1.1]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.6967067093471659,0.0,-0.7173560908995223],"kind":"Line","origin":[1.8811081152373468,3.0,-1.9368614454287116]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471652,0.0,-0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,0.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.4999999999999998]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.4657656011875906,0.0,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,-1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,3.0,1.1000000000000005]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,1.5,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,0.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.5,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.598076211353316,0.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,2.1520682726985685]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,3.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,1.5,1.5]},{"definition":0,"kind":"Intersection"},{"definition":1,"kind":"Intersection"}],"intersections":[{"anchors":[{"parameter":0.0,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-2.2370900898141954,0.03225563626985917]},{"parameter":0.028334801114291642,"point":[2.679668824997465,1.1249999843059526,0.3307188962004861],"uv_a":[6.160388449313543,1.12499998425],"uv_b":[-2.2935305273231577,0.029668824997465038]},{"parameter":0.06261555364766803,"point":[2.676489529532718,1.148437485266038,0.35553311839962887],"uv_a":[6.151122836532611,1.148437485234375],"uv_b":[-2.361809801256655,0.02648952953271788]},{"parameter":0.06917300359337525,"point":[2.6758798017644945,1.1531099403349856,0.3600934413561505],"uv_a":[6.1494187979880905,1.15310994033352],"uv_b":[-2.3748679768681527,0.02587980176449456]},{"parameter":0.09472350578879225,"point":[2.673511927131303,1.1718749862698106,0.37727175277559466],"uv_a":[6.142996291169094,1.17187498621875],"uv_b":[-2.4257545571066568,0.0235119271313029]},{"parameter":0.12512878456108087,"point":[2.670736692480739,1.1953124871700322,0.3964410668323627],"uv_a":[6.135822511238574,1.195312487203125],"uv_b":[-2.4863205326425137,0.020736692480739283]},{"parameter":0.14995049847172123,"point":[2.66853225449655,1.2152819057274709,0.4110177693783217],"uv_a":[6.130362338140644,1.2152819057554232],"uv_b":[-2.5357728337336125,0.01853225449655005]},{"parameter":0.15417322142588208,"point":[2.668164456906109,1.2187499882008486,0.41339863435515534],"uv_a":[6.129470076501057,1.2187499881875001],"uv_b":[-2.5441862084349074,0.018164456906109017]},{"parameter":0.18210498285059248,"point":[2.6657958081649715,1.242187489148561,0.4284071768811314],"uv_a":[6.123842549443157,1.2421874891718752],"uv_b":[-2.5998556927074383,0.015795808164971614]},{"parameter":0.2091194781015368,"point":[2.6636312892736353,1.2656249901660308,0.4416654330895639],"uv_a":[6.118867069463013,1.2656249901562502],"uv_b":[-2.6537174838059925,0.013631289273635439]},{"parameter":0.23537113950850322,"point":[2.66167139832315,1.2890624911389978,0.4533269982602597],"uv_a":[6.1144873948445735,1.289062491140625],"uv_b":[-2.7060802629751683,0.011671398323150228]},{"parameter":0.256443011692048,"point":[2.660215662637239,1.3083039602163389,0.46179284131799114],"uv_a":[6.111305878293199,1.308303960231183],"uv_b":[-2.7481264156909653,0.010215662637238943]},{"parameter":0.2609875710109817,"point":[2.6599165875972526,1.3124999921208964,0.4635124022444197],"uv_a":[6.1106594428997605,1.312499992125],"uv_b":[-2.7571958620866104,0.009916587597252668]},{"parameter":0.28607223779480606,"point":[2.6583672632416975,1.33593749309167,0.47231715379922057],"uv_a":[6.107348320847363,1.335937493109375],"uv_b":[-2.8072746448894756,0.008367263241697565]},{"parameter":0.3107171775011209,"point":[2.657023784686102,1.3593749940794733,0.4798172648614164],"uv_a":[6.104526287239927,1.3593749940937498],"uv_b":[-2.8564962009681647,0.007023784686102097]},{"parameter":0.33500186015188027,"point":[2.6558864643186353,1.3828124950733056,0.4860731309880169],"uv_a":[6.102171320575353,1.3828124950781249],"uv_b":[-2.9050170325986295,0.005886464318635376]},{"parameter":0.3589972392979255,"point":[2.654955567088826,1.4062499960645936,0.4911323006820845],"uv_a":[6.100266097951611,1.4062499960625],"uv_b":[-2.9529762594057267,0.004955567088825941]},{"parameter":0.38276790371366365,"point":[2.654231310219106,1.429687497041538,0.4950314655552374],"uv_a":[6.098797261305364,1.429687497046875],"uv_b":[-3.000499988146808,0.004231310219106277]},{"parameter":0.40637377755047316,"point":[2.6537138628622183,1.4531249980248027,0.49779788480974135],"uv_a":[6.097754892221692,1.45312499803125],"uv_b":[-3.0477047745014545,0.00371386286221842]},{"parameter":0.4298715140080698,"point":[2.6534033459790627,1.4765624990156134,0.4994503814668287],"uv_a":[6.0971321448404385,1.476562499015625],"uv_b":[-3.0947004684855486,0.0034033459790627774]},{"parameter":0.45331568701695135,"point":[2.653299832265033,1.5,0.5000000000511745],"uv_a":[6.096925003564456,1.5],"uv_b":[-3.141592653589793,0.0032998322650330536]},{"parameter":0.4767598600258329,"point":[2.6534033459790627,1.5234375009843866,0.4994503814668287],"uv_a":[6.0971321448404385,1.523437500984375],"uv_b":[-3.1884848386940376,0.0034033459790627774]},{"parameter":0.5002575964834295,"point":[2.6537138628622183,1.5468750019751973,0.49779788480974135],"uv_a":[6.097754892221692,1.54687500196875],"uv_b":[-3.2354805326781317,0.00371386286221842]},{"parameter":0.523863470320239,"point":[2.654231310219106,1.570312502958462,0.4950314655552374],"uv_a":[6.098797261305364,1.570312502953125],"uv_b":[-3.2826853190327783,0.004231310219106277]},{"parameter":0.5476341347359772,"point":[2.654955567088826,1.5937500039354064,0.4911323006820845],"uv_a":[6.100266097951611,1.5937500039375],"uv_b":[-3.3302090477738595,0.004955567088825941]},{"parameter":0.5716295138820224,"point":[2.6558864643186353,1.6171875049266944,0.4860731309880169],"uv_a":[6.102171320575353,1.6171875049218751],"uv_b":[-3.3781682745809567,0.005886464318635376]},{"parameter":0.5959141965327819,"point":[2.657023784686102,1.6406250059205267,0.4798172648614164],"uv_a":[6.104526287239927,1.6406250059062502],"uv_b":[-3.4266891062114215,0.007023784686102097]},{"parameter":0.6205591362390966,"point":[2.6583672632416975,1.66406250690833,0.47231715379922057],"uv_a":[6.107348320847363,1.664062506890625],"uv_b":[-3.4759106622901106,0.008367263241697565]},{"parameter":0.645643803022921,"point":[2.6599165875972526,1.6875000078791036,0.4635124022444197],"uv_a":[6.1106594428997605,1.687500007875],"uv_b":[-3.525989445092976,0.009916587597252668]},{"parameter":0.6501883623418547,"point":[2.660215662637239,1.6916960397836611,0.46179284131799114],"uv_a":[6.111305878293199,1.691696039768817],"uv_b":[-3.535058891488621,0.010215662637238943]},{"parameter":0.6712602345253995,"point":[2.66167139832315,1.7109375088610022,0.4533269982602597],"uv_a":[6.1144873948445735,1.710937508859375],"uv_b":[-3.577105044204418,0.011671398323150228]},{"parameter":0.697511895932366,"point":[2.6636312892736353,1.7343750098339692,0.4416654330895639],"uv_a":[6.118867069463013,1.7343750098437498],"uv_b":[-3.6294678233735937,0.013631289273635439]},{"parameter":0.7245263911833103,"point":[2.6657958081649715,1.757812510851439,0.4284071768811314],"uv_a":[6.123842549443157,1.7578125108281248],"uv_b":[-3.683329614472148,0.015795808164971614]},{"parameter":0.7524581526080207,"point":[2.668164456906109,1.7812500117991514,0.41339863435515534],"uv_a":[6.129470076501057,1.7812500118124999],"uv_b":[-3.738999098744679,0.018164456906109017]},{"parameter":0.7566808755621816,"point":[2.66853225449655,1.7847180942725291,0.4110177693783217],"uv_a":[6.130362338140644,1.7847180942445768],"uv_b":[-3.7474124734459737,0.01853225449655005]},{"parameter":0.7815025894728219,"point":[2.670736692480739,1.8046875128299678,0.3964410668323627],"uv_a":[6.135822511238574,1.804687512796875],"uv_b":[-3.7968647745370725,0.020736692480739283]},{"parameter":0.8119078682451105,"point":[2.673511927131303,1.8281250137301894,0.37727175277559466],"uv_a":[6.142996291169094,1.82812501378125],"uv_b":[-3.8574307500729295,0.0235119271313029]},{"parameter":0.8374583704405275,"point":[2.6758798017644945,1.8468900596650144,0.3600934413561505],"uv_a":[6.1494187979880905,1.84689005966648],"uv_b":[-3.9083173303114336,0.02587980176449456]},{"parameter":0.8440158203862347,"point":[2.676489529532718,1.851562514733962,0.35553311839962887],"uv_a":[6.151122836532611,1.851562514765625],"uv_b":[-3.9213755059229314,0.02648952953271788]},{"parameter":0.878296572919611,"point":[2.679668824997465,1.8750000156940474,0.3307188962004861],"uv_a":[6.160388449313543,1.87500001575],"uv_b":[-3.9896547798564286,0.029668824997465038]},{"parameter":0.9066313740339027,"point":[2.682255636269859,1.8930588992139792,0.309038349905685],"uv_a":[6.168475257835536,1.8930588991854695],"uv_b":[-4.046095217365391,0.03225563626985917]},{"parameter":0.9154681118685938,"point":[2.6830490965935136,1.8984375167303162,0.3020720862093555],"uv_a":[6.171072038485683,1.898437516734375],"uv_b":[-4.063697530428579,0.03304909659351374]},{"parameter":0.9566760112783708,"point":[2.686629585655327,1.921875017694837,0.2683681603195926],"uv_a":[6.183625297356484,1.92187501771875],"uv_b":[-4.145824715609436,0.036629585655326924]},{"parameter":0.9690637587096833,"point":[2.6876574427069433,1.9283719520199973,0.2578710349665264],"uv_a":[6.187531717682981,1.9283719519789853],"uv_b":[-4.170515405258614,0.03765744270694338]},{"parameter":1.004062580127355,"point":[2.6904094928695583,1.9453125187070932,0.22736921664616086],"uv_a":[6.198874637593571,1.9453125187031248],"uv_b":[-4.240310477201132,0.04040949286955842]},{"parameter":1.0271667910844,"point":[2.6920832594763313,1.9553155784149696,0.20661007731490855],"uv_a":[6.206588177530428,1.9553155784108087],"uv_b":[-4.286401564583248,0.0420832594763314]},{"parameter":1.0625178429302367,"point":[2.6943879789281096,1.9687500197040324,0.1739925832035218],"uv_a":[6.218698924623721,1.9687500196874999],"uv_b":[-4.35696789203586,0.04438797892810964]},{"parameter":1.0823752028069469,"point":[2.6955314793972236,1.975278819574291,0.15527409180585766],"uv_a":[6.225644637377873,1.9752788195002098],"uv_b":[-4.396619305311677,0.045531479397223684]},{"parameter":1.1356481782814714,"point":[2.6980008502910633,1.9890895502642703,0.10388172037675547],"uv_a":[6.2447010972253185,1.9890895502702768],"uv_b":[-4.503101029766185,0.04800085029106338]},{"parameter":1.1517975554941897,"point":[2.698564165559826,1.9921875207400295,0.08804228733141027],"uv_a":[6.250571271133383,1.9921875206718749],"uv_b":[-4.535381530439569,0.04856416555982612]},{"parameter":1.1877571590697558,"point":[2.6994904754362534,1.99724121612939,0.05245162560341963],"uv_a":[6.263757557072764,1.9972412161754107],"uv_b":[-4.6072923654263125,0.04949047543625351]},{"parameter":1.2392826767807936,"point":[2.6999998138937857,1.9999989950868042,0.0010024836771621234],"uv_a":[6.282814016920209,1.999998995148141],"uv_b":[-4.710384011687316,0.04999981389378583]},{"parameter":1.2907975115920034,"point":[2.6995286807036782,1.9974485882753887,-0.05044702228975368],"uv_a":[6.301870476767655,1.9974485883102902],"uv_b":[-4.813454990847523,0.04952868070367833]},{"parameter":1.3287713593431787,"point":[2.6985641655431207,1.9921875206956527,-0.08804228783551027],"uv_a":[6.315799343415534,1.9921875206718749],"uv_b":[-4.889396431337886,0.04856416554312082]},{"parameter":1.3428722316668074,"point":[2.698077246952141,1.9895108073171726,-0.10187820905755031],"uv_a":[6.3209269366151,1.989510807279073],"uv_b":[-4.917582290131343,0.048077246952141106]},{"parameter":1.3960865449589484,"point":[2.6956460397094473,1.9759281157955804,-0.153272399989274],"uv_a":[6.339983396462546,1.9759281157986295],"uv_b":[-5.023949920612639,0.04564603970944736]},{"parameter":1.4180509198041897,"point":[2.694387978944502,1.9687500197454413,-0.17399258296503345],"uv_a":[6.347671689641234,1.9687500196874999],"uv_b":[-5.0678100682575336,0.044387978944502304]},{"parameter":1.45120479941553,"point":[2.6922359418385375,1.956217455224096,-0.20461093197499977],"uv_a":[6.359039856309991,1.956217455164631],"uv_b":[-5.133990066703966,0.04223594183853763]},{"parameter":1.4765068365529088,"point":[2.690409492858698,1.945312518681071,-0.227369216761379],"uv_a":[6.367495976813366,1.9453125187031248],"uv_b":[-5.184467483797146,0.040409492858698215]},{"parameter":1.5091728293897624,"point":[2.687848191674414,1.929567109430189,-0.2558751619620383],"uv_a":[6.378096316157436,1.9295671094416216],"uv_b":[-5.24960984875082,0.037848191674414]},{"parameter":1.5238945235008194,"point":[2.6866295856806124,1.921875017752155,-0.2683681601029221],"uv_a":[6.38274531690847,1.92187501771875],"uv_b":[-5.278953244732782,0.036629585680612475]},{"parameter":1.5651024229164958,"point":[2.683049096621975,1.898437516791168,-0.3020720860026923],"uv_a":[6.39529857577927,1.898437516734375],"uv_b":[-5.361080429937905,0.03304909662197497]},{"parameter":1.5714001120926695,"point":[2.682484382574458,1.8946168557621426,-0.3070464740359601],"uv_a":[6.397152776004882,1.8946168558170062],"uv_b":[-5.373625150412406,0.03248438257445807]},{"parameter":1.6022729373260531,"point":[2.679668825028625,1.8750000157566713,-0.3307188960032387],"uv_a":[6.405982164951411,1.87500001575],"uv_b":[-5.4351231805342355,0.029668825028625]},{"parameter":1.636553689865318,"point":[2.676489529566215,1.851562514797001,-0.3555331182112076],"uv_a":[6.415247777732344,1.851562514765625],"uv_b":[-5.50340245449183,0.026489529566215086]},{"parameter":1.6402429620635373,"point":[2.676146462339821,1.8489410950732177,-0.3581062860764056],"uv_a":[6.416209235852327,1.8489410950441387],"uv_b":[-5.5107490441552915,0.026146462339820875]},{"parameter":1.6686606523699568,"point":[2.6735119271668495,1.8281250137925558,-0.37727175259540324],"uv_a":[6.423374323095858,1.82812501378125],"uv_b":[-5.567347210365832,0.023511927166849578]},{"parameter":1.6990659313877927,"point":[2.6707366924618046,1.8046875127991515,-0.39644106691982683],"uv_a":[6.430548103168361,1.804687512796875],"uv_b":[-5.6279131863877705,0.02073669246180465]},{"parameter":1.720412352146336,"point":[2.6688367325081037,1.7875578286620981,-0.40903605611156013],"uv_a":[6.435265695699773,1.7875578286759928],"uv_b":[-5.670439788281108,0.018836732508103804]},{"parameter":1.7281112220715473,"point":[2.668164456886363,1.781250011769516,-0.41339863443903974],"uv_a":[6.436900537905881,1.7812500118124999],"uv_b":[-5.685778862168076,0.018164456886363034]},{"parameter":1.7560429834932776,"point":[2.665795808144511,1.7578125108233147,-0.42840717696171626],"uv_a":[6.442528064963776,1.7578125108281248],"uv_b":[-5.7414483464285295,0.015795808144511092]},{"parameter":1.7830574787412532,"point":[2.6636312892525402,1.7343750098076303,-0.4416654331671527],"uv_a":[6.447503544943923,1.7343750098437498],"uv_b":[-5.795310137515057,0.013631289252540313]},{"parameter":1.8093091400611427,"point":[2.661671398333681,1.7109375088728267,-0.4533269982238437],"uv_a":[6.4518832194913704,1.710937508859375],"uv_b":[-5.847672916512794,0.011671398333680916]},{"parameter":1.8252799228484844,"point":[2.6605578475175835,1.6963875252620246,-0.45981728976936054],"uv_a":[6.454322155547218,1.6963875252814207],"uv_b":[-5.879538094132449,0.010557847517583596]},{"parameter":1.834926323041138,"point":[2.6599165875751147,1.6875000078570217,-0.46351240231687274],"uv_a":[6.455711171507174,1.687500007875],"uv_b":[-5.898788515771685,0.009916587575114821]},{"parameter":1.8600109898219923,"point":[2.658367263219139,1.6640625068886525,-0.4723171538695391],"uv_a":[6.459022293559571,1.664062506890625],"uv_b":[-5.948867298562591,0.008367263219139165]},{"parameter":1.884655929525338,"point":[2.657023784663185,1.640625005903401,-0.4798172649298883],"uv_a":[6.461844327167008,1.6406250059062502],"uv_b":[-5.998088854629342,0.007023784663184873]},{"parameter":1.908940612173128,"point":[2.6558864642954187,1.617187504912243,-0.48607313105492644],"uv_a":[6.464199293831582,1.6171875049218751],"uv_b":[-6.046609686247884,0.005886464295418836]},{"parameter":1.9329359913162028,"point":[2.654955567065369,1.5937500039237296,-0.49113230074771436],"uv_a":[6.466104516455323,1.5937500039375],"uv_b":[-6.09456891304307,0.004955567065369149]},{"parameter":1.956706655728973,"point":[2.654231310195462,1.5703125029496365,-0.4950314656198781],"uv_a":[6.467573353101572,1.570312502953125],"uv_b":[-6.142092641772257,0.004231310195462079]},{"parameter":1.980312529562813,"point":[2.653713862838442,1.546875001969282,-0.49779788487367427],"uv_a":[6.468615722185245,1.54687500196875],"uv_b":[-6.1892974281150135,0.0037138628384418837]},{"parameter":2.0038102660059347,"point":[2.6534033459906636,1.5234375009858294,-0.49945038143594533],"uv_a":[6.469238469495507,1.523437500984375],"uv_b":[-6.236293122069564,0.00340334599066372]},{"parameter":2.0272544390138956,"point":[2.6532998323121433,1.5,-0.49999999992617605],"uv_a":[6.469445610700496,1.5],"uv_b":[-6.283185307179586,0.0032998323121433693]},{"parameter":2.0506986120218564,"point":[2.6534033459906636,1.4765624990141706,-0.49945038143594533],"uv_a":[6.469238469495507,1.476562499015625],"uv_b":[-6.330077492289608,0.00340334599066372]},{"parameter":2.0741963484649784,"point":[2.653713862838442,1.453124998030718,-0.49779788487367427],"uv_a":[6.468615722185245,1.45312499803125],"uv_b":[-6.377073186244159,0.0037138628384418837]},{"parameter":2.0978022222988186,"point":[2.654231310195462,1.4296874970503635,-0.4950314656198781],"uv_a":[6.467573353101572,1.429687497046875],"uv_b":[-6.424277972586916,0.004231310195462079]},{"parameter":2.1215728867115886,"point":[2.654955567065369,1.4062499960762704,-0.49113230074771436],"uv_a":[6.466104516455323,1.4062499960625],"uv_b":[-6.471801701316102,0.004955567065369149]},{"parameter":2.1455682658546635,"point":[2.6558864642954187,1.382812495087757,-0.48607313105492644],"uv_a":[6.464199293831582,1.3828124950781249],"uv_b":[-6.519760928111288,0.005886464295418836]},{"parameter":2.1698529485024536,"point":[2.657023784663185,1.359374994096599,-0.4798172649298883],"uv_a":[6.461844327167008,1.3593749940937498],"uv_b":[-6.568281759729831,0.007023784663184873]},{"parameter":2.1944978882057993,"point":[2.658367263219139,1.3359374931113475,-0.4723171538695391],"uv_a":[6.459022293559571,1.335937493109375],"uv_b":[-6.617503315796581,0.008367263219139165]},{"parameter":2.219582554986654,"point":[2.6599165875751147,1.3124999921429783,-0.46351240231687274],"uv_a":[6.455711171507174,1.312499992125],"uv_b":[-6.667582098587488,0.009916587575114821]},{"parameter":2.2292289551793076,"point":[2.6605578475175835,1.3036124747379754,-0.45981728976936054],"uv_a":[6.454322155547218,1.3036124747185793],"uv_b":[-6.686832520226724,0.010557847517583596]},{"parameter":2.245199737966649,"point":[2.661671398333681,1.2890624911271733,-0.4533269982238437],"uv_a":[6.4518832194913704,1.289062491140625],"uv_b":[-6.718697697846379,0.011671398333680916]},{"parameter":2.2714513992865384,"point":[2.6636312892525402,1.2656249901923697,-0.4416654331671527],"uv_a":[6.447503544943923,1.2656249901562502],"uv_b":[-6.771060476844116,0.013631289252540313]},{"parameter":2.298465894534514,"point":[2.665795808144511,1.2421874891766853,-0.42840717696171626],"uv_a":[6.442528064963776,1.2421874891718752],"uv_b":[-6.824922267930643,0.015795808144511092]},{"parameter":2.3263976559562445,"point":[2.668164456886363,1.218749988230484,-0.41339863443903974],"uv_a":[6.436900537905881,1.2187499881875001],"uv_b":[-6.880591752191097,0.018164456886363034]},{"parameter":2.334096525881456,"point":[2.6688367325081037,1.2124421713379019,-0.40903605611156013],"uv_a":[6.435265695699773,1.2124421713240072],"uv_b":[-6.8959308260780645,0.018836732508103804]},{"parameter":2.3554429466399993,"point":[2.6707366924618046,1.1953124872008485,-0.39644106691982683],"uv_a":[6.430548103168361,1.195312487203125],"uv_b":[-6.938457427971402,0.02073669246180465]},{"parameter":2.3858482256578353,"point":[2.6735119271668495,1.1718749862074442,-0.37727175259540324],"uv_a":[6.423374323095858,1.17187498621875],"uv_b":[-6.99902340399334,0.023511927166849578]},{"parameter":2.4142659159642545,"point":[2.676146462339821,1.1510589049267823,-0.3581062860764056],"uv_a":[6.416209235852327,1.1510589049558613],"uv_b":[-7.055621570203881,0.026146462339820875]},{"parameter":2.4179551881624737,"point":[2.676489529566215,1.148437485202999,-0.3555331182112076],"uv_a":[6.415247777732344,1.148437485234375],"uv_b":[-7.062968159867342,0.026489529566215086]},{"parameter":2.4522359407017382,"point":[2.679668825028625,1.1249999842433287,-0.3307188960032387],"uv_a":[6.405982164951411,1.12499998425],"uv_b":[-7.131247433824937,0.029668825028625]},{"parameter":2.483108765935122,"point":[2.682484382574458,1.1053831442378574,-0.3070464740359601],"uv_a":[6.397152776004882,1.1053831441829938],"uv_b":[-7.192745463946767,0.03248438257445807]},{"parameter":2.4894064551112955,"point":[2.683049096621975,1.101562483208832,-0.3020720860026923],"uv_a":[6.39529857577927,1.101562483265625],"uv_b":[-7.205290184421267,0.03304909662197497]},{"parameter":2.5306143545269717,"point":[2.6866295856806124,1.078124982247845,-0.2683681601029221],"uv_a":[6.38274531690847,1.07812498228125],"uv_b":[-7.28741736962639,0.036629585680612475]},{"parameter":2.545336048638029,"point":[2.687848191674414,1.070432890569811,-0.2558751619620383],"uv_a":[6.378096316157436,1.0704328905583784],"uv_b":[-7.316760765608352,0.037848191674414]},{"parameter":2.5780020414748828,"point":[2.690409492858698,1.0546874813189289,-0.22736921676137894],"uv_a":[6.367495976813366,1.054687481296875],"uv_b":[-7.381903130562026,0.040409492858698215]},{"parameter":2.6033040786122617,"point":[2.6922359418385375,1.043782544775904,-0.20461093197499977],"uv_a":[6.359039856309991,1.043782544835369],"uv_b":[-7.432380547655207,0.04223594183853763]},{"parameter":2.636457958223602,"point":[2.694387978944502,1.0312499802545585,-0.17399258296503345],"uv_a":[6.347671689641234,1.0312499803125],"uv_b":[-7.498560546101639,0.044387978944502304]},{"parameter":2.658422333068843,"point":[2.6956460397094473,1.0240718842044194,-0.15327239998927394],"uv_a":[6.339983396462546,1.02407188420137],"uv_b":[-7.542420693746534,0.04564603970944736]},{"parameter":2.711636646360984,"point":[2.698077246952141,1.0104891926828272,-0.10187820905755025],"uv_a":[6.3209269366151,1.0104891927209265],"uv_b":[-7.648788324227829,0.048077246952141106]},{"parameter":2.7257375186846122,"point":[2.6985641655431207,1.007812479304347,-0.08804228783551021],"uv_a":[6.315799343415534,1.007812479328125],"uv_b":[-7.6769741830212865,0.04856416554312082]},{"parameter":2.7637113664357873,"point":[2.6995286807036782,1.0025514117246113,-0.05044702228975368],"uv_a":[6.301870476767655,1.0025514116897098],"uv_b":[-7.752915623511649,0.04952868070367833]},{"parameter":2.8152262012469973,"point":[2.6999998138937857,1.0000010049131958,0.0010024836771621234],"uv_a":[6.282814016920209,1.000001004851859],"uv_b":[-7.855986602671856,0.04999981389378583]},{"parameter":2.866751718958035,"point":[2.6994904754362534,1.00275878387061,0.05245162560341963],"uv_a":[6.263757557072764,1.0027587838245893],"uv_b":[-7.95907824893286,0.04949047543625351]},{"parameter":2.902711322533601,"point":[2.698564165559826,1.0078124792599703,0.08804228733141027],"uv_a":[6.250571271133383,1.007812479328125],"uv_b":[-8.030989083919604,0.04856416555982612]},{"parameter":2.9188606997463196,"point":[2.6980008502910633,1.0109104497357295,0.10388172037675542],"uv_a":[6.2447010972253185,1.0109104497297228],"uv_b":[-8.063269584592987,0.04800085029106338]},{"parameter":2.972133675220844,"point":[2.6955314793972236,1.0247211804257086,0.1552740918058576],"uv_a":[6.225644637377873,1.0247211804997898],"uv_b":[-8.169751309047495,0.045531479397223684]},{"parameter":2.9919910350975543,"point":[2.6943879789281096,1.0312499802959674,0.17399258320352173],"uv_a":[6.218698924623721,1.0312499803125],"uv_b":[-8.209402722323311,0.04438797892810964]},{"parameter":3.027342086943391,"point":[2.6920832594763313,1.0446844215850304,0.20661007731490855],"uv_a":[6.206588177530428,1.0446844215891913],"uv_b":[-8.279969049775923,0.0420832594763314]},{"parameter":3.050446297900436,"point":[2.6904094928695583,1.0546874812929066,0.22736921664616086],"uv_a":[6.198874637593571,1.054687481296875],"uv_b":[-8.326060137158041,0.04040949286955842]},{"parameter":3.085445119318108,"point":[2.6876574427069433,1.0716280479800027,0.2578710349665264],"uv_a":[6.187531717682981,1.0716280480210147],"uv_b":[-8.395855209100558,0.03765744270694338]},{"parameter":3.09783286674942,"point":[2.686629585655327,1.078124982305163,0.2683681603195926],"uv_a":[6.183625297356484,1.07812498228125],"uv_b":[-8.420545898749737,0.036629585655326924]},{"parameter":3.139040766159197,"point":[2.6830490965935136,1.1015624832696838,0.3020720862093555],"uv_a":[6.171072038485683,1.101562483265625],"uv_b":[-8.502673083930594,0.03304909659351374]},{"parameter":3.147877503993888,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-8.520275396993782,0.03225563626985917]}],"residual_tolerance":1.575e-8,"surfaces":[6,16],"uv_tubes":[[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.124209214796271,"lo":-2.406411402341082},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.1569719794561633,"lo":-2.4983683491236492},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.3356934500336592,"lo":-2.4009843280911483},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.2730948163911444,"lo":-2.527527717583665},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.304622606034943,"lo":-2.6074524837142277},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.387415930460316,"lo":-2.63467743591581},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.5189460843310227,"lo":-2.561012957837497},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.4328472398898455,"lo":-2.7111946612525},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.49213211051033,"lo":-2.761441066003101},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254676408,"lo":-2.81080582131352},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6219879575435745,"lo":-2.832218721122559},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.729987522899675,"lo":-2.7753347548779006},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.65703829648088,"lo":-2.907432210495206},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.7088315327320975,"lo":-2.954939313125543},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537707235,"lo":-3.002058695859559},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098578984435,"lo":-3.048894713019921},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.8579288019235642,"lo":-3.0955474456289704},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415437515,"lo":-3.1421143472107476},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133865332663,"lo":-3.1886918564537368},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982770595,"lo":-3.235377023798282},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.047808283381304,"lo":-3.2822692089025267},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507258495,"lo":-3.32947192064632},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709599688387,"lo":-3.3770948917420713},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.187637861550616,"lo":-3.425256505256022},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594159665,"lo":-3.474086728195151},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.281126611320027,"lo":-3.523730769472351},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940540434,"lo":-3.5743537744474887},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309668438,"lo":-3.6261470106987064},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5078505523016856,"lo":-3.553197784279911},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.450966586057027,"lo":-3.6611973496360117},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.472379485866066,"lo":-3.7341933817119455},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411764854,"lo":-3.791053196669256},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.571990645927086,"lo":-3.8503380672897407},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.722172349342089,"lo":-3.7642392228485635},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.648507871263776,"lo":-3.89576937671927},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.6757328234653586,"lo":-3.9785627011446434},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.755657589595921,"lo":-4.010090490788442},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.882200979088438,"lo":-3.947491857145927},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.784816958055937,"lo":-4.126213327723423},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.876773904838504,"lo":-4.158976092383315},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-4.010890591239015,"lo":-4.098902156554955},{"hi":0.03463601724082288,"lo":0.030668715622550025}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.8994431600668644,"lo":-4.31007908597115},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.096443336311079,"lo":-4.219896784556971},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.030925261373579,"lo":-4.3799006210861675},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.148128302436899,"lo":-4.378583739347481},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.145268909678024,"lo":-4.498100546941084},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.277665065484228,"lo":-4.475922131863309},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.18365585640266,"lo":-4.716064478675202},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.438540028419418,"lo":-4.599942531786336},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.3915598604660815,"lo":-4.7511140353998},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.401109072904305,"lo":-4.916567304209324},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.5042420533669025,"lo":-5.019596949167937},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.661572109866798,"lo":-5.041279312318611},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.833024713750971,"lo":-4.973954007718258},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.704847029168753,"lo":-5.236685181575229},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.936229625322849,"lo":-5.1555303635473235},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.935450071364669,"lo":-5.26635006359683},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-5.033035232517605,"lo":-5.285422317983507},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.054182753889798,"lo":-5.379894578658169},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.190923056786897,"lo":-5.337640036696706},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874322536,"lo":-5.525334800348151},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.335990988988904,"lo":-5.398714591361407},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.250629090168746,"lo":-5.558119240777895},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632619046,"lo":-5.63996100240702},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.488709275164908,"lo":-5.525442223482214},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.39755271173421,"lo":-5.680543542786913},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.446215258321955,"lo":-5.749045138431647},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.542859982601096,"lo":-5.755492992067783},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.639761640507173,"lo":-5.716457009942011},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.574439893647168,"lo":-5.852787314949437},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764255475,"lo":-5.9030337196881115},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579519583,"lo":-5.952398474508268},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.783942561273484,"lo":-5.943268449371758},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.841037250853977,"lo":-5.9372893590501565},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.798630950189871,"lo":-6.049024864144405},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186429091,"lo":-6.096531966762842},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191392256,"lo":-6.14365134948497},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232657513,"lo":-6.190487366633442},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.999521455584698,"lo":-6.237140099230629},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683069086743,"lo":-6.283707000800527},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040205912,"lo":-6.330284509978665},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.14250875184952,"lo":-6.3769696773996305},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936959542,"lo":-6.423861862509653},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104380507,"lo":-6.47106457415326},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613558645,"lo":-6.51868754527243},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.329230515128543,"lo":-6.566849158774475},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247725731,"lo":-6.61567938170166},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719264874202,"lo":-6.6653234229669165},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.4698386475963305,"lo":-6.715946427930081},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.517345750214767,"lo":-6.7677396641693015},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.629081255309016,"lo":-6.725333363505196},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.623102164987414,"lo":-6.782428053085688},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139850905,"lo":-6.87578603483959},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894671061,"lo":-6.932645850103698},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.713583299409735,"lo":-6.991930720712005},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.849913604417162,"lo":-6.926608973852},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.81087762229139,"lo":-7.023510631758077},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325475927525,"lo":-7.120155356037217},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.885827071572259,"lo":-7.168817902624962},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.040928390876958,"lo":-7.077661339194265},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.9264096119521525,"lo":-7.267805981740127},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.0082513735812775,"lo":-7.315741524190426},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.1676560229977655,"lo":-7.230379625370269},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035814011021,"lo":-7.451671740036637},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.228730577662467,"lo":-7.375447557572276},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.186476035701004,"lo":-7.512187860469375},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.280948296375666,"lo":-7.533335381841567},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.300020550762342,"lo":-7.630920542994503},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.410840250811849,"lo":-7.630140989036324},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.329685432783943,"lo":-7.86152358519042},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.5924166066409144,"lo":-7.733345900608201},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.525091302040561,"lo":-7.9047985044923745},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.546773665191235,"lo":-8.06212856099227},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.649803310149848,"lo":-8.165261541454868},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.815256578959373,"lo":-8.174810753893091},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.966428082572836,"lo":-8.127830585939755},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.850306135683972,"lo":-8.38271475795651},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-8.090448482495862,"lo":-8.288705548874944},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.068270067418087,"lo":-8.421101704681147},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.187786875011687,"lo":-8.418242311922278},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.186469993273008,"lo":-8.535445352985592},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.346473829802202,"lo":-8.469927278048093},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-8.256291528388022,"lo":-8.666927454292308},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-8.467468457804218,"lo":-8.555480023120158},{"hi":0.03463601724082288,"lo":0.030668715622550025}]]},{"anchors":[{"parameter":0.0,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-2.081583143507084,0.3400255935013612]},{"parameter":0.027960601948876673,"point":[2.9879723108865743,1.078124982260299,0.2683681601500001],"uv_a":[6.193609511793907,1.07812498228125],"uv_b":[-2.1373605912358022,0.3379723108865744]},{"parameter":0.06566350641898697,"point":[2.985032342842705,1.0994777312845825,0.2993023758744895],"uv_a":[6.183251596162853,1.0994777313317967],"uv_b":[-2.2125545136462232,0.3350323428427049]},{"parameter":0.06914134111203746,"point":[2.984753332289419,1.1015624833168893,0.30207208636967364],"uv_a":[6.182323686679556,1.101562483265625],"uv_b":[-2.2194877770635526,0.33475333228941917]},{"parameter":0.10627874720988245,"point":[2.9817151124528634,1.1249999842435154,0.33071889600382687],"uv_a":[6.172721158909179,1.12499998425],"uv_b":[-2.2935305269455717,0.33171511245286345]},{"parameter":0.138451119986034,"point":[2.9790322399577196,1.1469658845454735,0.3540719041429702],"uv_a":[6.1648856016319,1.1469658845608737],"uv_b":[-2.3576621455573745,0.3290322399577197]},{"parameter":0.14053223592357528,"point":[2.9788582043878766,1.148437485213058,0.3555331182412742],"uv_a":[6.1643950877238165,1.148437485234375],"uv_b":[-2.3618098009586244,0.3288582043878767]},{"parameter":0.1726109003025741,"point":[2.9761831302065995,1.1718749862655384,0.3772717527632513],"uv_a":[6.157094202032266,1.17187498621875],"uv_b":[-2.425754557084009,0.3261831302065996]},{"parameter":0.20299169788098603,"point":[2.973690380710923,1.1953124872401966,0.39644106703150683],"uv_a":[6.150650620365512,1.195312487203125],"uv_b":[-2.486320532996485,0.32369038071092326]},{"parameter":0.22377451989690716,"point":[2.972027308682751,1.2119959662445097,0.4087220039129997],"uv_a":[6.146519607100946,1.2119959662778652],"uv_b":[-2.527755845914946,0.3220273086827512]},{"parameter":0.23201503912643257,"point":[2.971380414731811,1.2187499882135842,0.4133986343912045],"uv_a":[6.1449458871691025,1.2187499881875001],"uv_b":[-2.5441862084965225,0.3213804147318111]},{"parameter":0.2599273283225378,"point":[2.9692536588896807,1.242187489148606,0.42840717688126084],"uv_a":[6.139893056008326,1.2421874891718752],"uv_b":[-2.5998556927076493,0.3192536588896808]},{"parameter":0.2869249884216469,"point":[2.9673105070407413,1.2656249901667684,0.44166543309173684],"uv_a":[6.135426420474502,1.2656249901562502],"uv_b":[-2.6537174838093325,0.3173105070407414]},{"parameter":0.3131624290936812,"point":[2.9655513201809924,1.2890624911441202,0.4533269982760353],"uv_a":[6.131495248472412,1.289062491140625],"uv_b":[-2.7060802629977676,0.3155513201809925]},{"parameter":0.3380244834888475,"point":[2.9640199117830357,1.3118138222699471,0.46323424153891385],"uv_a":[6.128153612569992,1.3118138222613736],"uv_b":[-2.7557150480637147,0.3140199117830358]},{"parameter":0.3387661663716,"point":[2.963976425838612,1.3124999921298923,0.46351240227393675],"uv_a":[6.128059766113292,1.312499992125],"uv_b":[-2.7571958621254273,0.3139764258386122]},{"parameter":0.3638415140017471,"point":[2.9625861179326485,1.3359374931093746,0.47231715386248857],"uv_a":[6.125088483845136,1.335937493109375],"uv_b":[-2.8072746449644437,0.31258611793264857]},{"parameter":0.38847931536185726,"point":[2.961380656429395,1.3593749940954285,0.4798172649252091],"uv_a":[6.122556360574773,1.3593749940937498],"uv_b":[-2.8564962010346706,0.31138065642939505]},{"parameter":0.41275880271272114,"point":[2.9603602671622977,1.3828124950683494,0.48607313096507004],"uv_a":[6.120443514455005,1.3828124950781249],"uv_b":[-2.905017032578237,0.3103602671622978]},{"parameter":0.4367506572602511,"point":[2.9595251415313575,1.4062499960514447,0.4911323006081817],"uv_a":[6.118734302858896,1.4062499960625],"uv_b":[-2.952976259352182,0.3095251415313576]},{"parameter":0.46051916706439316,"point":[2.9588754363665952,1.4296874970565727,0.49503146566535783],"uv_a":[6.117416661523907,1.429687497046875],"uv_b":[-3.0004999882075496,0.3088754363665953]},{"parameter":0.4841239329795401,"point":[2.9584112739474304,1.4531249980307959,0.49779788487451726],"uv_a":[6.1164816319842075,1.45312499803125],"uv_b":[-3.047704774525534,0.3084112739474305]},{"parameter":0.5076212685256527,"point":[2.958132741516926,1.4765624990160457,0.4994503814760793],"uv_a":[6.115923030013848,1.476562499015625],"uv_b":[-3.094700468487279,0.30813274151692616]},{"parameter":0.5310653968754574,"point":[2.958039891529144,1.5,0.5000000000611257],"uv_a":[6.115737227918569,1.5],"uv_b":[-3.141592653589793,0.30803989152914424]},{"parameter":0.5545095252252621,"point":[2.958132741516926,1.5234375009839543,0.4994503814760793],"uv_a":[6.115923030013848,1.523437500984375],"uv_b":[-3.188484838692307,0.30813274151692616]},{"parameter":0.5780068607713746,"point":[2.9584112739474304,1.5468750019692041,0.49779788487451726],"uv_a":[6.1164816319842075,1.54687500196875],"uv_b":[-3.2354805326540523,0.3084112739474305]},{"parameter":0.6016116266865216,"point":[2.9588754363665952,1.5703125029434273,0.49503146566535783],"uv_a":[6.117416661523907,1.570312502953125],"uv_b":[-3.2826853189720366,0.3088754363665953]},{"parameter":0.6253801364906636,"point":[2.9595251415313575,1.5937500039485553,0.4911323006081817],"uv_a":[6.118734302858896,1.5937500039375],"uv_b":[-3.3302090478274042,0.3095251415313576]},{"parameter":0.6493719910381935,"point":[2.9603602671622977,1.6171875049316506,0.48607313096507004],"uv_a":[6.120443514455005,1.6171875049218751],"uv_b":[-3.3781682746013493,0.3103602671622978]},{"parameter":0.6736514783890574,"point":[2.961380656429395,1.6406250059045715,0.4798172649252091],"uv_a":[6.122556360574773,1.6406250059062502],"uv_b":[-3.4266891061449156,0.31138065642939505]},{"parameter":0.6982892797491675,"point":[2.9625861179326485,1.6640625068906254,0.47231715386248857],"uv_a":[6.125088483845136,1.664062506890625],"uv_b":[-3.4759106622151426,0.31258611793264857]},{"parameter":0.7233646273793146,"point":[2.963976425838612,1.6875000078701077,0.46351240227393675],"uv_a":[6.128059766113292,1.687500007875],"uv_b":[-3.525989445054159,0.3139764258386122]},{"parameter":0.7241063102620672,"point":[2.9640199117830357,1.6881861777300529,0.46323424153891385],"uv_a":[6.128153612569992,1.6881861777386264],"uv_b":[-3.5274702591158715,0.3140199117830358]},{"parameter":0.7489683646572335,"point":[2.9655513201809924,1.7109375088558798,0.4533269982760353],"uv_a":[6.131495248472412,1.710937508859375],"uv_b":[-3.5771050441818186,0.3155513201809925]},{"parameter":0.7752058053292677,"point":[2.9673105070407413,1.7343750098332316,0.44166543309173684],"uv_a":[6.135426420474502,1.7343750098437498],"uv_b":[-3.6294678233702538,0.3173105070407414]},{"parameter":0.8022034654283768,"point":[2.9692536588896807,1.757812510851394,0.42840717688126084],"uv_a":[6.139893056008326,1.7578125108281248],"uv_b":[-3.683329614471937,0.3192536588896808]},{"parameter":0.8301157546244821,"point":[2.971380414731811,1.7812500117864158,0.4133986343912045],"uv_a":[6.1449458871691025,1.7812500118124999],"uv_b":[-3.7389990986830637,0.3213804147318111]},{"parameter":0.8383562738540075,"point":[2.972027308682751,1.7880040337554903,0.4087220039129997],"uv_a":[6.146519607100946,1.7880040337221348],"uv_b":[-3.75542946126464,0.3220273086827512]},{"parameter":0.8591390958699285,"point":[2.973690380710923,1.8046875127598034,0.39644106703150683],"uv_a":[6.150650620365512,1.804687512796875],"uv_b":[-3.7968647741831014,0.32369038071092326]},{"parameter":0.8895198934483405,"point":[2.9761831302065995,1.8281250137344616,0.3772717527632513],"uv_a":[6.157094202032266,1.82812501378125],"uv_b":[-3.857430750095577,0.3261831302065996]},{"parameter":0.9215985578273392,"point":[2.9788582043878766,1.851562514786942,0.3555331182412742],"uv_a":[6.1643950877238165,1.851562514765625],"uv_b":[-3.921375506220962,0.3288582043878767]},{"parameter":0.9236796737648805,"point":[2.9790322399577196,1.8530341154545265,0.3540719041429702],"uv_a":[6.1648856016319,1.8530341154391263],"uv_b":[-3.9255231616222117,0.3290322399577197]},{"parameter":0.9558520465410321,"point":[2.9817151124528634,1.8750000157564846,0.33071889600382687],"uv_a":[6.172721158909179,1.87500001575],"uv_b":[-3.9896547802340145,0.33171511245286345]},{"parameter":0.9929894526388771,"point":[2.984753332289419,1.8984375166831107,0.30207208636967364],"uv_a":[6.182323686679556,1.898437516734375],"uv_b":[-4.063697530116034,0.33475333228941917]},{"parameter":0.9964672873319276,"point":[2.985032342842705,1.9005222687154175,0.2993023758744895],"uv_a":[6.183251596162853,1.9005222686682033],"uv_b":[-4.070630793533363,0.3350323428427049]},{"parameter":1.0341701918020378,"point":[2.9879723108865743,1.921875017739701,0.2683681601500001],"uv_a":[6.193609511793907,1.92187501771875],"uv_b":[-4.1458247159437835,0.3379723108865744]},{"parameter":1.0621307937509141,"point":[2.990025593501361,1.9361800657104595,0.24443189280520253],"uv_a":[6.2016175906938065,1.9361800656611843],"uv_b":[-4.201602163672502,0.3400255935013612]},{"parameter":1.081530484277304,"point":[2.99137146463429,1.945312518754148,0.2273692164378188],"uv_a":[6.207322823072767,1.9453125187031248],"uv_b":[-4.240310477615036,0.34137146463429024]},{"parameter":1.1233060883448023,"point":[2.994010307708874,1.962706951180748,0.18947896277030496],"uv_a":[6.21998358522476,1.9627069511839812],"uv_b":[-4.323719007011324,0.3440103077088743]},{"parameter":1.1399563130081112,"point":[2.9949501800369926,1.968750019662461,0.17399258344294688],"uv_a":[6.225155215538505,1.9687500196874999],"uv_b":[-4.356967891558006,0.34495018003699274]},{"parameter":1.1815666960635112,"point":[2.9969851414200517,1.9815806660152426,0.13446212146289366],"uv_a":[6.238349579755713,1.9815806660036719],"uv_b":[-4.440113025616254,0.34698514142005177]},{"parameter":1.229214087928075,"point":[2.998707814310851,1.9921875207229818,0.08804228752506559],"uv_a":[6.253833663689513,1.9921875206718749],"uv_b":[-4.535381530052305,0.3487078143108513]},{"parameter":1.2379835399870236,"point":[2.998949091222668,1.9936553977252123,0.07939992604383014],"uv_a":[6.256715574286667,1.9936553976847358],"uv_b":[-4.552914019133949,0.34894909122266826]},{"parameter":1.293380309955671,"point":[2.999901494675918,1.99940862801749,0.024310948999184546],"uv_a":[6.275081568817621,1.999408627997067],"uv_b":[-4.663747904226072,0.349901494675918]},{"parameter":1.348478677818362,"point":[2.9998420305338556,1.9990513081448087,-0.030786228130472493],"uv_a":[6.2934475633485745,1.9990513081483483],"uv_b":[-4.774000408416548,0.34984203053385565]},{"parameter":1.403955715116119,"point":[2.998770718853752,1.9925706287723952,-0.08587302104395379],"uv_a":[6.311813557879528,1.992570628843767],"uv_b":[-4.884990754064252,0.3487707188537521]},{"parameter":1.4061594509690132,"point":[2.9987078142710573,1.9921875206055155,-0.08804228885943374],"uv_a":[6.312536951121648,1.9921875206718749],"uv_b":[-4.889396433385479,0.34870781427105735]},{"parameter":1.4605334458072101,"point":[2.9966879209893302,1.9797275224690436,-0.1409308489857392],"uv_a":[6.330179552410482,1.9797275224787612],"uv_b":[-4.998122908279489,0.3466879209893303]},{"parameter":1.4954132906747397,"point":[2.9949501800535847,1.9687500197090473,-0.17399258317463864],"uv_a":[6.341215398725307,1.9687500196874999],"uv_b":[-5.067810068675873,0.3449501800535848]},{"parameter":1.519077735033578,"point":[2.9935943394688804,1.9600076838869414,-0.19594114092896384],"uv_a":[6.348545546941436,1.9600076838350269],"uv_b":[-5.115065608224227,0.3435943394688805]},{"parameter":1.5538428470629704,"point":[2.9913714645937475,1.9453125186461344,-0.22736921691606637],"uv_a":[6.359047791464718,1.9453125187031248],"uv_b":[-5.184467484104458,0.34137146459374756]},{"parameter":1.580688630748231,"point":[2.989491017758296,1.932500341259705,-0.25088534185181033],"uv_a":[6.36691154147239,1.932500341212875],"uv_b":[-5.238033575112214,0.33949101775829593]},{"parameter":1.601203330610856,"point":[2.987972310875444,1.92187501771164,-0.26836816025607485],"uv_a":[6.372761102606741,1.92187501771875],"uv_b":[-5.278953245034719,0.3379723108754442]},{"parameter":1.6423813938726104,"point":[2.9847533323182245,1.8984375167516232,-0.3020720861369931],"uv_a":[6.384046927584258,1.898437516734375],"uv_b":[-5.361080430199728,0.3347533323182246]},{"parameter":1.6470218030402053,"point":[2.9843793399091125,1.8956261424212553,-0.30574491900756773],"uv_a":[6.385277536003343,1.8956261424735315],"uv_b":[-5.370331090604577,0.3343793399091126]},{"parameter":1.679521568305571,"point":[2.9817151124391463,1.8750000157258093,-0.330718896100445],"uv_a":[6.39364945549147,1.87500001575],"uv_b":[-5.435123180720872,0.3317151124391464]},{"parameter":1.7137739258950988,"point":[2.9788582043731306,1.8515625147560555,-0.3555331183335919],"uv_a":[6.401975526676833,1.851562514765625],"uv_b":[-5.503402454722163,0.32885820437313074]},{"parameter":1.72091629919211,"point":[2.978261030091669,1.8464661071564765,-0.3605013684048319],"uv_a":[6.403643530534297,1.8464661071772088],"uv_b":[-5.517637304153507,0.32826103009166907]},{"parameter":1.745855408194644,"point":[2.9761831302425756,1.8281250138047276,-0.37727175256023615],"uv_a":[6.409276412231548,1.82812501378125],"uv_b":[-5.567347210301307,0.3261831302425757]},{"parameter":1.776236205779676,"point":[2.973690380748728,1.8046875128283095,-0.3964410668370696],"uv_a":[6.415719993898301,1.804687512796875],"uv_b":[-5.627913186240673,0.32369038074872813]},{"parameter":1.8052570859497412,"point":[2.971380414771232,1.7812500118523045,-0.41339863420470424],"uv_a":[6.421424727094712,1.7812500118124999],"uv_b":[-5.68577886176755,0.321380414771232]},{"parameter":1.808369739931587,"point":[2.971138152013541,1.778678880365249,-0.4151362205890914],"uv_a":[6.422009525065251,1.7786788803689406],"uv_b":[-5.691985295358635,0.32113815201354123]},{"parameter":1.8331704450667723,"point":[2.9692536588719127,1.75781251082419,-0.4284071769592079],"uv_a":[6.426477558392323,1.7578125108281248],"uv_b":[-5.741448346424442,0.3192536588719128]},{"parameter":1.8601681051630032,"point":[2.967310507022423,1.7343750098077526,-0.44166543316679185],"uv_a":[6.430944193926146,1.7343750098437498],"uv_b":[-5.795310137514503,0.31731050702242314]},{"parameter":1.8864055457423028,"point":[2.965551320193207,1.7109375088711614,-0.4533269982289724],"uv_a":[6.434875365859817,1.710937508859375],"uv_b":[-5.847672916520141,0.3155513201932072]},{"parameter":1.9120090455704917,"point":[2.9639764258193875,1.6875000078487399,-0.4635124023440469],"uv_a":[6.438310848287356,1.687500007875],"uv_b":[-5.89878851580742,0.31397642581938756]},{"parameter":1.9290726021117979,"point":[2.963013108223454,1.6716003485187807,-0.4696310471481647],"uv_a":[6.440375519596205,1.6716003485384285],"uv_b":[-5.932862850106976,0.31301310822345396]},{"parameter":1.9370861248056854,"point":[2.9625861179453747,1.6640625069029968,-0.472317153818279],"uv_a":[6.441282130487092,1.664062506890625],"uv_b":[-5.948867298501852,0.31258611794537483]},{"parameter":1.961723926228562,"point":[2.9613806564094936,1.6406250058879954,-0.47981726499148236],"uv_a":[6.443814253825877,1.6406250059062502],"uv_b":[-5.998088854693556,0.31138065640949364]},{"parameter":1.98600341357655,"point":[2.9603602671421374,1.6171875049176623,-0.48607313102983524],"uv_a":[6.445927099945645,1.6171875049218751],"uv_b":[-6.046609686225586,0.3103602671421375]},{"parameter":2.009995268121205,"point":[2.959525141510987,1.5937500039372514,-0.49113230067171487],"uv_a":[6.447636311541753,1.5937500039375],"uv_b":[-6.094568912988007,0.3095251415109872]},{"parameter":2.033763777858961,"point":[2.958875436413802,1.5703125029630696,-0.4950314655214878],"uv_a":[6.448953952739905,1.570312502953125],"uv_b":[-6.142092641717985,0.308875436413802]},{"parameter":2.0573685438247455,"point":[2.9584112739267834,1.5468750019634778,-0.49779788493640886],"uv_a":[6.449888982416442,1.54687500196875],"uv_b":[-6.1892974281383335,0.30841127392678347]},{"parameter":2.0808658793679835,"point":[2.9581327414962093,1.5234375009810819,-0.49945038153756327],"uv_a":[6.450447584386803,1.523437500984375],"uv_b":[-6.236293122088576,0.3081327414962094]},{"parameter":2.1043100077124057,"point":[2.958039891542615,1.5,-0.5000000000212772],"uv_a":[6.450633386413662,1.5],"uv_b":[-6.283185307179586,0.30803989154261524]},{"parameter":2.127754136056828,"point":[2.9581327414962093,1.4765624990189181,-0.49945038153756327],"uv_a":[6.450447584386803,1.476562499015625],"uv_b":[-6.330077492270597,0.3081327414962094]},{"parameter":2.151251471600066,"point":[2.9584112739267834,1.4531249980365222,-0.49779788493640886],"uv_a":[6.449888982416442,1.45312499803125],"uv_b":[-6.377073186220839,0.30841127392678347]},{"parameter":2.1748562375658507,"point":[2.958875436413802,1.4296874970369304,-0.4950314655214878],"uv_a":[6.448953952739905,1.429687497046875],"uv_b":[-6.424277972641187,0.308875436413802]},{"parameter":2.1986247473036062,"point":[2.959525141510987,1.4062499960627486,-0.49113230067171487],"uv_a":[6.447636311541753,1.4062499960625],"uv_b":[-6.471801701371166,0.3095251415109872]},{"parameter":2.2226166018482614,"point":[2.9603602671421374,1.3828124950823377,-0.48607313102983524],"uv_a":[6.445927099945645,1.3828124950781249],"uv_b":[-6.519760928133587,0.3103602671421375]},{"parameter":2.2468960891962495,"point":[2.9613806564094936,1.3593749941120046,-0.47981726499148236],"uv_a":[6.443814253825877,1.3593749940937498],"uv_b":[-6.5682817596656164,0.31138065640949364]},{"parameter":2.271533890619126,"point":[2.9625861179453747,1.3359374930970032,-0.472317153818279],"uv_a":[6.441282130487092,1.335937493109375],"uv_b":[-6.617503315857321,0.31258611794537483]},{"parameter":2.279547413313013,"point":[2.963013108223454,1.3283996514812193,-0.4696310471481647],"uv_a":[6.440375519596205,1.3283996514615715],"uv_b":[-6.6335077642521965,0.31301310822345396]},{"parameter":2.2966109698543193,"point":[2.9639764258193875,1.3124999921512601,-0.4635124023440469],"uv_a":[6.438310848287356,1.312499992125],"uv_b":[-6.667582098551753,0.31397642581938756]},{"parameter":2.322214469682508,"point":[2.965551320193207,1.2890624911288386,-0.4533269982289724],"uv_a":[6.434875365859817,1.289062491140625],"uv_b":[-6.718697697839032,0.3155513201932072]},{"parameter":2.3484519102618076,"point":[2.967310507022423,1.2656249901922474,-0.44166543316679185],"uv_a":[6.430944193926146,1.2656249901562502],"uv_b":[-6.77106047684467,0.31731050702242314]},{"parameter":2.3754495703580383,"point":[2.9692536588719127,1.24218748917581,-0.4284071769592079],"uv_a":[6.426477558392323,1.2421874891718752],"uv_b":[-6.82492226793473,0.3192536588719128]},{"parameter":2.4002502754932236,"point":[2.971138152013541,1.221321119634751,-0.4151362205890914],"uv_a":[6.422009525065251,1.2213211196310594],"uv_b":[-6.874385319000537,0.32113815201354123]},{"parameter":2.4033629294750694,"point":[2.971380414771232,1.2187499881476955,-0.41339863420470424],"uv_a":[6.421424727094712,1.2187499881875001],"uv_b":[-6.880591752591623,0.321380414771232]},{"parameter":2.4323838096451347,"point":[2.973690380748728,1.1953124871716905,-0.3964410668370696],"uv_a":[6.415719993898301,1.195312487203125],"uv_b":[-6.938457428118499,0.32369038074872813]},{"parameter":2.4627646072301665,"point":[2.9761831302425756,1.1718749861952724,-0.37727175256023615],"uv_a":[6.409276412231548,1.17187498621875],"uv_b":[-6.999023404057866,0.3261831302425757]},{"parameter":2.4877037162327005,"point":[2.978261030091669,1.1535338928435235,-0.3605013684048319],"uv_a":[6.403643530534297,1.1535338928227912],"uv_b":[-7.048733310205665,0.32826103009166907]},{"parameter":2.494846089529712,"point":[2.9788582043731306,1.1484374852439445,-0.3555331183335919],"uv_a":[6.401975526676833,1.148437485234375],"uv_b":[-7.062968159637009,0.32885820437313074]},{"parameter":2.5290984471192397,"point":[2.9817151124391463,1.1249999842741907,-0.330718896100445],"uv_a":[6.39364945549147,1.12499998425],"uv_b":[-7.1312474336383005,0.3317151124391464]},{"parameter":2.5615982123846055,"point":[2.9843793399091125,1.1043738575787447,-0.30574491900756773],"uv_a":[6.385277536003343,1.1043738575264685],"uv_b":[-7.196039523754595,0.3343793399091126]},{"parameter":2.5662386215522,"point":[2.9847533323182245,1.1015624832483768,-0.3020720861369931],"uv_a":[6.384046927584258,1.101562483265625],"uv_b":[-7.205290184159445,0.3347533323182246]},{"parameter":2.6074166848139546,"point":[2.987972310875444,1.07812498228836,-0.26836816025607485],"uv_a":[6.372761102606741,1.07812498228125],"uv_b":[-7.287417369324453,0.3379723108754442]},{"parameter":2.6279313846765793,"point":[2.989491017758296,1.067499658740295,-0.25088534185181033],"uv_a":[6.36691154147239,1.067499658787125],"uv_b":[-7.328337039246959,0.33949101775829593]},{"parameter":2.65477716836184,"point":[2.9913714645937475,1.0546874813538654,-0.22736921691606635],"uv_a":[6.359047791464718,1.054687481296875],"uv_b":[-7.381903130254716,0.34137146459374756]},{"parameter":2.6895422803912323,"point":[2.9935943394688804,1.0399923161130586,-0.19594114092896384],"uv_a":[6.348545546941436,1.0399923161649731],"uv_b":[-7.4513050061349455,0.3435943394688805]},{"parameter":2.7132067247500706,"point":[2.9949501800535847,1.0312499802909525,-0.1739925831746386],"uv_a":[6.341215398725307,1.0312499803125],"uv_b":[-7.498560545683301,0.3449501800535848]},{"parameter":2.7480865696176004,"point":[2.9966879209893302,1.020272477530956,-0.14093084898573915],"uv_a":[6.330179552410482,1.0202724775212384],"uv_b":[-7.568247706079684,0.3466879209893303]},{"parameter":2.802460564455797,"point":[2.9987078142710573,1.0078124793944845,-0.08804228885943374],"uv_a":[6.312536951121648,1.007812479328125],"uv_b":[-7.676974180973693,0.34870781427105735]},{"parameter":2.8046643003086915,"point":[2.998770718853752,1.0074293712276043,-0.08587302104395379],"uv_a":[6.311813557879528,1.0074293711562325],"uv_b":[-7.68137986029492,0.3487707188537521]},{"parameter":2.8601413376064486,"point":[2.9998420305338556,1.0009486918551913,-0.030786228130472493],"uv_a":[6.2934475633485745,1.0009486918516517],"uv_b":[-7.792370205942625,0.34984203053385565]},{"parameter":2.9152397054691397,"point":[2.999901494675918,1.00059137198251,0.024310948999184546],"uv_a":[6.275081568817621,1.000591372002933],"uv_b":[-7.902622710133101,0.349901494675918]},{"parameter":2.970636475437787,"point":[2.998949091222668,1.0063446022747877,0.07939992604383014],"uv_a":[6.256715574286667,1.0063446023152642],"uv_b":[-8.013456595225223,0.34894909122266826]},{"parameter":2.9794059274967357,"point":[2.998707814310851,1.007812479277018,0.08804228752506559],"uv_a":[6.253833663689513,1.007812479328125],"uv_b":[-8.030989084306867,0.3487078143108513]},{"parameter":3.0270533193612996,"point":[2.9969851414200517,1.0184193339847571,0.13446212146289355],"uv_a":[6.238349579755713,1.0184193339963277],"uv_b":[-8.126257588742918,0.34698514142005177]},{"parameter":3.0686637024167,"point":[2.9949501800369926,1.031249980337539,0.17399258344294682],"uv_a":[6.225155215538505,1.0312499803125],"uv_b":[-8.209402722801165,0.34495018003699274]},{"parameter":3.085313927080009,"point":[2.994010307708874,1.037293048819252,0.18947896277030496],"uv_a":[6.21998358522476,1.0372930488160188],"uv_b":[-8.242651607347849,0.3440103077088743]},{"parameter":3.127089531147507,"point":[2.99137146463429,1.054687481245852,0.2273692164378188],"uv_a":[6.207322823072767,1.054687481296875],"uv_b":[-8.326060136744136,0.34137146463429024]},{"parameter":3.146489221673897,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-8.36476845068667,0.3400255935013612]}],"residual_tolerance":1.575e-8,"surfaces":[8,16],"uv_tubes":[[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-1.970028248049648,"lo":-2.2489154866932384},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-1.9869727464149602,"lo":-2.3629423584670652},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-2.1986879868115645,"lo":-2.2333543038982113},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.0714022772995144,"lo":-2.44161602670961},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.165267289721966,"lo":-2.48592538278098},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.349366834754875,"lo":-2.370105111761124},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.233920288707855,"lo":-2.5536440693347786},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.3046226052590577,"lo":-2.607452484821436},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.4034499071595623,"lo":-2.6106264717518686},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.494895120751793,"lo":-2.5770469336596755},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.432847240074269,"lo":-2.7111946611299027},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.492132110504283,"lo":-2.761441066012699},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254324622,"lo":-2.810805821374638},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6068106928658734,"lo":-2.854984618195609},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.7527534199402894,"lo":-2.7601574902488526},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.6570382964473946,"lo":-2.9074322106424764},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.70883153282399,"lo":-2.9549393131751245},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537947538,"lo":-3.0020586956653696},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098579030347,"lo":-3.048894712900072},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.857928801641447,"lo":-3.095547445918285},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415571581,"lo":-3.1421143471615025},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133866020433,"lo":-3.18869185641077},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982822514,"lo":-3.235377023794821},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.0478082833847653,"lo":-3.282269208897335},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507688164,"lo":-3.329471920577543},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709600180837,"lo":-3.3770948916080052},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.1876378612613014,"lo":-3.4252565055381394},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594279514,"lo":-3.4740867281492394},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.2811266115142166,"lo":-3.5237307692320483},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940044617,"lo":-3.5743537743555964},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309653711,"lo":-3.6261470107321916},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5230278169307336,"lo":-3.530431887239297},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.4282006889839773,"lo":-3.676374614313713},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.4723794858049484,"lo":-3.734193381747124},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411668873,"lo":-3.7910531966753034},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.5719906460496835,"lo":-3.850338067105317},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.7061383735199107,"lo":-3.788290186427793},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.6725588354277177,"lo":-3.879735400020024},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.67573282235815,"lo":-3.9785627019205285},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.7295412378448076,"lo":-4.049265018471731},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.913080195418462,"lo":-3.9338184724247114},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.797259924398606,"lo":-4.117918017457621},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.8415692804699755,"lo":-4.211783029880073},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-4.049831003281376,"lo":-4.084497320368021},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.920242948712522,"lo":-4.296212560764625},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.034269820486347,"lo":-4.313157059129938},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.124185535787432,"lo":-4.317727105500106},{"hi":0.34406320690014836,"lo":0.3373338512355031}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.073493418822462,"lo":-4.490536065803898},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.257221237917959,"lo":-4.423465660651371},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.19067762344151,"lo":-4.60640329373275},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.249576016744152,"lo":-4.725918538924407},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.500316551889018,"lo":-4.5879789972972365},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.331246248949704,"lo":-4.885415674410317},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.4432428958451196,"lo":-4.9945054167975},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.552019717121139,"lo":-5.106971445359661},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.876179395421798,"lo":-4.898207792027933},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.671943483597459,"lo":-5.21557585806751},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.858748587486723,"lo":-5.207184389468639},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.973298989579164,"lo":-5.2095766873209355},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.976261856463766,"lo":-5.323271235864919},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.077335302088946,"lo":-5.345165757127726},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.156194235267202,"lo":-5.36079258487973},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874704702,"lo":-5.525334800529745},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.342579109390028,"lo":-5.388832411414277},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.240746910371988,"lo":-5.564707360953461},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632718289,"lo":-5.639961002724746},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.474932755859475,"lo":-5.546107003016195},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.4182174918579085,"lo":-5.666767022596906},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.4462152584225745,"lo":-5.749045138119405},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.51218183518692,"lo":-5.801510212821303},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.673365994585379,"lo":-5.704398162540806},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.593059193227021,"lo":-5.840374448556056},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764244321,"lo":-5.903033719694624},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579503226,"lo":-5.952398474531417},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.7454417179455834,"lo":-6.001019714381977},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.830639847208307,"lo":-6.001011518706089},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.900853953317225,"lo":-5.980876195291603},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186118443,"lo":-6.096531967076965},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191629496,"lo":-6.143651349289645},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232700744,"lo":-6.190487366512849},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.99952145552805,"lo":-6.237140099177942},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683068877289,"lo":-6.28370700097903},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040237849,"lo":-6.33028450998906},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.142508751906554,"lo":-6.376969677361608},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936997565,"lo":-6.423861862452618},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104370113,"lo":-6.471064574121323},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613380143,"lo":-6.518687545481884},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.32923051518123,"lo":-6.566849158831123},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247846324,"lo":-6.6156793816584285},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719265069527,"lo":-6.665323422729676},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.469838647282208,"lo":-6.71594642824073},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.58549441906757,"lo":-6.665516661041948},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.565359095653084,"lo":-6.735730767150866},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.5653508999771955,"lo":-6.820928896413589},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139827755,"lo":-6.875786034855946},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894664549,"lo":-6.932645850114851},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.725996165803116,"lo":-6.973311421132151},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.8619724518183665,"lo":-6.8930046197737935},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.764860401537869,"lo":-7.054188779172253},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325476239767,"lo":-7.120155355936598},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.899603591762267,"lo":-7.148153122501264},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.020263611342977,"lo":-7.091437858499697},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.926409611634426,"lo":-7.267805981640883},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.001663253405711,"lo":-7.325623703987184},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.177538202944896,"lo":-7.223791504969144},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035813829428,"lo":-7.45167173965447},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.205578029479442,"lo":-7.41017637909197},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.221204857231445,"lo":-7.48903531227023},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.243099378494256,"lo":-7.590108757895405},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.356793927038235,"lo":-7.593071624780011},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.359186224890534,"lo":-7.707622026872451},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.350794756291665,"lo":-7.894427130761712},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.668162822331239,"lo":-7.6901912189373745},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.459399168999512,"lo":-8.014350897238034},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.571865197561673,"lo":-8.123127718514052},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.6809549399488555,"lo":-8.235124365409469},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.978391617061936,"lo":-8.066054062470155},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.840452075434765,"lo":-8.31679459761502},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.959967320626424,"lo":-8.37569299091766},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.142904953707799,"lo":-8.309149376441216},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.075834548555274,"lo":-8.49287719553671},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.248643508859068,"lo":-8.442185078571738},{"hi":0.34406320690014836,"lo":0.3373338512355031}]]}],"pcurves":[{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[2.0901201280414963,-2.152068272698568]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.465765601187591,-1.1]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.598076211353316,-1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.244994432064365,1.5]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.7910571473905725,1.1]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[-1.0000000000000002,0.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.5]},{"direction":[1.0000000000000002,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.5]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3530817792889511,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.3530817792889511,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3252915462029815,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.32529154620298195,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-4.440892098500626e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"definition":0,"kind":"IntersectionSide","side":"A"},{"definition":0,"kind":"IntersectionSide","side":"B"},{"definition":1,"kind":"IntersectionSide","side":"A"},{"definition":1,"kind":"IntersectionSide","side":"B"}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,-1.9368614454287116],"x":[0.6967067093471659,0.0,-0.7173560908995223],"y":[0.0,1.0,0.0],"z":[0.7173560908995223,-0.0,0.6967067093471659]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.0901201280414963,0.0,2.1520682726985685],"x":[-0.6967067093471652,0.0,-0.717356090899523],"y":[0.0,1.0,0.0],"z":[0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[2.244994432064365,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.7910571473905725,1.0,1.1],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5}]},"id":"batch-staged.mixed-curved-openings.forward","quality":{"kind":"Analytic"},"revision":2,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":72},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":1,"id":1,"tolerance":6.3e-8,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":2,"id":2,"tolerance":6.3e-8,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":3,"id":3,"tolerance":6.3e-8,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":6.3e-8,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":5,"id":5,"tolerance":6.3e-8,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":6,"id":6,"tolerance":6.3e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":7,"id":7,"tolerance":6.3e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":8,"id":8,"tolerance":6.3e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":9,"id":9,"tolerance":6.3e-8,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":10,"id":10,"tolerance":6.3e-8,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":11,"id":11,"tolerance":6.3e-8,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":12,"id":12,"tolerance":6.3e-8,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":13,"id":13,"tolerance":6.3e-8,"twin_halfedge":92},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":14,"id":14,"tolerance":6.3e-8,"twin_halfedge":86},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":15,"id":15,"tolerance":6.3e-8,"twin_halfedge":88},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":16,"id":16,"tolerance":6.3e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":17,"id":17,"tolerance":6.3e-8,"twin_halfedge":90},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":18,"id":18,"tolerance":6.3e-8,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":19,"id":19,"tolerance":6.3e-8,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":20,"id":20,"tolerance":6.3e-8,"twin_halfedge":56},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":21,"id":21,"tolerance":6.3e-8,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":22,"id":22,"tolerance":6.3e-8,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":23,"id":23,"tolerance":6.3e-8,"twin_halfedge":76},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":25,"id":24,"tolerance":6.3e-8,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":26,"id":25,"tolerance":6.3e-8,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":27,"id":26,"tolerance":6.3e-8,"twin_halfedge":91},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":29,"id":27,"tolerance":6.3e-8,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":30,"id":28,"tolerance":6.3e-8,"twin_halfedge":74},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":31,"id":29,"tolerance":6.3e-8,"twin_halfedge":73},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":33,"id":30,"tolerance":6.3e-8,"twin_halfedge":43},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":37,"id":31,"tolerance":6.3e-8,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":32,"tolerance":6.3e-8,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":39,"id":33,"tolerance":6.3e-8,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":41,"id":34,"tolerance":6.3e-8,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":42,"id":35,"tolerance":6.3e-8,"twin_halfedge":85},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":45,"id":36,"tolerance":6.3e-8,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":46,"id":37,"tolerance":6.3e-8,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":47,"id":38,"tolerance":6.3e-8,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":53,"id":39,"tolerance":6.3e-8,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":54,"id":40,"tolerance":6.3e-8,"twin_halfedge":87},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":55,"id":41,"tolerance":6.3e-8,"twin_halfedge":95},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":61,"id":42,"tolerance":6.3e-8,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":65,"id":43,"tolerance":6.3e-8,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":66,"id":44,"tolerance":6.3e-8,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":67,"id":45,"tolerance":6.3e-8,"twin_halfedge":77},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":69,"id":46,"tolerance":6.3e-8,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":70,"id":47,"tolerance":6.3e-8,"twin_halfedge":81},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":3.147877503993888,"lo":0.0}},"halfedge":96,"id":48,"tolerance":6.3e-8,"twin_halfedge":97},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":3.146489221673897,"lo":0.0}},"halfedge":98,"id":49,"tolerance":6.3e-8,"twin_halfedge":99}],"faces":[{"id":0,"key":"batch-staged.mixed-curved-openings.forward:planar:lower-cap-0","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":1,"key":"batch-staged.mixed-curved-openings.forward:planar:upper-cap-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":-1.0999999369999995,"lo":-1.500000063}]}},{"id":2,"key":"batch-staged.mixed-curved-openings.forward:planar:lower-cap-2","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":1.500000063,"lo":1.0999999369999995}]}},{"id":3,"key":"batch-staged.mixed-curved-openings.forward:planar:upper-cap-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":4,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-4","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":5.694154360296646,"lo":5.483185283846253},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-5","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":6,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[16],"outer":6,"uv_bounds":[{"hi":7.0831853305129195,"lo":5.863571900276408},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":7,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-7","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.3000000629999996,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":8,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[18],"outer":8,"uv_bounds":[{"hi":7.083185328179586,"lo":5.907761678198547},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":9,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-9","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":10,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-10","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.759586552581287,"lo":5.4831852861795864},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":11,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-11","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":12,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-12","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.3530818422889511,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":13,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-plane-13","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.32529160920298195,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":14,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-14","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":3.000000063,"lo":1.499999937}]}},{"id":15,"key":"batch-staged.mixed-curved-openings.forward:planar:vertical-cylinder-15","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":3.000000063,"lo":1.499999937}]}},{"id":16,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[19],"outer":17,"uv_bounds":[{"hi":-2.081576844571777,"lo":-8.52028169592909},{"hi":0.3499989716450176,"lo":0.0033002839911298975}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":7,"prev":1,"to":0,"twin":72,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":64,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":60,"wire_ref":null},{"edge":3,"face":0,"from":4,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":2,"prev":4,"to":3,"twin":52,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":0,"next":3,"prev":5,"to":4,"twin":44,"wire_ref":null},{"edge":5,"face":0,"from":6,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":0,"next":4,"prev":6,"to":5,"twin":36,"wire_ref":null},{"edge":6,"face":0,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":0,"next":5,"prev":7,"to":6,"twin":32,"wire_ref":null},{"edge":7,"face":0,"from":0,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":0,"next":6,"prev":0,"to":7,"twin":24,"wire_ref":null},{"edge":8,"face":1,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":1,"next":11,"prev":9,"to":8,"twin":34,"wire_ref":null},{"edge":9,"face":1,"from":10,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":1,"next":8,"prev":10,"to":9,"twin":84,"wire_ref":null},{"edge":10,"face":1,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":1,"next":9,"prev":11,"to":10,"twin":62,"wire_ref":null},{"edge":11,"face":1,"from":8,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":1,"next":10,"prev":8,"to":11,"twin":80,"wire_ref":null},{"edge":12,"face":2,"from":13,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":2,"next":15,"prev":13,"to":12,"twin":82,"wire_ref":null},{"edge":13,"face":2,"from":14,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":2,"next":12,"prev":14,"to":13,"twin":92,"wire_ref":null},{"edge":14,"face":2,"from":15,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":2,"next":13,"prev":15,"to":14,"twin":86,"wire_ref":null},{"edge":15,"face":2,"from":12,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":2,"next":14,"prev":12,"to":15,"twin":88,"wire_ref":null},{"edge":16,"face":3,"from":17,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":3,"next":23,"prev":17,"to":16,"twin":28,"wire_ref":null},{"edge":17,"face":3,"from":18,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":3,"next":16,"prev":18,"to":17,"twin":90,"wire_ref":null},{"edge":18,"face":3,"from":19,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":3,"next":17,"prev":19,"to":18,"twin":40,"wire_ref":null},{"edge":19,"face":3,"from":20,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":3,"next":18,"prev":20,"to":19,"twin":48,"wire_ref":null},{"edge":20,"face":3,"from":21,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":3,"next":19,"prev":21,"to":20,"twin":56,"wire_ref":null},{"edge":21,"face":3,"from":22,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":3,"next":20,"prev":22,"to":21,"twin":94,"wire_ref":null},{"edge":22,"face":3,"from":23,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":3,"next":21,"prev":23,"to":22,"twin":68,"wire_ref":null},{"edge":23,"face":3,"from":16,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":3,"next":22,"prev":16,"to":23,"twin":76,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":4,"next":31,"prev":25,"to":0,"twin":7,"wire_ref":null},{"edge":24,"face":4,"from":8,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":4,"next":24,"prev":26,"to":7,"twin":35,"wire_ref":null},{"edge":25,"face":4,"from":12,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":4,"next":25,"prev":27,"to":8,"twin":83,"wire_ref":null},{"edge":26,"face":4,"from":17,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":4,"next":26,"prev":28,"to":12,"twin":91,"wire_ref":null},{"edge":16,"face":4,"from":16,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":4,"next":27,"prev":29,"to":17,"twin":16,"wire_ref":null},{"edge":27,"face":4,"from":24,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":4,"next":28,"prev":30,"to":16,"twin":75,"wire_ref":null},{"edge":28,"face":4,"from":25,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":4,"next":29,"prev":31,"to":24,"twin":74,"wire_ref":null},{"edge":29,"face":4,"from":0,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":4,"next":30,"prev":24,"to":25,"twin":73,"wire_ref":null},{"edge":6,"face":5,"from":6,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":5,"next":35,"prev":33,"to":7,"twin":6,"wire_ref":null},{"edge":30,"face":5,"from":9,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":5,"next":32,"prev":34,"to":6,"twin":43,"wire_ref":null},{"edge":8,"face":5,"from":8,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":5,"next":33,"prev":35,"to":9,"twin":8,"wire_ref":null},{"edge":24,"face":5,"from":7,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":5,"next":34,"prev":32,"to":8,"twin":25,"wire_ref":null},{"edge":5,"face":6,"from":5,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Reverse"},"id":36,"loop_ref":6,"next":43,"prev":37,"to":6,"twin":5,"wire_ref":null},{"edge":31,"face":6,"from":26,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Reverse"},"id":37,"loop_ref":6,"next":36,"prev":38,"to":5,"twin":51,"wire_ref":null},{"edge":32,"face":6,"from":27,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Reverse"},"id":38,"loop_ref":6,"next":37,"prev":39,"to":26,"twin":50,"wire_ref":null},{"edge":33,"face":6,"from":19,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Reverse"},"id":39,"loop_ref":6,"next":38,"prev":40,"to":27,"twin":49,"wire_ref":null},{"edge":18,"face":6,"from":18,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Forward"},"id":40,"loop_ref":6,"next":39,"prev":41,"to":19,"twin":18,"wire_ref":null},{"edge":34,"face":6,"from":15,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Reverse"},"id":41,"loop_ref":6,"next":40,"prev":42,"to":18,"twin":89,"wire_ref":null},{"edge":35,"face":6,"from":9,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Reverse"},"id":42,"loop_ref":6,"next":41,"prev":43,"to":15,"twin":85,"wire_ref":null},{"edge":30,"face":6,"from":6,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Forward"},"id":43,"loop_ref":6,"next":42,"prev":36,"to":9,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":4,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Forward"},"id":44,"loop_ref":7,"next":51,"prev":45,"to":5,"twin":4,"wire_ref":null},{"edge":36,"face":7,"from":28,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Reverse"},"id":45,"loop_ref":7,"next":44,"prev":46,"to":4,"twin":59,"wire_ref":null},{"edge":37,"face":7,"from":29,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Reverse"},"id":46,"loop_ref":7,"next":45,"prev":47,"to":28,"twin":58,"wire_ref":null},{"edge":38,"face":7,"from":20,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Reverse"},"id":47,"loop_ref":7,"next":46,"prev":48,"to":29,"twin":57,"wire_ref":null},{"edge":19,"face":7,"from":19,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Forward"},"id":48,"loop_ref":7,"next":47,"prev":49,"to":20,"twin":19,"wire_ref":null},{"edge":33,"face":7,"from":27,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Forward"},"id":49,"loop_ref":7,"next":48,"prev":50,"to":19,"twin":39,"wire_ref":null},{"edge":32,"face":7,"from":26,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Forward"},"id":50,"loop_ref":7,"next":49,"prev":51,"to":27,"twin":38,"wire_ref":null},{"edge":31,"face":7,"from":5,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Forward"},"id":51,"loop_ref":7,"next":50,"prev":44,"to":26,"twin":37,"wire_ref":null},{"edge":3,"face":8,"from":3,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Forward"},"id":52,"loop_ref":8,"next":59,"prev":53,"to":4,"twin":3,"wire_ref":null},{"edge":39,"face":8,"from":10,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Reverse"},"id":53,"loop_ref":8,"next":52,"prev":54,"to":3,"twin":63,"wire_ref":null},{"edge":40,"face":8,"from":14,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Reverse"},"id":54,"loop_ref":8,"next":53,"prev":55,"to":10,"twin":87,"wire_ref":null},{"edge":41,"face":8,"from":21,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Reverse"},"id":55,"loop_ref":8,"next":54,"prev":56,"to":14,"twin":95,"wire_ref":null},{"edge":20,"face":8,"from":20,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Reverse"},"id":56,"loop_ref":8,"next":55,"prev":57,"to":21,"twin":20,"wire_ref":null},{"edge":38,"face":8,"from":29,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Forward"},"id":57,"loop_ref":8,"next":56,"prev":58,"to":20,"twin":47,"wire_ref":null},{"edge":37,"face":8,"from":28,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Forward"},"id":58,"loop_ref":8,"next":57,"prev":59,"to":29,"twin":46,"wire_ref":null},{"edge":36,"face":8,"from":4,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Forward"},"id":59,"loop_ref":8,"next":58,"prev":52,"to":28,"twin":45,"wire_ref":null},{"edge":2,"face":9,"from":2,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Forward"},"id":60,"loop_ref":9,"next":63,"prev":61,"to":3,"twin":2,"wire_ref":null},{"edge":42,"face":9,"from":11,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Reverse"},"id":61,"loop_ref":9,"next":60,"prev":62,"to":2,"twin":71,"wire_ref":null},{"edge":10,"face":9,"from":10,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Reverse"},"id":62,"loop_ref":9,"next":61,"prev":63,"to":11,"twin":10,"wire_ref":null},{"edge":39,"face":9,"from":3,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Forward"},"id":63,"loop_ref":9,"next":62,"prev":60,"to":10,"twin":53,"wire_ref":null},{"edge":1,"face":10,"from":1,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Forward"},"id":64,"loop_ref":10,"next":71,"prev":65,"to":2,"twin":1,"wire_ref":null},{"edge":43,"face":10,"from":30,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Reverse"},"id":65,"loop_ref":10,"next":64,"prev":66,"to":1,"twin":79,"wire_ref":null},{"edge":44,"face":10,"from":31,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Reverse"},"id":66,"loop_ref":10,"next":65,"prev":67,"to":30,"twin":78,"wire_ref":null},{"edge":45,"face":10,"from":23,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Reverse"},"id":67,"loop_ref":10,"next":66,"prev":68,"to":31,"twin":77,"wire_ref":null},{"edge":22,"face":10,"from":22,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Reverse"},"id":68,"loop_ref":10,"next":67,"prev":69,"to":23,"twin":22,"wire_ref":null},{"edge":46,"face":10,"from":13,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Reverse"},"id":69,"loop_ref":10,"next":68,"prev":70,"to":22,"twin":93,"wire_ref":null},{"edge":47,"face":10,"from":11,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Reverse"},"id":70,"loop_ref":10,"next":69,"prev":71,"to":13,"twin":81,"wire_ref":null},{"edge":42,"face":10,"from":2,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Forward"},"id":71,"loop_ref":10,"next":70,"prev":64,"to":11,"twin":61,"wire_ref":null},{"edge":0,"face":11,"from":0,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Forward"},"id":72,"loop_ref":11,"next":79,"prev":73,"to":1,"twin":0,"wire_ref":null},{"edge":29,"face":11,"from":25,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Forward"},"id":73,"loop_ref":11,"next":72,"prev":74,"to":0,"twin":31,"wire_ref":null},{"edge":28,"face":11,"from":24,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Forward"},"id":74,"loop_ref":11,"next":73,"prev":75,"to":25,"twin":30,"wire_ref":null},{"edge":27,"face":11,"from":16,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Forward"},"id":75,"loop_ref":11,"next":74,"prev":76,"to":24,"twin":29,"wire_ref":null},{"edge":23,"face":11,"from":23,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Forward"},"id":76,"loop_ref":11,"next":75,"prev":77,"to":16,"twin":23,"wire_ref":null},{"edge":45,"face":11,"from":31,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Forward"},"id":77,"loop_ref":11,"next":76,"prev":78,"to":23,"twin":67,"wire_ref":null},{"edge":44,"face":11,"from":30,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Forward"},"id":78,"loop_ref":11,"next":77,"prev":79,"to":31,"twin":66,"wire_ref":null},{"edge":43,"face":11,"from":1,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Forward"},"id":79,"loop_ref":11,"next":78,"prev":72,"to":30,"twin":65,"wire_ref":null},{"edge":11,"face":12,"from":11,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Forward"},"id":80,"loop_ref":12,"next":83,"prev":81,"to":8,"twin":11,"wire_ref":null},{"edge":47,"face":12,"from":13,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Forward"},"id":81,"loop_ref":12,"next":80,"prev":82,"to":11,"twin":70,"wire_ref":null},{"edge":12,"face":12,"from":12,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Forward"},"id":82,"loop_ref":12,"next":81,"prev":83,"to":13,"twin":12,"wire_ref":null},{"edge":25,"face":12,"from":8,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Forward"},"id":83,"loop_ref":12,"next":82,"prev":80,"to":12,"twin":26,"wire_ref":null},{"edge":9,"face":13,"from":9,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Forward"},"id":84,"loop_ref":13,"next":87,"prev":85,"to":10,"twin":9,"wire_ref":null},{"edge":35,"face":13,"from":15,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Forward"},"id":85,"loop_ref":13,"next":84,"prev":86,"to":9,"twin":42,"wire_ref":null},{"edge":14,"face":13,"from":14,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Forward"},"id":86,"loop_ref":13,"next":85,"prev":87,"to":15,"twin":14,"wire_ref":null},{"edge":40,"face":13,"from":10,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Forward"},"id":87,"loop_ref":13,"next":86,"prev":84,"to":14,"twin":54,"wire_ref":null},{"edge":15,"face":14,"from":15,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Reverse"},"id":88,"loop_ref":14,"next":91,"prev":89,"to":12,"twin":15,"wire_ref":null},{"edge":34,"face":14,"from":18,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Forward"},"id":89,"loop_ref":14,"next":88,"prev":90,"to":15,"twin":41,"wire_ref":null},{"edge":17,"face":14,"from":17,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Forward"},"id":90,"loop_ref":14,"next":89,"prev":91,"to":18,"twin":17,"wire_ref":null},{"edge":26,"face":14,"from":12,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Forward"},"id":91,"loop_ref":14,"next":90,"prev":88,"to":17,"twin":27,"wire_ref":null},{"edge":13,"face":15,"from":13,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Forward"},"id":92,"loop_ref":15,"next":95,"prev":93,"to":14,"twin":13,"wire_ref":null},{"edge":46,"face":15,"from":22,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Forward"},"id":93,"loop_ref":15,"next":92,"prev":94,"to":13,"twin":69,"wire_ref":null},{"edge":21,"face":15,"from":21,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Reverse"},"id":94,"loop_ref":15,"next":93,"prev":95,"to":22,"twin":21,"wire_ref":null},{"edge":41,"face":15,"from":14,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Forward"},"id":95,"loop_ref":15,"next":94,"prev":92,"to":21,"twin":55,"wire_ref":null},{"edge":48,"face":6,"from":32,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Reverse"},"id":96,"loop_ref":16,"next":96,"prev":96,"to":32,"twin":97,"wire_ref":null},{"edge":48,"face":16,"from":32,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Forward"},"id":97,"loop_ref":17,"next":97,"prev":97,"to":32,"twin":96,"wire_ref":null},{"edge":49,"face":8,"from":33,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Forward"},"id":98,"loop_ref":18,"next":98,"prev":98,"to":33,"twin":99,"wire_ref":null},{"edge":49,"face":16,"from":33,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Reverse"},"id":99,"loop_ref":19,"next":99,"prev":99,"to":33,"twin":98,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":24},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":36},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":44},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":52},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":60},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":64},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":72},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":80},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":84},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":88},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":92},{"face_ref":6,"id":16,"is_hole":true,"start_halfedge":96},{"face_ref":16,"id":17,"is_hole":false,"start_halfedge":97},{"face_ref":8,"id":18,"is_hole":true,"start_halfedge":98},{"face_ref":16,"id":19,"is_hole":true,"start_halfedge":99}],"shells":[{"faces":[0,11,10,9,8,7,6,5,4,3,15,12,1,13,14,2,16],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":0,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.598076211353316,0.0,1.5],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[2.791057147390573,0.0,1.0999999999999992],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":3,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":4,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":5,"position":[2.4657656011875906,0.0,1.1000000000000003],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[2.244994432064365,0.0,1.4999999999999998],"tolerance":6.3e-8},{"id":8,"outgoing_halfedge":11,"position":[2.244994432064365,1.0,1.4999999999999998],"tolerance":6.3e-8},{"id":9,"outgoing_halfedge":8,"position":[2.4657656011875906,1.0,1.1000000000000005],"tolerance":6.3e-8},{"id":10,"outgoing_halfedge":9,"position":[2.7910571473905725,1.0,1.1],"tolerance":6.3e-8},{"id":11,"outgoing_halfedge":10,"position":[2.598076211353316,1.0,1.5],"tolerance":6.3e-8},{"id":12,"outgoing_halfedge":15,"position":[2.244994432064365,1.5,1.5],"tolerance":6.3e-8},{"id":13,"outgoing_halfedge":12,"position":[2.598076211353316,1.5,1.5],"tolerance":6.3e-8},{"id":14,"outgoing_halfedge":13,"position":[2.791057147390573,1.5,1.0999999999999996],"tolerance":6.3e-8},{"id":15,"outgoing_halfedge":14,"position":[2.465765601187591,1.5,1.1],"tolerance":6.3e-8},{"id":16,"outgoing_halfedge":23,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":17,"outgoing_halfedge":16,"position":[2.244994432064365,3.0,1.4999999999999998],"tolerance":6.3e-8},{"id":18,"outgoing_halfedge":17,"position":[2.4657656011875906,3.0,1.1000000000000005],"tolerance":6.3e-8},{"id":19,"outgoing_halfedge":18,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":20,"outgoing_halfedge":19,"position":[2.0901201280414963,3.0,-2.152068272698568],"tolerance":6.3e-8},{"id":21,"outgoing_halfedge":20,"position":[2.791057147390573,3.0,1.0999999999999992],"tolerance":6.3e-8},{"id":22,"outgoing_halfedge":21,"position":[2.598076211353316,3.0,1.5],"tolerance":6.3e-8},{"id":23,"outgoing_halfedge":22,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8},{"id":24,"outgoing_halfedge":29,"position":[1.8811081152373468,1.5,1.9368614454287116],"tolerance":6.3e-8},{"id":25,"outgoing_halfedge":30,"position":[1.8811081152373468,1.0,1.9368614454287116],"tolerance":6.3e-8},{"id":26,"outgoing_halfedge":37,"position":[1.8811081152373468,1.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":27,"outgoing_halfedge":38,"position":[1.8811081152373468,1.5,-1.9368614454287116],"tolerance":6.3e-8},{"id":28,"outgoing_halfedge":45,"position":[2.0901201280414963,1.0,-2.152068272698568],"tolerance":6.3e-8},{"id":29,"outgoing_halfedge":46,"position":[2.0901201280414963,1.5,-2.152068272698568],"tolerance":6.3e-8},{"id":30,"outgoing_halfedge":65,"position":[2.0901201280414963,1.0,2.1520682726985685],"tolerance":6.3e-8},{"id":31,"outgoing_halfedge":66,"position":[2.0901201280414963,1.5,2.1520682726985685],"tolerance":6.3e-8},{"id":32,"outgoing_halfedge":96,"position":[2.682255636269859,1.1069411008145305,0.30903834988326967],"tolerance":6.3e-8},{"id":33,"outgoing_halfedge":98,"position":[2.990025593501361,1.0638199343388153,0.244431892777589],"tolerance":6.3e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.reverse.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.reverse.json index ec4e2a3a..d3e6aeef 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.reverse.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/staged.mixed-curved-openings.reverse.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.65,1.5,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.4]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[-0.0,-1.0,-0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"}]},"id":"round-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":6.3e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3999999999999999,"lo":0.0}},"halfedge":1,"id":2,"tolerance":6.3e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.4,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.65,1.5,-0.5],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":2,"position":[3.05,1.5,-0.5],"tolerance":6.3e-8}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.5,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.5,1.1],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"rectangular-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":8,"id":2,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":2,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":15,"id":4,"tolerance":6.3e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":6.3e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":10,"id":6,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":13,"id":7,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":7,"id":9,"tolerance":6.3e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":10,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":6.3e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.2,1.0,1.1],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":3,"position":[3.2,1.0,1.1],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.2,1.5,1.1],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[3.2,1.5,1.1],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.2,1.0,1.5],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[3.2,1.0,1.5],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":7,"position":[2.2,1.5,1.5],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[3.2,1.5,1.5],"tolerance":6.3e-8}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_planar_cutters","subtract_vertical_arc_extrusion","generic_two_sided_cutter_band_subtraction"],"host":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,-2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]}],"intersections":[],"pcurves":[{"direction":[-0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,2.1520682726985685]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,-1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.0901201280414963,0.0,-2.1520682726985685],"x":[-0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,0.0],"z":[-0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,1.9368614454287116],"x":[0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,-0.0],"z":[-0.717356090899523,0.0,0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0}]},"id":"mixed-curved-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":7,"id":0,"tolerance":6.3e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":6.3e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":6,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":1,"id":4,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":6.3e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":5,"id":6,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":2,"id":7,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":4,"id":9,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":3,"id":10,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":6.3e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.8000000233333334,"lo":-0.8000000233333334},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.800000021,"lo":-0.800000021},{"hi":3.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":6,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":5,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":0,"position":[2.0901201280414963,3.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":1,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":2,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":3,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471659,0.0,0.7173560908995223],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.465765601187591,1.0,1.1]},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.598076211353316,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.5]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.7910571473905725,1.5,1.1]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.6967067093471659,0.0,-0.7173560908995223],"kind":"Line","origin":[1.8811081152373468,3.0,-1.9368614454287116]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471652,0.0,-0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,0.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.4999999999999998]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.4657656011875906,0.0,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,-1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,3.0,1.1000000000000005]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,1.5,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,0.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.5,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.598076211353316,0.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,2.1520682726985685]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,3.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,1.5,1.5]},{"definition":0,"kind":"Intersection"},{"definition":1,"kind":"Intersection"}],"intersections":[{"anchors":[{"parameter":0.0,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-2.2370900898141954,0.03225563626985917]},{"parameter":0.028334801114291642,"point":[2.679668824997465,1.1249999843059526,0.3307188962004861],"uv_a":[6.160388449313543,1.12499998425],"uv_b":[-2.2935305273231577,0.029668824997465038]},{"parameter":0.06261555364766803,"point":[2.676489529532718,1.148437485266038,0.35553311839962887],"uv_a":[6.151122836532611,1.148437485234375],"uv_b":[-2.361809801256655,0.02648952953271788]},{"parameter":0.06917300359337525,"point":[2.6758798017644945,1.1531099403349856,0.3600934413561505],"uv_a":[6.1494187979880905,1.15310994033352],"uv_b":[-2.3748679768681527,0.02587980176449456]},{"parameter":0.09472350578879225,"point":[2.673511927131303,1.1718749862698106,0.37727175277559466],"uv_a":[6.142996291169094,1.17187498621875],"uv_b":[-2.4257545571066568,0.0235119271313029]},{"parameter":0.12512878456108087,"point":[2.670736692480739,1.1953124871700322,0.3964410668323627],"uv_a":[6.135822511238574,1.195312487203125],"uv_b":[-2.4863205326425137,0.020736692480739283]},{"parameter":0.14995049847172123,"point":[2.66853225449655,1.2152819057274709,0.4110177693783217],"uv_a":[6.130362338140644,1.2152819057554232],"uv_b":[-2.5357728337336125,0.01853225449655005]},{"parameter":0.15417322142588208,"point":[2.668164456906109,1.2187499882008486,0.41339863435515534],"uv_a":[6.129470076501057,1.2187499881875001],"uv_b":[-2.5441862084349074,0.018164456906109017]},{"parameter":0.18210498285059248,"point":[2.6657958081649715,1.242187489148561,0.4284071768811314],"uv_a":[6.123842549443157,1.2421874891718752],"uv_b":[-2.5998556927074383,0.015795808164971614]},{"parameter":0.2091194781015368,"point":[2.6636312892736353,1.2656249901660308,0.4416654330895639],"uv_a":[6.118867069463013,1.2656249901562502],"uv_b":[-2.6537174838059925,0.013631289273635439]},{"parameter":0.23537113950850322,"point":[2.66167139832315,1.2890624911389978,0.4533269982602597],"uv_a":[6.1144873948445735,1.289062491140625],"uv_b":[-2.7060802629751683,0.011671398323150228]},{"parameter":0.256443011692048,"point":[2.660215662637239,1.3083039602163389,0.46179284131799114],"uv_a":[6.111305878293199,1.308303960231183],"uv_b":[-2.7481264156909653,0.010215662637238943]},{"parameter":0.2609875710109817,"point":[2.6599165875972526,1.3124999921208964,0.4635124022444197],"uv_a":[6.1106594428997605,1.312499992125],"uv_b":[-2.7571958620866104,0.009916587597252668]},{"parameter":0.28607223779480606,"point":[2.6583672632416975,1.33593749309167,0.47231715379922057],"uv_a":[6.107348320847363,1.335937493109375],"uv_b":[-2.8072746448894756,0.008367263241697565]},{"parameter":0.3107171775011209,"point":[2.657023784686102,1.3593749940794733,0.4798172648614164],"uv_a":[6.104526287239927,1.3593749940937498],"uv_b":[-2.8564962009681647,0.007023784686102097]},{"parameter":0.33500186015188027,"point":[2.6558864643186353,1.3828124950733056,0.4860731309880169],"uv_a":[6.102171320575353,1.3828124950781249],"uv_b":[-2.9050170325986295,0.005886464318635376]},{"parameter":0.3589972392979255,"point":[2.654955567088826,1.4062499960645936,0.4911323006820845],"uv_a":[6.100266097951611,1.4062499960625],"uv_b":[-2.9529762594057267,0.004955567088825941]},{"parameter":0.38276790371366365,"point":[2.654231310219106,1.429687497041538,0.4950314655552374],"uv_a":[6.098797261305364,1.429687497046875],"uv_b":[-3.000499988146808,0.004231310219106277]},{"parameter":0.40637377755047316,"point":[2.6537138628622183,1.4531249980248027,0.49779788480974135],"uv_a":[6.097754892221692,1.45312499803125],"uv_b":[-3.0477047745014545,0.00371386286221842]},{"parameter":0.4298715140080698,"point":[2.6534033459790627,1.4765624990156134,0.4994503814668287],"uv_a":[6.0971321448404385,1.476562499015625],"uv_b":[-3.0947004684855486,0.0034033459790627774]},{"parameter":0.45331568701695135,"point":[2.653299832265033,1.5,0.5000000000511745],"uv_a":[6.096925003564456,1.5],"uv_b":[-3.141592653589793,0.0032998322650330536]},{"parameter":0.4767598600258329,"point":[2.6534033459790627,1.5234375009843866,0.4994503814668287],"uv_a":[6.0971321448404385,1.523437500984375],"uv_b":[-3.1884848386940376,0.0034033459790627774]},{"parameter":0.5002575964834295,"point":[2.6537138628622183,1.5468750019751973,0.49779788480974135],"uv_a":[6.097754892221692,1.54687500196875],"uv_b":[-3.2354805326781317,0.00371386286221842]},{"parameter":0.523863470320239,"point":[2.654231310219106,1.570312502958462,0.4950314655552374],"uv_a":[6.098797261305364,1.570312502953125],"uv_b":[-3.2826853190327783,0.004231310219106277]},{"parameter":0.5476341347359772,"point":[2.654955567088826,1.5937500039354064,0.4911323006820845],"uv_a":[6.100266097951611,1.5937500039375],"uv_b":[-3.3302090477738595,0.004955567088825941]},{"parameter":0.5716295138820224,"point":[2.6558864643186353,1.6171875049266944,0.4860731309880169],"uv_a":[6.102171320575353,1.6171875049218751],"uv_b":[-3.3781682745809567,0.005886464318635376]},{"parameter":0.5959141965327819,"point":[2.657023784686102,1.6406250059205267,0.4798172648614164],"uv_a":[6.104526287239927,1.6406250059062502],"uv_b":[-3.4266891062114215,0.007023784686102097]},{"parameter":0.6205591362390966,"point":[2.6583672632416975,1.66406250690833,0.47231715379922057],"uv_a":[6.107348320847363,1.664062506890625],"uv_b":[-3.4759106622901106,0.008367263241697565]},{"parameter":0.645643803022921,"point":[2.6599165875972526,1.6875000078791036,0.4635124022444197],"uv_a":[6.1106594428997605,1.687500007875],"uv_b":[-3.525989445092976,0.009916587597252668]},{"parameter":0.6501883623418547,"point":[2.660215662637239,1.6916960397836611,0.46179284131799114],"uv_a":[6.111305878293199,1.691696039768817],"uv_b":[-3.535058891488621,0.010215662637238943]},{"parameter":0.6712602345253995,"point":[2.66167139832315,1.7109375088610022,0.4533269982602597],"uv_a":[6.1144873948445735,1.710937508859375],"uv_b":[-3.577105044204418,0.011671398323150228]},{"parameter":0.697511895932366,"point":[2.6636312892736353,1.7343750098339692,0.4416654330895639],"uv_a":[6.118867069463013,1.7343750098437498],"uv_b":[-3.6294678233735937,0.013631289273635439]},{"parameter":0.7245263911833103,"point":[2.6657958081649715,1.757812510851439,0.4284071768811314],"uv_a":[6.123842549443157,1.7578125108281248],"uv_b":[-3.683329614472148,0.015795808164971614]},{"parameter":0.7524581526080207,"point":[2.668164456906109,1.7812500117991514,0.41339863435515534],"uv_a":[6.129470076501057,1.7812500118124999],"uv_b":[-3.738999098744679,0.018164456906109017]},{"parameter":0.7566808755621816,"point":[2.66853225449655,1.7847180942725291,0.4110177693783217],"uv_a":[6.130362338140644,1.7847180942445768],"uv_b":[-3.7474124734459737,0.01853225449655005]},{"parameter":0.7815025894728219,"point":[2.670736692480739,1.8046875128299678,0.3964410668323627],"uv_a":[6.135822511238574,1.804687512796875],"uv_b":[-3.7968647745370725,0.020736692480739283]},{"parameter":0.8119078682451105,"point":[2.673511927131303,1.8281250137301894,0.37727175277559466],"uv_a":[6.142996291169094,1.82812501378125],"uv_b":[-3.8574307500729295,0.0235119271313029]},{"parameter":0.8374583704405275,"point":[2.6758798017644945,1.8468900596650144,0.3600934413561505],"uv_a":[6.1494187979880905,1.84689005966648],"uv_b":[-3.9083173303114336,0.02587980176449456]},{"parameter":0.8440158203862347,"point":[2.676489529532718,1.851562514733962,0.35553311839962887],"uv_a":[6.151122836532611,1.851562514765625],"uv_b":[-3.9213755059229314,0.02648952953271788]},{"parameter":0.878296572919611,"point":[2.679668824997465,1.8750000156940474,0.3307188962004861],"uv_a":[6.160388449313543,1.87500001575],"uv_b":[-3.9896547798564286,0.029668824997465038]},{"parameter":0.9066313740339027,"point":[2.682255636269859,1.8930588992139792,0.309038349905685],"uv_a":[6.168475257835536,1.8930588991854695],"uv_b":[-4.046095217365391,0.03225563626985917]},{"parameter":0.9154681118685938,"point":[2.6830490965935136,1.8984375167303162,0.3020720862093555],"uv_a":[6.171072038485683,1.898437516734375],"uv_b":[-4.063697530428579,0.03304909659351374]},{"parameter":0.9566760112783708,"point":[2.686629585655327,1.921875017694837,0.2683681603195926],"uv_a":[6.183625297356484,1.92187501771875],"uv_b":[-4.145824715609436,0.036629585655326924]},{"parameter":0.9690637587096833,"point":[2.6876574427069433,1.9283719520199973,0.2578710349665264],"uv_a":[6.187531717682981,1.9283719519789853],"uv_b":[-4.170515405258614,0.03765744270694338]},{"parameter":1.004062580127355,"point":[2.6904094928695583,1.9453125187070932,0.22736921664616086],"uv_a":[6.198874637593571,1.9453125187031248],"uv_b":[-4.240310477201132,0.04040949286955842]},{"parameter":1.0271667910844,"point":[2.6920832594763313,1.9553155784149696,0.20661007731490855],"uv_a":[6.206588177530428,1.9553155784108087],"uv_b":[-4.286401564583248,0.0420832594763314]},{"parameter":1.0625178429302367,"point":[2.6943879789281096,1.9687500197040324,0.1739925832035218],"uv_a":[6.218698924623721,1.9687500196874999],"uv_b":[-4.35696789203586,0.04438797892810964]},{"parameter":1.0823752028069469,"point":[2.6955314793972236,1.975278819574291,0.15527409180585766],"uv_a":[6.225644637377873,1.9752788195002098],"uv_b":[-4.396619305311677,0.045531479397223684]},{"parameter":1.1356481782814714,"point":[2.6980008502910633,1.9890895502642703,0.10388172037675547],"uv_a":[6.2447010972253185,1.9890895502702768],"uv_b":[-4.503101029766185,0.04800085029106338]},{"parameter":1.1517975554941897,"point":[2.698564165559826,1.9921875207400295,0.08804228733141027],"uv_a":[6.250571271133383,1.9921875206718749],"uv_b":[-4.535381530439569,0.04856416555982612]},{"parameter":1.1877571590697558,"point":[2.6994904754362534,1.99724121612939,0.05245162560341963],"uv_a":[6.263757557072764,1.9972412161754107],"uv_b":[-4.6072923654263125,0.04949047543625351]},{"parameter":1.2392826767807936,"point":[2.6999998138937857,1.9999989950868042,0.0010024836771621234],"uv_a":[6.282814016920209,1.999998995148141],"uv_b":[-4.710384011687316,0.04999981389378583]},{"parameter":1.2907975115920034,"point":[2.6995286807036782,1.9974485882753887,-0.05044702228975368],"uv_a":[6.301870476767655,1.9974485883102902],"uv_b":[-4.813454990847523,0.04952868070367833]},{"parameter":1.3287713593431787,"point":[2.6985641655431207,1.9921875206956527,-0.08804228783551027],"uv_a":[6.315799343415534,1.9921875206718749],"uv_b":[-4.889396431337886,0.04856416554312082]},{"parameter":1.3428722316668074,"point":[2.698077246952141,1.9895108073171726,-0.10187820905755031],"uv_a":[6.3209269366151,1.989510807279073],"uv_b":[-4.917582290131343,0.048077246952141106]},{"parameter":1.3960865449589484,"point":[2.6956460397094473,1.9759281157955804,-0.153272399989274],"uv_a":[6.339983396462546,1.9759281157986295],"uv_b":[-5.023949920612639,0.04564603970944736]},{"parameter":1.4180509198041897,"point":[2.694387978944502,1.9687500197454413,-0.17399258296503345],"uv_a":[6.347671689641234,1.9687500196874999],"uv_b":[-5.0678100682575336,0.044387978944502304]},{"parameter":1.45120479941553,"point":[2.6922359418385375,1.956217455224096,-0.20461093197499977],"uv_a":[6.359039856309991,1.956217455164631],"uv_b":[-5.133990066703966,0.04223594183853763]},{"parameter":1.4765068365529088,"point":[2.690409492858698,1.945312518681071,-0.227369216761379],"uv_a":[6.367495976813366,1.9453125187031248],"uv_b":[-5.184467483797146,0.040409492858698215]},{"parameter":1.5091728293897624,"point":[2.687848191674414,1.929567109430189,-0.2558751619620383],"uv_a":[6.378096316157436,1.9295671094416216],"uv_b":[-5.24960984875082,0.037848191674414]},{"parameter":1.5238945235008194,"point":[2.6866295856806124,1.921875017752155,-0.2683681601029221],"uv_a":[6.38274531690847,1.92187501771875],"uv_b":[-5.278953244732782,0.036629585680612475]},{"parameter":1.5651024229164958,"point":[2.683049096621975,1.898437516791168,-0.3020720860026923],"uv_a":[6.39529857577927,1.898437516734375],"uv_b":[-5.361080429937905,0.03304909662197497]},{"parameter":1.5714001120926695,"point":[2.682484382574458,1.8946168557621426,-0.3070464740359601],"uv_a":[6.397152776004882,1.8946168558170062],"uv_b":[-5.373625150412406,0.03248438257445807]},{"parameter":1.6022729373260531,"point":[2.679668825028625,1.8750000157566713,-0.3307188960032387],"uv_a":[6.405982164951411,1.87500001575],"uv_b":[-5.4351231805342355,0.029668825028625]},{"parameter":1.636553689865318,"point":[2.676489529566215,1.851562514797001,-0.3555331182112076],"uv_a":[6.415247777732344,1.851562514765625],"uv_b":[-5.50340245449183,0.026489529566215086]},{"parameter":1.6402429620635373,"point":[2.676146462339821,1.8489410950732177,-0.3581062860764056],"uv_a":[6.416209235852327,1.8489410950441387],"uv_b":[-5.5107490441552915,0.026146462339820875]},{"parameter":1.6686606523699568,"point":[2.6735119271668495,1.8281250137925558,-0.37727175259540324],"uv_a":[6.423374323095858,1.82812501378125],"uv_b":[-5.567347210365832,0.023511927166849578]},{"parameter":1.6990659313877927,"point":[2.6707366924618046,1.8046875127991515,-0.39644106691982683],"uv_a":[6.430548103168361,1.804687512796875],"uv_b":[-5.6279131863877705,0.02073669246180465]},{"parameter":1.720412352146336,"point":[2.6688367325081037,1.7875578286620981,-0.40903605611156013],"uv_a":[6.435265695699773,1.7875578286759928],"uv_b":[-5.670439788281108,0.018836732508103804]},{"parameter":1.7281112220715473,"point":[2.668164456886363,1.781250011769516,-0.41339863443903974],"uv_a":[6.436900537905881,1.7812500118124999],"uv_b":[-5.685778862168076,0.018164456886363034]},{"parameter":1.7560429834932776,"point":[2.665795808144511,1.7578125108233147,-0.42840717696171626],"uv_a":[6.442528064963776,1.7578125108281248],"uv_b":[-5.7414483464285295,0.015795808144511092]},{"parameter":1.7830574787412532,"point":[2.6636312892525402,1.7343750098076303,-0.4416654331671527],"uv_a":[6.447503544943923,1.7343750098437498],"uv_b":[-5.795310137515057,0.013631289252540313]},{"parameter":1.8093091400611427,"point":[2.661671398333681,1.7109375088728267,-0.4533269982238437],"uv_a":[6.4518832194913704,1.710937508859375],"uv_b":[-5.847672916512794,0.011671398333680916]},{"parameter":1.8252799228484844,"point":[2.6605578475175835,1.6963875252620246,-0.45981728976936054],"uv_a":[6.454322155547218,1.6963875252814207],"uv_b":[-5.879538094132449,0.010557847517583596]},{"parameter":1.834926323041138,"point":[2.6599165875751147,1.6875000078570217,-0.46351240231687274],"uv_a":[6.455711171507174,1.687500007875],"uv_b":[-5.898788515771685,0.009916587575114821]},{"parameter":1.8600109898219923,"point":[2.658367263219139,1.6640625068886525,-0.4723171538695391],"uv_a":[6.459022293559571,1.664062506890625],"uv_b":[-5.948867298562591,0.008367263219139165]},{"parameter":1.884655929525338,"point":[2.657023784663185,1.640625005903401,-0.4798172649298883],"uv_a":[6.461844327167008,1.6406250059062502],"uv_b":[-5.998088854629342,0.007023784663184873]},{"parameter":1.908940612173128,"point":[2.6558864642954187,1.617187504912243,-0.48607313105492644],"uv_a":[6.464199293831582,1.6171875049218751],"uv_b":[-6.046609686247884,0.005886464295418836]},{"parameter":1.9329359913162028,"point":[2.654955567065369,1.5937500039237296,-0.49113230074771436],"uv_a":[6.466104516455323,1.5937500039375],"uv_b":[-6.09456891304307,0.004955567065369149]},{"parameter":1.956706655728973,"point":[2.654231310195462,1.5703125029496365,-0.4950314656198781],"uv_a":[6.467573353101572,1.570312502953125],"uv_b":[-6.142092641772257,0.004231310195462079]},{"parameter":1.980312529562813,"point":[2.653713862838442,1.546875001969282,-0.49779788487367427],"uv_a":[6.468615722185245,1.54687500196875],"uv_b":[-6.1892974281150135,0.0037138628384418837]},{"parameter":2.0038102660059347,"point":[2.6534033459906636,1.5234375009858294,-0.49945038143594533],"uv_a":[6.469238469495507,1.523437500984375],"uv_b":[-6.236293122069564,0.00340334599066372]},{"parameter":2.0272544390138956,"point":[2.6532998323121433,1.5,-0.49999999992617605],"uv_a":[6.469445610700496,1.5],"uv_b":[-6.283185307179586,0.0032998323121433693]},{"parameter":2.0506986120218564,"point":[2.6534033459906636,1.4765624990141706,-0.49945038143594533],"uv_a":[6.469238469495507,1.476562499015625],"uv_b":[-6.330077492289608,0.00340334599066372]},{"parameter":2.0741963484649784,"point":[2.653713862838442,1.453124998030718,-0.49779788487367427],"uv_a":[6.468615722185245,1.45312499803125],"uv_b":[-6.377073186244159,0.0037138628384418837]},{"parameter":2.0978022222988186,"point":[2.654231310195462,1.4296874970503635,-0.4950314656198781],"uv_a":[6.467573353101572,1.429687497046875],"uv_b":[-6.424277972586916,0.004231310195462079]},{"parameter":2.1215728867115886,"point":[2.654955567065369,1.4062499960762704,-0.49113230074771436],"uv_a":[6.466104516455323,1.4062499960625],"uv_b":[-6.471801701316102,0.004955567065369149]},{"parameter":2.1455682658546635,"point":[2.6558864642954187,1.382812495087757,-0.48607313105492644],"uv_a":[6.464199293831582,1.3828124950781249],"uv_b":[-6.519760928111288,0.005886464295418836]},{"parameter":2.1698529485024536,"point":[2.657023784663185,1.359374994096599,-0.4798172649298883],"uv_a":[6.461844327167008,1.3593749940937498],"uv_b":[-6.568281759729831,0.007023784663184873]},{"parameter":2.1944978882057993,"point":[2.658367263219139,1.3359374931113475,-0.4723171538695391],"uv_a":[6.459022293559571,1.335937493109375],"uv_b":[-6.617503315796581,0.008367263219139165]},{"parameter":2.219582554986654,"point":[2.6599165875751147,1.3124999921429783,-0.46351240231687274],"uv_a":[6.455711171507174,1.312499992125],"uv_b":[-6.667582098587488,0.009916587575114821]},{"parameter":2.2292289551793076,"point":[2.6605578475175835,1.3036124747379754,-0.45981728976936054],"uv_a":[6.454322155547218,1.3036124747185793],"uv_b":[-6.686832520226724,0.010557847517583596]},{"parameter":2.245199737966649,"point":[2.661671398333681,1.2890624911271733,-0.4533269982238437],"uv_a":[6.4518832194913704,1.289062491140625],"uv_b":[-6.718697697846379,0.011671398333680916]},{"parameter":2.2714513992865384,"point":[2.6636312892525402,1.2656249901923697,-0.4416654331671527],"uv_a":[6.447503544943923,1.2656249901562502],"uv_b":[-6.771060476844116,0.013631289252540313]},{"parameter":2.298465894534514,"point":[2.665795808144511,1.2421874891766853,-0.42840717696171626],"uv_a":[6.442528064963776,1.2421874891718752],"uv_b":[-6.824922267930643,0.015795808144511092]},{"parameter":2.3263976559562445,"point":[2.668164456886363,1.218749988230484,-0.41339863443903974],"uv_a":[6.436900537905881,1.2187499881875001],"uv_b":[-6.880591752191097,0.018164456886363034]},{"parameter":2.334096525881456,"point":[2.6688367325081037,1.2124421713379019,-0.40903605611156013],"uv_a":[6.435265695699773,1.2124421713240072],"uv_b":[-6.8959308260780645,0.018836732508103804]},{"parameter":2.3554429466399993,"point":[2.6707366924618046,1.1953124872008485,-0.39644106691982683],"uv_a":[6.430548103168361,1.195312487203125],"uv_b":[-6.938457427971402,0.02073669246180465]},{"parameter":2.3858482256578353,"point":[2.6735119271668495,1.1718749862074442,-0.37727175259540324],"uv_a":[6.423374323095858,1.17187498621875],"uv_b":[-6.99902340399334,0.023511927166849578]},{"parameter":2.4142659159642545,"point":[2.676146462339821,1.1510589049267823,-0.3581062860764056],"uv_a":[6.416209235852327,1.1510589049558613],"uv_b":[-7.055621570203881,0.026146462339820875]},{"parameter":2.4179551881624737,"point":[2.676489529566215,1.148437485202999,-0.3555331182112076],"uv_a":[6.415247777732344,1.148437485234375],"uv_b":[-7.062968159867342,0.026489529566215086]},{"parameter":2.4522359407017382,"point":[2.679668825028625,1.1249999842433287,-0.3307188960032387],"uv_a":[6.405982164951411,1.12499998425],"uv_b":[-7.131247433824937,0.029668825028625]},{"parameter":2.483108765935122,"point":[2.682484382574458,1.1053831442378574,-0.3070464740359601],"uv_a":[6.397152776004882,1.1053831441829938],"uv_b":[-7.192745463946767,0.03248438257445807]},{"parameter":2.4894064551112955,"point":[2.683049096621975,1.101562483208832,-0.3020720860026923],"uv_a":[6.39529857577927,1.101562483265625],"uv_b":[-7.205290184421267,0.03304909662197497]},{"parameter":2.5306143545269717,"point":[2.6866295856806124,1.078124982247845,-0.2683681601029221],"uv_a":[6.38274531690847,1.07812498228125],"uv_b":[-7.28741736962639,0.036629585680612475]},{"parameter":2.545336048638029,"point":[2.687848191674414,1.070432890569811,-0.2558751619620383],"uv_a":[6.378096316157436,1.0704328905583784],"uv_b":[-7.316760765608352,0.037848191674414]},{"parameter":2.5780020414748828,"point":[2.690409492858698,1.0546874813189289,-0.22736921676137894],"uv_a":[6.367495976813366,1.054687481296875],"uv_b":[-7.381903130562026,0.040409492858698215]},{"parameter":2.6033040786122617,"point":[2.6922359418385375,1.043782544775904,-0.20461093197499977],"uv_a":[6.359039856309991,1.043782544835369],"uv_b":[-7.432380547655207,0.04223594183853763]},{"parameter":2.636457958223602,"point":[2.694387978944502,1.0312499802545585,-0.17399258296503345],"uv_a":[6.347671689641234,1.0312499803125],"uv_b":[-7.498560546101639,0.044387978944502304]},{"parameter":2.658422333068843,"point":[2.6956460397094473,1.0240718842044194,-0.15327239998927394],"uv_a":[6.339983396462546,1.02407188420137],"uv_b":[-7.542420693746534,0.04564603970944736]},{"parameter":2.711636646360984,"point":[2.698077246952141,1.0104891926828272,-0.10187820905755025],"uv_a":[6.3209269366151,1.0104891927209265],"uv_b":[-7.648788324227829,0.048077246952141106]},{"parameter":2.7257375186846122,"point":[2.6985641655431207,1.007812479304347,-0.08804228783551021],"uv_a":[6.315799343415534,1.007812479328125],"uv_b":[-7.6769741830212865,0.04856416554312082]},{"parameter":2.7637113664357873,"point":[2.6995286807036782,1.0025514117246113,-0.05044702228975368],"uv_a":[6.301870476767655,1.0025514116897098],"uv_b":[-7.752915623511649,0.04952868070367833]},{"parameter":2.8152262012469973,"point":[2.6999998138937857,1.0000010049131958,0.0010024836771621234],"uv_a":[6.282814016920209,1.000001004851859],"uv_b":[-7.855986602671856,0.04999981389378583]},{"parameter":2.866751718958035,"point":[2.6994904754362534,1.00275878387061,0.05245162560341963],"uv_a":[6.263757557072764,1.0027587838245893],"uv_b":[-7.95907824893286,0.04949047543625351]},{"parameter":2.902711322533601,"point":[2.698564165559826,1.0078124792599703,0.08804228733141027],"uv_a":[6.250571271133383,1.007812479328125],"uv_b":[-8.030989083919604,0.04856416555982612]},{"parameter":2.9188606997463196,"point":[2.6980008502910633,1.0109104497357295,0.10388172037675542],"uv_a":[6.2447010972253185,1.0109104497297228],"uv_b":[-8.063269584592987,0.04800085029106338]},{"parameter":2.972133675220844,"point":[2.6955314793972236,1.0247211804257086,0.1552740918058576],"uv_a":[6.225644637377873,1.0247211804997898],"uv_b":[-8.169751309047495,0.045531479397223684]},{"parameter":2.9919910350975543,"point":[2.6943879789281096,1.0312499802959674,0.17399258320352173],"uv_a":[6.218698924623721,1.0312499803125],"uv_b":[-8.209402722323311,0.04438797892810964]},{"parameter":3.027342086943391,"point":[2.6920832594763313,1.0446844215850304,0.20661007731490855],"uv_a":[6.206588177530428,1.0446844215891913],"uv_b":[-8.279969049775923,0.0420832594763314]},{"parameter":3.050446297900436,"point":[2.6904094928695583,1.0546874812929066,0.22736921664616086],"uv_a":[6.198874637593571,1.054687481296875],"uv_b":[-8.326060137158041,0.04040949286955842]},{"parameter":3.085445119318108,"point":[2.6876574427069433,1.0716280479800027,0.2578710349665264],"uv_a":[6.187531717682981,1.0716280480210147],"uv_b":[-8.395855209100558,0.03765744270694338]},{"parameter":3.09783286674942,"point":[2.686629585655327,1.078124982305163,0.2683681603195926],"uv_a":[6.183625297356484,1.07812498228125],"uv_b":[-8.420545898749737,0.036629585655326924]},{"parameter":3.139040766159197,"point":[2.6830490965935136,1.1015624832696838,0.3020720862093555],"uv_a":[6.171072038485683,1.101562483265625],"uv_b":[-8.502673083930594,0.03304909659351374]},{"parameter":3.147877503993888,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-8.520275396993782,0.03225563626985917]}],"residual_tolerance":1.575e-8,"surfaces":[6,16],"uv_tubes":[[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.124209214796271,"lo":-2.406411402341082},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.1569719794561633,"lo":-2.4983683491236492},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.3356934500336592,"lo":-2.4009843280911483},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.2730948163911444,"lo":-2.527527717583665},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.304622606034943,"lo":-2.6074524837142277},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.387415930460316,"lo":-2.63467743591581},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.5189460843310227,"lo":-2.561012957837497},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.4328472398898455,"lo":-2.7111946612525},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.49213211051033,"lo":-2.761441066003101},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254676408,"lo":-2.81080582131352},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6219879575435745,"lo":-2.832218721122559},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.729987522899675,"lo":-2.7753347548779006},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.65703829648088,"lo":-2.907432210495206},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.7088315327320975,"lo":-2.954939313125543},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537707235,"lo":-3.002058695859559},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098578984435,"lo":-3.048894713019921},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.8579288019235642,"lo":-3.0955474456289704},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415437515,"lo":-3.1421143472107476},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133865332663,"lo":-3.1886918564537368},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982770595,"lo":-3.235377023798282},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.047808283381304,"lo":-3.2822692089025267},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507258495,"lo":-3.32947192064632},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709599688387,"lo":-3.3770948917420713},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.187637861550616,"lo":-3.425256505256022},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594159665,"lo":-3.474086728195151},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.281126611320027,"lo":-3.523730769472351},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940540434,"lo":-3.5743537744474887},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309668438,"lo":-3.6261470106987064},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5078505523016856,"lo":-3.553197784279911},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.450966586057027,"lo":-3.6611973496360117},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.472379485866066,"lo":-3.7341933817119455},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411764854,"lo":-3.791053196669256},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.571990645927086,"lo":-3.8503380672897407},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.722172349342089,"lo":-3.7642392228485635},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.648507871263776,"lo":-3.89576937671927},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.6757328234653586,"lo":-3.9785627011446434},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.755657589595921,"lo":-4.010090490788442},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.882200979088438,"lo":-3.947491857145927},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.784816958055937,"lo":-4.126213327723423},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.876773904838504,"lo":-4.158976092383315},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-4.010890591239015,"lo":-4.098902156554955},{"hi":0.03463601724082288,"lo":0.030668715622550025}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.8994431600668644,"lo":-4.31007908597115},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.096443336311079,"lo":-4.219896784556971},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.030925261373579,"lo":-4.3799006210861675},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.148128302436899,"lo":-4.378583739347481},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.145268909678024,"lo":-4.498100546941084},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.277665065484228,"lo":-4.475922131863309},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.18365585640266,"lo":-4.716064478675202},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.438540028419418,"lo":-4.599942531786336},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.3915598604660815,"lo":-4.7511140353998},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.401109072904305,"lo":-4.916567304209324},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.5042420533669025,"lo":-5.019596949167937},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.661572109866798,"lo":-5.041279312318611},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.833024713750971,"lo":-4.973954007718258},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.704847029168753,"lo":-5.236685181575229},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.936229625322849,"lo":-5.1555303635473235},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.935450071364669,"lo":-5.26635006359683},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-5.033035232517605,"lo":-5.285422317983507},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.054182753889798,"lo":-5.379894578658169},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.190923056786897,"lo":-5.337640036696706},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874322536,"lo":-5.525334800348151},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.335990988988904,"lo":-5.398714591361407},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.250629090168746,"lo":-5.558119240777895},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632619046,"lo":-5.63996100240702},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.488709275164908,"lo":-5.525442223482214},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.39755271173421,"lo":-5.680543542786913},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.446215258321955,"lo":-5.749045138431647},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.542859982601096,"lo":-5.755492992067783},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.639761640507173,"lo":-5.716457009942011},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.574439893647168,"lo":-5.852787314949437},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764255475,"lo":-5.9030337196881115},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579519583,"lo":-5.952398474508268},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.783942561273484,"lo":-5.943268449371758},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.841037250853977,"lo":-5.9372893590501565},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.798630950189871,"lo":-6.049024864144405},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186429091,"lo":-6.096531966762842},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191392256,"lo":-6.14365134948497},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232657513,"lo":-6.190487366633442},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.999521455584698,"lo":-6.237140099230629},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683069086743,"lo":-6.283707000800527},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040205912,"lo":-6.330284509978665},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.14250875184952,"lo":-6.3769696773996305},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936959542,"lo":-6.423861862509653},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104380507,"lo":-6.47106457415326},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613558645,"lo":-6.51868754527243},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.329230515128543,"lo":-6.566849158774475},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247725731,"lo":-6.61567938170166},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719264874202,"lo":-6.6653234229669165},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.4698386475963305,"lo":-6.715946427930081},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.517345750214767,"lo":-6.7677396641693015},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.629081255309016,"lo":-6.725333363505196},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.623102164987414,"lo":-6.782428053085688},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139850905,"lo":-6.87578603483959},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894671061,"lo":-6.932645850103698},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.713583299409735,"lo":-6.991930720712005},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.849913604417162,"lo":-6.926608973852},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.81087762229139,"lo":-7.023510631758077},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325475927525,"lo":-7.120155356037217},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.885827071572259,"lo":-7.168817902624962},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.040928390876958,"lo":-7.077661339194265},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.9264096119521525,"lo":-7.267805981740127},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.0082513735812775,"lo":-7.315741524190426},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.1676560229977655,"lo":-7.230379625370269},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035814011021,"lo":-7.451671740036637},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.228730577662467,"lo":-7.375447557572276},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.186476035701004,"lo":-7.512187860469375},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.280948296375666,"lo":-7.533335381841567},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.300020550762342,"lo":-7.630920542994503},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.410840250811849,"lo":-7.630140989036324},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.329685432783943,"lo":-7.86152358519042},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.5924166066409144,"lo":-7.733345900608201},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.525091302040561,"lo":-7.9047985044923745},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.546773665191235,"lo":-8.06212856099227},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.649803310149848,"lo":-8.165261541454868},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.815256578959373,"lo":-8.174810753893091},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.966428082572836,"lo":-8.127830585939755},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.850306135683972,"lo":-8.38271475795651},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-8.090448482495862,"lo":-8.288705548874944},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.068270067418087,"lo":-8.421101704681147},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.187786875011687,"lo":-8.418242311922278},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.186469993273008,"lo":-8.535445352985592},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.346473829802202,"lo":-8.469927278048093},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-8.256291528388022,"lo":-8.666927454292308},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-8.467468457804218,"lo":-8.555480023120158},{"hi":0.03463601724082288,"lo":0.030668715622550025}]]},{"anchors":[{"parameter":0.0,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-2.081583143507084,0.3400255935013612]},{"parameter":0.027960601948876673,"point":[2.9879723108865743,1.078124982260299,0.2683681601500001],"uv_a":[6.193609511793907,1.07812498228125],"uv_b":[-2.1373605912358022,0.3379723108865744]},{"parameter":0.06566350641898697,"point":[2.985032342842705,1.0994777312845825,0.2993023758744895],"uv_a":[6.183251596162853,1.0994777313317967],"uv_b":[-2.2125545136462232,0.3350323428427049]},{"parameter":0.06914134111203746,"point":[2.984753332289419,1.1015624833168893,0.30207208636967364],"uv_a":[6.182323686679556,1.101562483265625],"uv_b":[-2.2194877770635526,0.33475333228941917]},{"parameter":0.10627874720988245,"point":[2.9817151124528634,1.1249999842435154,0.33071889600382687],"uv_a":[6.172721158909179,1.12499998425],"uv_b":[-2.2935305269455717,0.33171511245286345]},{"parameter":0.138451119986034,"point":[2.9790322399577196,1.1469658845454735,0.3540719041429702],"uv_a":[6.1648856016319,1.1469658845608737],"uv_b":[-2.3576621455573745,0.3290322399577197]},{"parameter":0.14053223592357528,"point":[2.9788582043878766,1.148437485213058,0.3555331182412742],"uv_a":[6.1643950877238165,1.148437485234375],"uv_b":[-2.3618098009586244,0.3288582043878767]},{"parameter":0.1726109003025741,"point":[2.9761831302065995,1.1718749862655384,0.3772717527632513],"uv_a":[6.157094202032266,1.17187498621875],"uv_b":[-2.425754557084009,0.3261831302065996]},{"parameter":0.20299169788098603,"point":[2.973690380710923,1.1953124872401966,0.39644106703150683],"uv_a":[6.150650620365512,1.195312487203125],"uv_b":[-2.486320532996485,0.32369038071092326]},{"parameter":0.22377451989690716,"point":[2.972027308682751,1.2119959662445097,0.4087220039129997],"uv_a":[6.146519607100946,1.2119959662778652],"uv_b":[-2.527755845914946,0.3220273086827512]},{"parameter":0.23201503912643257,"point":[2.971380414731811,1.2187499882135842,0.4133986343912045],"uv_a":[6.1449458871691025,1.2187499881875001],"uv_b":[-2.5441862084965225,0.3213804147318111]},{"parameter":0.2599273283225378,"point":[2.9692536588896807,1.242187489148606,0.42840717688126084],"uv_a":[6.139893056008326,1.2421874891718752],"uv_b":[-2.5998556927076493,0.3192536588896808]},{"parameter":0.2869249884216469,"point":[2.9673105070407413,1.2656249901667684,0.44166543309173684],"uv_a":[6.135426420474502,1.2656249901562502],"uv_b":[-2.6537174838093325,0.3173105070407414]},{"parameter":0.3131624290936812,"point":[2.9655513201809924,1.2890624911441202,0.4533269982760353],"uv_a":[6.131495248472412,1.289062491140625],"uv_b":[-2.7060802629977676,0.3155513201809925]},{"parameter":0.3380244834888475,"point":[2.9640199117830357,1.3118138222699471,0.46323424153891385],"uv_a":[6.128153612569992,1.3118138222613736],"uv_b":[-2.7557150480637147,0.3140199117830358]},{"parameter":0.3387661663716,"point":[2.963976425838612,1.3124999921298923,0.46351240227393675],"uv_a":[6.128059766113292,1.312499992125],"uv_b":[-2.7571958621254273,0.3139764258386122]},{"parameter":0.3638415140017471,"point":[2.9625861179326485,1.3359374931093746,0.47231715386248857],"uv_a":[6.125088483845136,1.335937493109375],"uv_b":[-2.8072746449644437,0.31258611793264857]},{"parameter":0.38847931536185726,"point":[2.961380656429395,1.3593749940954285,0.4798172649252091],"uv_a":[6.122556360574773,1.3593749940937498],"uv_b":[-2.8564962010346706,0.31138065642939505]},{"parameter":0.41275880271272114,"point":[2.9603602671622977,1.3828124950683494,0.48607313096507004],"uv_a":[6.120443514455005,1.3828124950781249],"uv_b":[-2.905017032578237,0.3103602671622978]},{"parameter":0.4367506572602511,"point":[2.9595251415313575,1.4062499960514447,0.4911323006081817],"uv_a":[6.118734302858896,1.4062499960625],"uv_b":[-2.952976259352182,0.3095251415313576]},{"parameter":0.46051916706439316,"point":[2.9588754363665952,1.4296874970565727,0.49503146566535783],"uv_a":[6.117416661523907,1.429687497046875],"uv_b":[-3.0004999882075496,0.3088754363665953]},{"parameter":0.4841239329795401,"point":[2.9584112739474304,1.4531249980307959,0.49779788487451726],"uv_a":[6.1164816319842075,1.45312499803125],"uv_b":[-3.047704774525534,0.3084112739474305]},{"parameter":0.5076212685256527,"point":[2.958132741516926,1.4765624990160457,0.4994503814760793],"uv_a":[6.115923030013848,1.476562499015625],"uv_b":[-3.094700468487279,0.30813274151692616]},{"parameter":0.5310653968754574,"point":[2.958039891529144,1.5,0.5000000000611257],"uv_a":[6.115737227918569,1.5],"uv_b":[-3.141592653589793,0.30803989152914424]},{"parameter":0.5545095252252621,"point":[2.958132741516926,1.5234375009839543,0.4994503814760793],"uv_a":[6.115923030013848,1.523437500984375],"uv_b":[-3.188484838692307,0.30813274151692616]},{"parameter":0.5780068607713746,"point":[2.9584112739474304,1.5468750019692041,0.49779788487451726],"uv_a":[6.1164816319842075,1.54687500196875],"uv_b":[-3.2354805326540523,0.3084112739474305]},{"parameter":0.6016116266865216,"point":[2.9588754363665952,1.5703125029434273,0.49503146566535783],"uv_a":[6.117416661523907,1.570312502953125],"uv_b":[-3.2826853189720366,0.3088754363665953]},{"parameter":0.6253801364906636,"point":[2.9595251415313575,1.5937500039485553,0.4911323006081817],"uv_a":[6.118734302858896,1.5937500039375],"uv_b":[-3.3302090478274042,0.3095251415313576]},{"parameter":0.6493719910381935,"point":[2.9603602671622977,1.6171875049316506,0.48607313096507004],"uv_a":[6.120443514455005,1.6171875049218751],"uv_b":[-3.3781682746013493,0.3103602671622978]},{"parameter":0.6736514783890574,"point":[2.961380656429395,1.6406250059045715,0.4798172649252091],"uv_a":[6.122556360574773,1.6406250059062502],"uv_b":[-3.4266891061449156,0.31138065642939505]},{"parameter":0.6982892797491675,"point":[2.9625861179326485,1.6640625068906254,0.47231715386248857],"uv_a":[6.125088483845136,1.664062506890625],"uv_b":[-3.4759106622151426,0.31258611793264857]},{"parameter":0.7233646273793146,"point":[2.963976425838612,1.6875000078701077,0.46351240227393675],"uv_a":[6.128059766113292,1.687500007875],"uv_b":[-3.525989445054159,0.3139764258386122]},{"parameter":0.7241063102620672,"point":[2.9640199117830357,1.6881861777300529,0.46323424153891385],"uv_a":[6.128153612569992,1.6881861777386264],"uv_b":[-3.5274702591158715,0.3140199117830358]},{"parameter":0.7489683646572335,"point":[2.9655513201809924,1.7109375088558798,0.4533269982760353],"uv_a":[6.131495248472412,1.710937508859375],"uv_b":[-3.5771050441818186,0.3155513201809925]},{"parameter":0.7752058053292677,"point":[2.9673105070407413,1.7343750098332316,0.44166543309173684],"uv_a":[6.135426420474502,1.7343750098437498],"uv_b":[-3.6294678233702538,0.3173105070407414]},{"parameter":0.8022034654283768,"point":[2.9692536588896807,1.757812510851394,0.42840717688126084],"uv_a":[6.139893056008326,1.7578125108281248],"uv_b":[-3.683329614471937,0.3192536588896808]},{"parameter":0.8301157546244821,"point":[2.971380414731811,1.7812500117864158,0.4133986343912045],"uv_a":[6.1449458871691025,1.7812500118124999],"uv_b":[-3.7389990986830637,0.3213804147318111]},{"parameter":0.8383562738540075,"point":[2.972027308682751,1.7880040337554903,0.4087220039129997],"uv_a":[6.146519607100946,1.7880040337221348],"uv_b":[-3.75542946126464,0.3220273086827512]},{"parameter":0.8591390958699285,"point":[2.973690380710923,1.8046875127598034,0.39644106703150683],"uv_a":[6.150650620365512,1.804687512796875],"uv_b":[-3.7968647741831014,0.32369038071092326]},{"parameter":0.8895198934483405,"point":[2.9761831302065995,1.8281250137344616,0.3772717527632513],"uv_a":[6.157094202032266,1.82812501378125],"uv_b":[-3.857430750095577,0.3261831302065996]},{"parameter":0.9215985578273392,"point":[2.9788582043878766,1.851562514786942,0.3555331182412742],"uv_a":[6.1643950877238165,1.851562514765625],"uv_b":[-3.921375506220962,0.3288582043878767]},{"parameter":0.9236796737648805,"point":[2.9790322399577196,1.8530341154545265,0.3540719041429702],"uv_a":[6.1648856016319,1.8530341154391263],"uv_b":[-3.9255231616222117,0.3290322399577197]},{"parameter":0.9558520465410321,"point":[2.9817151124528634,1.8750000157564846,0.33071889600382687],"uv_a":[6.172721158909179,1.87500001575],"uv_b":[-3.9896547802340145,0.33171511245286345]},{"parameter":0.9929894526388771,"point":[2.984753332289419,1.8984375166831107,0.30207208636967364],"uv_a":[6.182323686679556,1.898437516734375],"uv_b":[-4.063697530116034,0.33475333228941917]},{"parameter":0.9964672873319276,"point":[2.985032342842705,1.9005222687154175,0.2993023758744895],"uv_a":[6.183251596162853,1.9005222686682033],"uv_b":[-4.070630793533363,0.3350323428427049]},{"parameter":1.0341701918020378,"point":[2.9879723108865743,1.921875017739701,0.2683681601500001],"uv_a":[6.193609511793907,1.92187501771875],"uv_b":[-4.1458247159437835,0.3379723108865744]},{"parameter":1.0621307937509141,"point":[2.990025593501361,1.9361800657104595,0.24443189280520253],"uv_a":[6.2016175906938065,1.9361800656611843],"uv_b":[-4.201602163672502,0.3400255935013612]},{"parameter":1.081530484277304,"point":[2.99137146463429,1.945312518754148,0.2273692164378188],"uv_a":[6.207322823072767,1.9453125187031248],"uv_b":[-4.240310477615036,0.34137146463429024]},{"parameter":1.1233060883448023,"point":[2.994010307708874,1.962706951180748,0.18947896277030496],"uv_a":[6.21998358522476,1.9627069511839812],"uv_b":[-4.323719007011324,0.3440103077088743]},{"parameter":1.1399563130081112,"point":[2.9949501800369926,1.968750019662461,0.17399258344294688],"uv_a":[6.225155215538505,1.9687500196874999],"uv_b":[-4.356967891558006,0.34495018003699274]},{"parameter":1.1815666960635112,"point":[2.9969851414200517,1.9815806660152426,0.13446212146289366],"uv_a":[6.238349579755713,1.9815806660036719],"uv_b":[-4.440113025616254,0.34698514142005177]},{"parameter":1.229214087928075,"point":[2.998707814310851,1.9921875207229818,0.08804228752506559],"uv_a":[6.253833663689513,1.9921875206718749],"uv_b":[-4.535381530052305,0.3487078143108513]},{"parameter":1.2379835399870236,"point":[2.998949091222668,1.9936553977252123,0.07939992604383014],"uv_a":[6.256715574286667,1.9936553976847358],"uv_b":[-4.552914019133949,0.34894909122266826]},{"parameter":1.293380309955671,"point":[2.999901494675918,1.99940862801749,0.024310948999184546],"uv_a":[6.275081568817621,1.999408627997067],"uv_b":[-4.663747904226072,0.349901494675918]},{"parameter":1.348478677818362,"point":[2.9998420305338556,1.9990513081448087,-0.030786228130472493],"uv_a":[6.2934475633485745,1.9990513081483483],"uv_b":[-4.774000408416548,0.34984203053385565]},{"parameter":1.403955715116119,"point":[2.998770718853752,1.9925706287723952,-0.08587302104395379],"uv_a":[6.311813557879528,1.992570628843767],"uv_b":[-4.884990754064252,0.3487707188537521]},{"parameter":1.4061594509690132,"point":[2.9987078142710573,1.9921875206055155,-0.08804228885943374],"uv_a":[6.312536951121648,1.9921875206718749],"uv_b":[-4.889396433385479,0.34870781427105735]},{"parameter":1.4605334458072101,"point":[2.9966879209893302,1.9797275224690436,-0.1409308489857392],"uv_a":[6.330179552410482,1.9797275224787612],"uv_b":[-4.998122908279489,0.3466879209893303]},{"parameter":1.4954132906747397,"point":[2.9949501800535847,1.9687500197090473,-0.17399258317463864],"uv_a":[6.341215398725307,1.9687500196874999],"uv_b":[-5.067810068675873,0.3449501800535848]},{"parameter":1.519077735033578,"point":[2.9935943394688804,1.9600076838869414,-0.19594114092896384],"uv_a":[6.348545546941436,1.9600076838350269],"uv_b":[-5.115065608224227,0.3435943394688805]},{"parameter":1.5538428470629704,"point":[2.9913714645937475,1.9453125186461344,-0.22736921691606637],"uv_a":[6.359047791464718,1.9453125187031248],"uv_b":[-5.184467484104458,0.34137146459374756]},{"parameter":1.580688630748231,"point":[2.989491017758296,1.932500341259705,-0.25088534185181033],"uv_a":[6.36691154147239,1.932500341212875],"uv_b":[-5.238033575112214,0.33949101775829593]},{"parameter":1.601203330610856,"point":[2.987972310875444,1.92187501771164,-0.26836816025607485],"uv_a":[6.372761102606741,1.92187501771875],"uv_b":[-5.278953245034719,0.3379723108754442]},{"parameter":1.6423813938726104,"point":[2.9847533323182245,1.8984375167516232,-0.3020720861369931],"uv_a":[6.384046927584258,1.898437516734375],"uv_b":[-5.361080430199728,0.3347533323182246]},{"parameter":1.6470218030402053,"point":[2.9843793399091125,1.8956261424212553,-0.30574491900756773],"uv_a":[6.385277536003343,1.8956261424735315],"uv_b":[-5.370331090604577,0.3343793399091126]},{"parameter":1.679521568305571,"point":[2.9817151124391463,1.8750000157258093,-0.330718896100445],"uv_a":[6.39364945549147,1.87500001575],"uv_b":[-5.435123180720872,0.3317151124391464]},{"parameter":1.7137739258950988,"point":[2.9788582043731306,1.8515625147560555,-0.3555331183335919],"uv_a":[6.401975526676833,1.851562514765625],"uv_b":[-5.503402454722163,0.32885820437313074]},{"parameter":1.72091629919211,"point":[2.978261030091669,1.8464661071564765,-0.3605013684048319],"uv_a":[6.403643530534297,1.8464661071772088],"uv_b":[-5.517637304153507,0.32826103009166907]},{"parameter":1.745855408194644,"point":[2.9761831302425756,1.8281250138047276,-0.37727175256023615],"uv_a":[6.409276412231548,1.82812501378125],"uv_b":[-5.567347210301307,0.3261831302425757]},{"parameter":1.776236205779676,"point":[2.973690380748728,1.8046875128283095,-0.3964410668370696],"uv_a":[6.415719993898301,1.804687512796875],"uv_b":[-5.627913186240673,0.32369038074872813]},{"parameter":1.8052570859497412,"point":[2.971380414771232,1.7812500118523045,-0.41339863420470424],"uv_a":[6.421424727094712,1.7812500118124999],"uv_b":[-5.68577886176755,0.321380414771232]},{"parameter":1.808369739931587,"point":[2.971138152013541,1.778678880365249,-0.4151362205890914],"uv_a":[6.422009525065251,1.7786788803689406],"uv_b":[-5.691985295358635,0.32113815201354123]},{"parameter":1.8331704450667723,"point":[2.9692536588719127,1.75781251082419,-0.4284071769592079],"uv_a":[6.426477558392323,1.7578125108281248],"uv_b":[-5.741448346424442,0.3192536588719128]},{"parameter":1.8601681051630032,"point":[2.967310507022423,1.7343750098077526,-0.44166543316679185],"uv_a":[6.430944193926146,1.7343750098437498],"uv_b":[-5.795310137514503,0.31731050702242314]},{"parameter":1.8864055457423028,"point":[2.965551320193207,1.7109375088711614,-0.4533269982289724],"uv_a":[6.434875365859817,1.710937508859375],"uv_b":[-5.847672916520141,0.3155513201932072]},{"parameter":1.9120090455704917,"point":[2.9639764258193875,1.6875000078487399,-0.4635124023440469],"uv_a":[6.438310848287356,1.687500007875],"uv_b":[-5.89878851580742,0.31397642581938756]},{"parameter":1.9290726021117979,"point":[2.963013108223454,1.6716003485187807,-0.4696310471481647],"uv_a":[6.440375519596205,1.6716003485384285],"uv_b":[-5.932862850106976,0.31301310822345396]},{"parameter":1.9370861248056854,"point":[2.9625861179453747,1.6640625069029968,-0.472317153818279],"uv_a":[6.441282130487092,1.664062506890625],"uv_b":[-5.948867298501852,0.31258611794537483]},{"parameter":1.961723926228562,"point":[2.9613806564094936,1.6406250058879954,-0.47981726499148236],"uv_a":[6.443814253825877,1.6406250059062502],"uv_b":[-5.998088854693556,0.31138065640949364]},{"parameter":1.98600341357655,"point":[2.9603602671421374,1.6171875049176623,-0.48607313102983524],"uv_a":[6.445927099945645,1.6171875049218751],"uv_b":[-6.046609686225586,0.3103602671421375]},{"parameter":2.009995268121205,"point":[2.959525141510987,1.5937500039372514,-0.49113230067171487],"uv_a":[6.447636311541753,1.5937500039375],"uv_b":[-6.094568912988007,0.3095251415109872]},{"parameter":2.033763777858961,"point":[2.958875436413802,1.5703125029630696,-0.4950314655214878],"uv_a":[6.448953952739905,1.570312502953125],"uv_b":[-6.142092641717985,0.308875436413802]},{"parameter":2.0573685438247455,"point":[2.9584112739267834,1.5468750019634778,-0.49779788493640886],"uv_a":[6.449888982416442,1.54687500196875],"uv_b":[-6.1892974281383335,0.30841127392678347]},{"parameter":2.0808658793679835,"point":[2.9581327414962093,1.5234375009810819,-0.49945038153756327],"uv_a":[6.450447584386803,1.523437500984375],"uv_b":[-6.236293122088576,0.3081327414962094]},{"parameter":2.1043100077124057,"point":[2.958039891542615,1.5,-0.5000000000212772],"uv_a":[6.450633386413662,1.5],"uv_b":[-6.283185307179586,0.30803989154261524]},{"parameter":2.127754136056828,"point":[2.9581327414962093,1.4765624990189181,-0.49945038153756327],"uv_a":[6.450447584386803,1.476562499015625],"uv_b":[-6.330077492270597,0.3081327414962094]},{"parameter":2.151251471600066,"point":[2.9584112739267834,1.4531249980365222,-0.49779788493640886],"uv_a":[6.449888982416442,1.45312499803125],"uv_b":[-6.377073186220839,0.30841127392678347]},{"parameter":2.1748562375658507,"point":[2.958875436413802,1.4296874970369304,-0.4950314655214878],"uv_a":[6.448953952739905,1.429687497046875],"uv_b":[-6.424277972641187,0.308875436413802]},{"parameter":2.1986247473036062,"point":[2.959525141510987,1.4062499960627486,-0.49113230067171487],"uv_a":[6.447636311541753,1.4062499960625],"uv_b":[-6.471801701371166,0.3095251415109872]},{"parameter":2.2226166018482614,"point":[2.9603602671421374,1.3828124950823377,-0.48607313102983524],"uv_a":[6.445927099945645,1.3828124950781249],"uv_b":[-6.519760928133587,0.3103602671421375]},{"parameter":2.2468960891962495,"point":[2.9613806564094936,1.3593749941120046,-0.47981726499148236],"uv_a":[6.443814253825877,1.3593749940937498],"uv_b":[-6.5682817596656164,0.31138065640949364]},{"parameter":2.271533890619126,"point":[2.9625861179453747,1.3359374930970032,-0.472317153818279],"uv_a":[6.441282130487092,1.335937493109375],"uv_b":[-6.617503315857321,0.31258611794537483]},{"parameter":2.279547413313013,"point":[2.963013108223454,1.3283996514812193,-0.4696310471481647],"uv_a":[6.440375519596205,1.3283996514615715],"uv_b":[-6.6335077642521965,0.31301310822345396]},{"parameter":2.2966109698543193,"point":[2.9639764258193875,1.3124999921512601,-0.4635124023440469],"uv_a":[6.438310848287356,1.312499992125],"uv_b":[-6.667582098551753,0.31397642581938756]},{"parameter":2.322214469682508,"point":[2.965551320193207,1.2890624911288386,-0.4533269982289724],"uv_a":[6.434875365859817,1.289062491140625],"uv_b":[-6.718697697839032,0.3155513201932072]},{"parameter":2.3484519102618076,"point":[2.967310507022423,1.2656249901922474,-0.44166543316679185],"uv_a":[6.430944193926146,1.2656249901562502],"uv_b":[-6.77106047684467,0.31731050702242314]},{"parameter":2.3754495703580383,"point":[2.9692536588719127,1.24218748917581,-0.4284071769592079],"uv_a":[6.426477558392323,1.2421874891718752],"uv_b":[-6.82492226793473,0.3192536588719128]},{"parameter":2.4002502754932236,"point":[2.971138152013541,1.221321119634751,-0.4151362205890914],"uv_a":[6.422009525065251,1.2213211196310594],"uv_b":[-6.874385319000537,0.32113815201354123]},{"parameter":2.4033629294750694,"point":[2.971380414771232,1.2187499881476955,-0.41339863420470424],"uv_a":[6.421424727094712,1.2187499881875001],"uv_b":[-6.880591752591623,0.321380414771232]},{"parameter":2.4323838096451347,"point":[2.973690380748728,1.1953124871716905,-0.3964410668370696],"uv_a":[6.415719993898301,1.195312487203125],"uv_b":[-6.938457428118499,0.32369038074872813]},{"parameter":2.4627646072301665,"point":[2.9761831302425756,1.1718749861952724,-0.37727175256023615],"uv_a":[6.409276412231548,1.17187498621875],"uv_b":[-6.999023404057866,0.3261831302425757]},{"parameter":2.4877037162327005,"point":[2.978261030091669,1.1535338928435235,-0.3605013684048319],"uv_a":[6.403643530534297,1.1535338928227912],"uv_b":[-7.048733310205665,0.32826103009166907]},{"parameter":2.494846089529712,"point":[2.9788582043731306,1.1484374852439445,-0.3555331183335919],"uv_a":[6.401975526676833,1.148437485234375],"uv_b":[-7.062968159637009,0.32885820437313074]},{"parameter":2.5290984471192397,"point":[2.9817151124391463,1.1249999842741907,-0.330718896100445],"uv_a":[6.39364945549147,1.12499998425],"uv_b":[-7.1312474336383005,0.3317151124391464]},{"parameter":2.5615982123846055,"point":[2.9843793399091125,1.1043738575787447,-0.30574491900756773],"uv_a":[6.385277536003343,1.1043738575264685],"uv_b":[-7.196039523754595,0.3343793399091126]},{"parameter":2.5662386215522,"point":[2.9847533323182245,1.1015624832483768,-0.3020720861369931],"uv_a":[6.384046927584258,1.101562483265625],"uv_b":[-7.205290184159445,0.3347533323182246]},{"parameter":2.6074166848139546,"point":[2.987972310875444,1.07812498228836,-0.26836816025607485],"uv_a":[6.372761102606741,1.07812498228125],"uv_b":[-7.287417369324453,0.3379723108754442]},{"parameter":2.6279313846765793,"point":[2.989491017758296,1.067499658740295,-0.25088534185181033],"uv_a":[6.36691154147239,1.067499658787125],"uv_b":[-7.328337039246959,0.33949101775829593]},{"parameter":2.65477716836184,"point":[2.9913714645937475,1.0546874813538654,-0.22736921691606635],"uv_a":[6.359047791464718,1.054687481296875],"uv_b":[-7.381903130254716,0.34137146459374756]},{"parameter":2.6895422803912323,"point":[2.9935943394688804,1.0399923161130586,-0.19594114092896384],"uv_a":[6.348545546941436,1.0399923161649731],"uv_b":[-7.4513050061349455,0.3435943394688805]},{"parameter":2.7132067247500706,"point":[2.9949501800535847,1.0312499802909525,-0.1739925831746386],"uv_a":[6.341215398725307,1.0312499803125],"uv_b":[-7.498560545683301,0.3449501800535848]},{"parameter":2.7480865696176004,"point":[2.9966879209893302,1.020272477530956,-0.14093084898573915],"uv_a":[6.330179552410482,1.0202724775212384],"uv_b":[-7.568247706079684,0.3466879209893303]},{"parameter":2.802460564455797,"point":[2.9987078142710573,1.0078124793944845,-0.08804228885943374],"uv_a":[6.312536951121648,1.007812479328125],"uv_b":[-7.676974180973693,0.34870781427105735]},{"parameter":2.8046643003086915,"point":[2.998770718853752,1.0074293712276043,-0.08587302104395379],"uv_a":[6.311813557879528,1.0074293711562325],"uv_b":[-7.68137986029492,0.3487707188537521]},{"parameter":2.8601413376064486,"point":[2.9998420305338556,1.0009486918551913,-0.030786228130472493],"uv_a":[6.2934475633485745,1.0009486918516517],"uv_b":[-7.792370205942625,0.34984203053385565]},{"parameter":2.9152397054691397,"point":[2.999901494675918,1.00059137198251,0.024310948999184546],"uv_a":[6.275081568817621,1.000591372002933],"uv_b":[-7.902622710133101,0.349901494675918]},{"parameter":2.970636475437787,"point":[2.998949091222668,1.0063446022747877,0.07939992604383014],"uv_a":[6.256715574286667,1.0063446023152642],"uv_b":[-8.013456595225223,0.34894909122266826]},{"parameter":2.9794059274967357,"point":[2.998707814310851,1.007812479277018,0.08804228752506559],"uv_a":[6.253833663689513,1.007812479328125],"uv_b":[-8.030989084306867,0.3487078143108513]},{"parameter":3.0270533193612996,"point":[2.9969851414200517,1.0184193339847571,0.13446212146289355],"uv_a":[6.238349579755713,1.0184193339963277],"uv_b":[-8.126257588742918,0.34698514142005177]},{"parameter":3.0686637024167,"point":[2.9949501800369926,1.031249980337539,0.17399258344294682],"uv_a":[6.225155215538505,1.0312499803125],"uv_b":[-8.209402722801165,0.34495018003699274]},{"parameter":3.085313927080009,"point":[2.994010307708874,1.037293048819252,0.18947896277030496],"uv_a":[6.21998358522476,1.0372930488160188],"uv_b":[-8.242651607347849,0.3440103077088743]},{"parameter":3.127089531147507,"point":[2.99137146463429,1.054687481245852,0.2273692164378188],"uv_a":[6.207322823072767,1.054687481296875],"uv_b":[-8.326060136744136,0.34137146463429024]},{"parameter":3.146489221673897,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-8.36476845068667,0.3400255935013612]}],"residual_tolerance":1.575e-8,"surfaces":[8,16],"uv_tubes":[[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-1.970028248049648,"lo":-2.2489154866932384},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-1.9869727464149602,"lo":-2.3629423584670652},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-2.1986879868115645,"lo":-2.2333543038982113},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.0714022772995144,"lo":-2.44161602670961},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.165267289721966,"lo":-2.48592538278098},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.349366834754875,"lo":-2.370105111761124},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.233920288707855,"lo":-2.5536440693347786},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.3046226052590577,"lo":-2.607452484821436},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.4034499071595623,"lo":-2.6106264717518686},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.494895120751793,"lo":-2.5770469336596755},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.432847240074269,"lo":-2.7111946611299027},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.492132110504283,"lo":-2.761441066012699},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254324622,"lo":-2.810805821374638},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6068106928658734,"lo":-2.854984618195609},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.7527534199402894,"lo":-2.7601574902488526},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.6570382964473946,"lo":-2.9074322106424764},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.70883153282399,"lo":-2.9549393131751245},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537947538,"lo":-3.0020586956653696},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098579030347,"lo":-3.048894712900072},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.857928801641447,"lo":-3.095547445918285},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415571581,"lo":-3.1421143471615025},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133866020433,"lo":-3.18869185641077},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982822514,"lo":-3.235377023794821},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.0478082833847653,"lo":-3.282269208897335},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507688164,"lo":-3.329471920577543},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709600180837,"lo":-3.3770948916080052},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.1876378612613014,"lo":-3.4252565055381394},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594279514,"lo":-3.4740867281492394},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.2811266115142166,"lo":-3.5237307692320483},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940044617,"lo":-3.5743537743555964},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309653711,"lo":-3.6261470107321916},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5230278169307336,"lo":-3.530431887239297},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.4282006889839773,"lo":-3.676374614313713},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.4723794858049484,"lo":-3.734193381747124},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411668873,"lo":-3.7910531966753034},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.5719906460496835,"lo":-3.850338067105317},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.7061383735199107,"lo":-3.788290186427793},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.6725588354277177,"lo":-3.879735400020024},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.67573282235815,"lo":-3.9785627019205285},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.7295412378448076,"lo":-4.049265018471731},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.913080195418462,"lo":-3.9338184724247114},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.797259924398606,"lo":-4.117918017457621},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.8415692804699755,"lo":-4.211783029880073},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-4.049831003281376,"lo":-4.084497320368021},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.920242948712522,"lo":-4.296212560764625},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.034269820486347,"lo":-4.313157059129938},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.124185535787432,"lo":-4.317727105500106},{"hi":0.34406320690014836,"lo":0.3373338512355031}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.073493418822462,"lo":-4.490536065803898},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.257221237917959,"lo":-4.423465660651371},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.19067762344151,"lo":-4.60640329373275},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.249576016744152,"lo":-4.725918538924407},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.500316551889018,"lo":-4.5879789972972365},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.331246248949704,"lo":-4.885415674410317},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.4432428958451196,"lo":-4.9945054167975},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.552019717121139,"lo":-5.106971445359661},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.876179395421798,"lo":-4.898207792027933},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.671943483597459,"lo":-5.21557585806751},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.858748587486723,"lo":-5.207184389468639},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.973298989579164,"lo":-5.2095766873209355},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.976261856463766,"lo":-5.323271235864919},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.077335302088946,"lo":-5.345165757127726},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.156194235267202,"lo":-5.36079258487973},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874704702,"lo":-5.525334800529745},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.342579109390028,"lo":-5.388832411414277},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.240746910371988,"lo":-5.564707360953461},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632718289,"lo":-5.639961002724746},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.474932755859475,"lo":-5.546107003016195},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.4182174918579085,"lo":-5.666767022596906},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.4462152584225745,"lo":-5.749045138119405},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.51218183518692,"lo":-5.801510212821303},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.673365994585379,"lo":-5.704398162540806},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.593059193227021,"lo":-5.840374448556056},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764244321,"lo":-5.903033719694624},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579503226,"lo":-5.952398474531417},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.7454417179455834,"lo":-6.001019714381977},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.830639847208307,"lo":-6.001011518706089},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.900853953317225,"lo":-5.980876195291603},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186118443,"lo":-6.096531967076965},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191629496,"lo":-6.143651349289645},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232700744,"lo":-6.190487366512849},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.99952145552805,"lo":-6.237140099177942},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683068877289,"lo":-6.28370700097903},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040237849,"lo":-6.33028450998906},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.142508751906554,"lo":-6.376969677361608},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936997565,"lo":-6.423861862452618},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104370113,"lo":-6.471064574121323},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613380143,"lo":-6.518687545481884},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.32923051518123,"lo":-6.566849158831123},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247846324,"lo":-6.6156793816584285},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719265069527,"lo":-6.665323422729676},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.469838647282208,"lo":-6.71594642824073},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.58549441906757,"lo":-6.665516661041948},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.565359095653084,"lo":-6.735730767150866},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.5653508999771955,"lo":-6.820928896413589},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139827755,"lo":-6.875786034855946},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894664549,"lo":-6.932645850114851},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.725996165803116,"lo":-6.973311421132151},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.8619724518183665,"lo":-6.8930046197737935},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.764860401537869,"lo":-7.054188779172253},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325476239767,"lo":-7.120155355936598},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.899603591762267,"lo":-7.148153122501264},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.020263611342977,"lo":-7.091437858499697},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.926409611634426,"lo":-7.267805981640883},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.001663253405711,"lo":-7.325623703987184},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.177538202944896,"lo":-7.223791504969144},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035813829428,"lo":-7.45167173965447},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.205578029479442,"lo":-7.41017637909197},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.221204857231445,"lo":-7.48903531227023},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.243099378494256,"lo":-7.590108757895405},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.356793927038235,"lo":-7.593071624780011},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.359186224890534,"lo":-7.707622026872451},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.350794756291665,"lo":-7.894427130761712},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.668162822331239,"lo":-7.6901912189373745},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.459399168999512,"lo":-8.014350897238034},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.571865197561673,"lo":-8.123127718514052},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.6809549399488555,"lo":-8.235124365409469},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.978391617061936,"lo":-8.066054062470155},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.840452075434765,"lo":-8.31679459761502},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.959967320626424,"lo":-8.37569299091766},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.142904953707799,"lo":-8.309149376441216},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.075834548555274,"lo":-8.49287719553671},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.248643508859068,"lo":-8.442185078571738},{"hi":0.34406320690014836,"lo":0.3373338512355031}]]}],"pcurves":[{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[2.0901201280414963,-2.152068272698568]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.465765601187591,-1.1]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.598076211353316,-1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.244994432064365,1.5]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.7910571473905725,1.1]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[-1.0000000000000002,0.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.5]},{"direction":[1.0000000000000002,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.5]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3530817792889511,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.3530817792889511,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3252915462029815,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.32529154620298195,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-4.440892098500626e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"definition":0,"kind":"IntersectionSide","side":"A"},{"definition":0,"kind":"IntersectionSide","side":"B"},{"definition":1,"kind":"IntersectionSide","side":"A"},{"definition":1,"kind":"IntersectionSide","side":"B"}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,-1.9368614454287116],"x":[0.6967067093471659,0.0,-0.7173560908995223],"y":[0.0,1.0,0.0],"z":[0.7173560908995223,-0.0,0.6967067093471659]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.0901201280414963,0.0,2.1520682726985685],"x":[-0.6967067093471652,0.0,-0.717356090899523],"y":[0.0,1.0,0.0],"z":[0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[2.244994432064365,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.7910571473905725,1.0,1.1],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5}]},"id":"batch-staged.mixed-curved-openings.reverse","quality":{"kind":"Analytic"},"revision":2,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":72},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":1,"id":1,"tolerance":6.3e-8,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":2,"id":2,"tolerance":6.3e-8,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":3,"id":3,"tolerance":6.3e-8,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":6.3e-8,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":5,"id":5,"tolerance":6.3e-8,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":6,"id":6,"tolerance":6.3e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":7,"id":7,"tolerance":6.3e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":8,"id":8,"tolerance":6.3e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":9,"id":9,"tolerance":6.3e-8,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":10,"id":10,"tolerance":6.3e-8,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":11,"id":11,"tolerance":6.3e-8,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":12,"id":12,"tolerance":6.3e-8,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":13,"id":13,"tolerance":6.3e-8,"twin_halfedge":92},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":14,"id":14,"tolerance":6.3e-8,"twin_halfedge":86},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":15,"id":15,"tolerance":6.3e-8,"twin_halfedge":88},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":16,"id":16,"tolerance":6.3e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":17,"id":17,"tolerance":6.3e-8,"twin_halfedge":90},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":18,"id":18,"tolerance":6.3e-8,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":19,"id":19,"tolerance":6.3e-8,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":20,"id":20,"tolerance":6.3e-8,"twin_halfedge":56},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":21,"id":21,"tolerance":6.3e-8,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":22,"id":22,"tolerance":6.3e-8,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":23,"id":23,"tolerance":6.3e-8,"twin_halfedge":76},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":25,"id":24,"tolerance":6.3e-8,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":26,"id":25,"tolerance":6.3e-8,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":27,"id":26,"tolerance":6.3e-8,"twin_halfedge":91},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":29,"id":27,"tolerance":6.3e-8,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":30,"id":28,"tolerance":6.3e-8,"twin_halfedge":74},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":31,"id":29,"tolerance":6.3e-8,"twin_halfedge":73},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":33,"id":30,"tolerance":6.3e-8,"twin_halfedge":43},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":37,"id":31,"tolerance":6.3e-8,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":32,"tolerance":6.3e-8,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":39,"id":33,"tolerance":6.3e-8,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":41,"id":34,"tolerance":6.3e-8,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":42,"id":35,"tolerance":6.3e-8,"twin_halfedge":85},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":45,"id":36,"tolerance":6.3e-8,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":46,"id":37,"tolerance":6.3e-8,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":47,"id":38,"tolerance":6.3e-8,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":53,"id":39,"tolerance":6.3e-8,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":54,"id":40,"tolerance":6.3e-8,"twin_halfedge":87},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":55,"id":41,"tolerance":6.3e-8,"twin_halfedge":95},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":61,"id":42,"tolerance":6.3e-8,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":65,"id":43,"tolerance":6.3e-8,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":66,"id":44,"tolerance":6.3e-8,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":67,"id":45,"tolerance":6.3e-8,"twin_halfedge":77},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":69,"id":46,"tolerance":6.3e-8,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":70,"id":47,"tolerance":6.3e-8,"twin_halfedge":81},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":3.147877503993888,"lo":0.0}},"halfedge":96,"id":48,"tolerance":6.3e-8,"twin_halfedge":97},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":3.146489221673897,"lo":0.0}},"halfedge":98,"id":49,"tolerance":6.3e-8,"twin_halfedge":99}],"faces":[{"id":0,"key":"batch-staged.mixed-curved-openings.reverse:planar:lower-cap-0","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":1,"key":"batch-staged.mixed-curved-openings.reverse:planar:upper-cap-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":-1.0999999369999995,"lo":-1.500000063}]}},{"id":2,"key":"batch-staged.mixed-curved-openings.reverse:planar:lower-cap-2","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":1.500000063,"lo":1.0999999369999995}]}},{"id":3,"key":"batch-staged.mixed-curved-openings.reverse:planar:upper-cap-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":4,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-4","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":5.694154360296646,"lo":5.483185283846253},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-5","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":6,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[16],"outer":6,"uv_bounds":[{"hi":7.0831853305129195,"lo":5.863571900276408},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":7,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-7","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.3000000629999996,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":8,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[18],"outer":8,"uv_bounds":[{"hi":7.083185328179586,"lo":5.907761678198547},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":9,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-9","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":10,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-10","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.759586552581287,"lo":5.4831852861795864},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":11,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-11","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":12,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-12","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.3530818422889511,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":13,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-13","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.32529160920298195,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":14,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-14","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":3.000000063,"lo":1.499999937}]}},{"id":15,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-15","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":3.000000063,"lo":1.499999937}]}},{"id":16,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[19],"outer":17,"uv_bounds":[{"hi":-2.081576844571777,"lo":-8.52028169592909},{"hi":0.3499989716450176,"lo":0.0033002839911298975}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":7,"to":1,"twin":72,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":64,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":60,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":4,"prev":2,"to":4,"twin":52,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":0,"next":5,"prev":3,"to":5,"twin":44,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":0,"next":6,"prev":4,"to":6,"twin":36,"wire_ref":null},{"edge":6,"face":0,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":0,"next":7,"prev":5,"to":7,"twin":32,"wire_ref":null},{"edge":7,"face":0,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":0,"next":0,"prev":6,"to":0,"twin":24,"wire_ref":null},{"edge":8,"face":1,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":1,"next":9,"prev":11,"to":9,"twin":34,"wire_ref":null},{"edge":9,"face":1,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":1,"next":10,"prev":8,"to":10,"twin":84,"wire_ref":null},{"edge":10,"face":1,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":1,"next":11,"prev":9,"to":11,"twin":62,"wire_ref":null},{"edge":11,"face":1,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":1,"next":8,"prev":10,"to":8,"twin":80,"wire_ref":null},{"edge":12,"face":2,"from":12,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":2,"next":13,"prev":15,"to":13,"twin":82,"wire_ref":null},{"edge":13,"face":2,"from":13,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":2,"next":14,"prev":12,"to":14,"twin":92,"wire_ref":null},{"edge":14,"face":2,"from":14,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":2,"next":15,"prev":13,"to":15,"twin":86,"wire_ref":null},{"edge":15,"face":2,"from":15,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":2,"next":12,"prev":14,"to":12,"twin":88,"wire_ref":null},{"edge":16,"face":3,"from":16,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":3,"next":17,"prev":23,"to":17,"twin":28,"wire_ref":null},{"edge":17,"face":3,"from":17,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":3,"next":18,"prev":16,"to":18,"twin":90,"wire_ref":null},{"edge":18,"face":3,"from":18,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":3,"next":19,"prev":17,"to":19,"twin":40,"wire_ref":null},{"edge":19,"face":3,"from":19,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":3,"next":20,"prev":18,"to":20,"twin":48,"wire_ref":null},{"edge":20,"face":3,"from":20,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":3,"next":21,"prev":19,"to":21,"twin":56,"wire_ref":null},{"edge":21,"face":3,"from":21,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":3,"next":22,"prev":20,"to":22,"twin":94,"wire_ref":null},{"edge":22,"face":3,"from":22,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":3,"next":23,"prev":21,"to":23,"twin":68,"wire_ref":null},{"edge":23,"face":3,"from":23,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":3,"next":16,"prev":22,"to":16,"twin":76,"wire_ref":null},{"edge":7,"face":4,"from":0,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":4,"next":25,"prev":31,"to":7,"twin":7,"wire_ref":null},{"edge":24,"face":4,"from":7,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":4,"next":26,"prev":24,"to":8,"twin":35,"wire_ref":null},{"edge":25,"face":4,"from":8,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":4,"next":27,"prev":25,"to":12,"twin":83,"wire_ref":null},{"edge":26,"face":4,"from":12,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":4,"next":28,"prev":26,"to":17,"twin":91,"wire_ref":null},{"edge":16,"face":4,"from":17,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":4,"next":29,"prev":27,"to":16,"twin":16,"wire_ref":null},{"edge":27,"face":4,"from":16,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":4,"next":30,"prev":28,"to":24,"twin":75,"wire_ref":null},{"edge":28,"face":4,"from":24,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":4,"next":31,"prev":29,"to":25,"twin":74,"wire_ref":null},{"edge":29,"face":4,"from":25,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":4,"next":24,"prev":30,"to":0,"twin":73,"wire_ref":null},{"edge":6,"face":5,"from":7,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":5,"next":33,"prev":35,"to":6,"twin":6,"wire_ref":null},{"edge":30,"face":5,"from":6,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":5,"next":34,"prev":32,"to":9,"twin":43,"wire_ref":null},{"edge":8,"face":5,"from":9,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":5,"next":35,"prev":33,"to":8,"twin":8,"wire_ref":null},{"edge":24,"face":5,"from":8,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":5,"next":32,"prev":34,"to":7,"twin":25,"wire_ref":null},{"edge":5,"face":6,"from":6,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Forward"},"id":36,"loop_ref":6,"next":37,"prev":43,"to":5,"twin":5,"wire_ref":null},{"edge":31,"face":6,"from":5,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Forward"},"id":37,"loop_ref":6,"next":38,"prev":36,"to":26,"twin":51,"wire_ref":null},{"edge":32,"face":6,"from":26,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Forward"},"id":38,"loop_ref":6,"next":39,"prev":37,"to":27,"twin":50,"wire_ref":null},{"edge":33,"face":6,"from":27,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Forward"},"id":39,"loop_ref":6,"next":40,"prev":38,"to":19,"twin":49,"wire_ref":null},{"edge":18,"face":6,"from":19,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Reverse"},"id":40,"loop_ref":6,"next":41,"prev":39,"to":18,"twin":18,"wire_ref":null},{"edge":34,"face":6,"from":18,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Forward"},"id":41,"loop_ref":6,"next":42,"prev":40,"to":15,"twin":89,"wire_ref":null},{"edge":35,"face":6,"from":15,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Forward"},"id":42,"loop_ref":6,"next":43,"prev":41,"to":9,"twin":85,"wire_ref":null},{"edge":30,"face":6,"from":9,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Reverse"},"id":43,"loop_ref":6,"next":36,"prev":42,"to":6,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":5,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Reverse"},"id":44,"loop_ref":7,"next":45,"prev":51,"to":4,"twin":4,"wire_ref":null},{"edge":36,"face":7,"from":4,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Forward"},"id":45,"loop_ref":7,"next":46,"prev":44,"to":28,"twin":59,"wire_ref":null},{"edge":37,"face":7,"from":28,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Forward"},"id":46,"loop_ref":7,"next":47,"prev":45,"to":29,"twin":58,"wire_ref":null},{"edge":38,"face":7,"from":29,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Forward"},"id":47,"loop_ref":7,"next":48,"prev":46,"to":20,"twin":57,"wire_ref":null},{"edge":19,"face":7,"from":20,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Reverse"},"id":48,"loop_ref":7,"next":49,"prev":47,"to":19,"twin":19,"wire_ref":null},{"edge":33,"face":7,"from":19,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Reverse"},"id":49,"loop_ref":7,"next":50,"prev":48,"to":27,"twin":39,"wire_ref":null},{"edge":32,"face":7,"from":27,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Reverse"},"id":50,"loop_ref":7,"next":51,"prev":49,"to":26,"twin":38,"wire_ref":null},{"edge":31,"face":7,"from":26,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Reverse"},"id":51,"loop_ref":7,"next":44,"prev":50,"to":5,"twin":37,"wire_ref":null},{"edge":3,"face":8,"from":4,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Reverse"},"id":52,"loop_ref":8,"next":53,"prev":59,"to":3,"twin":3,"wire_ref":null},{"edge":39,"face":8,"from":3,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Forward"},"id":53,"loop_ref":8,"next":54,"prev":52,"to":10,"twin":63,"wire_ref":null},{"edge":40,"face":8,"from":10,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Forward"},"id":54,"loop_ref":8,"next":55,"prev":53,"to":14,"twin":87,"wire_ref":null},{"edge":41,"face":8,"from":14,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Forward"},"id":55,"loop_ref":8,"next":56,"prev":54,"to":21,"twin":95,"wire_ref":null},{"edge":20,"face":8,"from":21,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Forward"},"id":56,"loop_ref":8,"next":57,"prev":55,"to":20,"twin":20,"wire_ref":null},{"edge":38,"face":8,"from":20,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Reverse"},"id":57,"loop_ref":8,"next":58,"prev":56,"to":29,"twin":47,"wire_ref":null},{"edge":37,"face":8,"from":29,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Reverse"},"id":58,"loop_ref":8,"next":59,"prev":57,"to":28,"twin":46,"wire_ref":null},{"edge":36,"face":8,"from":28,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Reverse"},"id":59,"loop_ref":8,"next":52,"prev":58,"to":4,"twin":45,"wire_ref":null},{"edge":2,"face":9,"from":3,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Reverse"},"id":60,"loop_ref":9,"next":61,"prev":63,"to":2,"twin":2,"wire_ref":null},{"edge":42,"face":9,"from":2,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Forward"},"id":61,"loop_ref":9,"next":62,"prev":60,"to":11,"twin":71,"wire_ref":null},{"edge":10,"face":9,"from":11,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Forward"},"id":62,"loop_ref":9,"next":63,"prev":61,"to":10,"twin":10,"wire_ref":null},{"edge":39,"face":9,"from":10,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Reverse"},"id":63,"loop_ref":9,"next":60,"prev":62,"to":3,"twin":53,"wire_ref":null},{"edge":1,"face":10,"from":2,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Reverse"},"id":64,"loop_ref":10,"next":65,"prev":71,"to":1,"twin":1,"wire_ref":null},{"edge":43,"face":10,"from":1,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Forward"},"id":65,"loop_ref":10,"next":66,"prev":64,"to":30,"twin":79,"wire_ref":null},{"edge":44,"face":10,"from":30,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Forward"},"id":66,"loop_ref":10,"next":67,"prev":65,"to":31,"twin":78,"wire_ref":null},{"edge":45,"face":10,"from":31,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Forward"},"id":67,"loop_ref":10,"next":68,"prev":66,"to":23,"twin":77,"wire_ref":null},{"edge":22,"face":10,"from":23,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Forward"},"id":68,"loop_ref":10,"next":69,"prev":67,"to":22,"twin":22,"wire_ref":null},{"edge":46,"face":10,"from":22,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Forward"},"id":69,"loop_ref":10,"next":70,"prev":68,"to":13,"twin":93,"wire_ref":null},{"edge":47,"face":10,"from":13,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Forward"},"id":70,"loop_ref":10,"next":71,"prev":69,"to":11,"twin":81,"wire_ref":null},{"edge":42,"face":10,"from":11,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Reverse"},"id":71,"loop_ref":10,"next":64,"prev":70,"to":2,"twin":61,"wire_ref":null},{"edge":0,"face":11,"from":1,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Reverse"},"id":72,"loop_ref":11,"next":73,"prev":79,"to":0,"twin":0,"wire_ref":null},{"edge":29,"face":11,"from":0,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Reverse"},"id":73,"loop_ref":11,"next":74,"prev":72,"to":25,"twin":31,"wire_ref":null},{"edge":28,"face":11,"from":25,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Reverse"},"id":74,"loop_ref":11,"next":75,"prev":73,"to":24,"twin":30,"wire_ref":null},{"edge":27,"face":11,"from":24,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Reverse"},"id":75,"loop_ref":11,"next":76,"prev":74,"to":16,"twin":29,"wire_ref":null},{"edge":23,"face":11,"from":16,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Reverse"},"id":76,"loop_ref":11,"next":77,"prev":75,"to":23,"twin":23,"wire_ref":null},{"edge":45,"face":11,"from":23,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Reverse"},"id":77,"loop_ref":11,"next":78,"prev":76,"to":31,"twin":67,"wire_ref":null},{"edge":44,"face":11,"from":31,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Reverse"},"id":78,"loop_ref":11,"next":79,"prev":77,"to":30,"twin":66,"wire_ref":null},{"edge":43,"face":11,"from":30,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Reverse"},"id":79,"loop_ref":11,"next":72,"prev":78,"to":1,"twin":65,"wire_ref":null},{"edge":11,"face":12,"from":8,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Reverse"},"id":80,"loop_ref":12,"next":81,"prev":83,"to":11,"twin":11,"wire_ref":null},{"edge":47,"face":12,"from":11,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Reverse"},"id":81,"loop_ref":12,"next":82,"prev":80,"to":13,"twin":70,"wire_ref":null},{"edge":12,"face":12,"from":13,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Reverse"},"id":82,"loop_ref":12,"next":83,"prev":81,"to":12,"twin":12,"wire_ref":null},{"edge":25,"face":12,"from":12,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Reverse"},"id":83,"loop_ref":12,"next":80,"prev":82,"to":8,"twin":26,"wire_ref":null},{"edge":9,"face":13,"from":10,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Reverse"},"id":84,"loop_ref":13,"next":85,"prev":87,"to":9,"twin":9,"wire_ref":null},{"edge":35,"face":13,"from":9,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Reverse"},"id":85,"loop_ref":13,"next":86,"prev":84,"to":15,"twin":42,"wire_ref":null},{"edge":14,"face":13,"from":15,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Reverse"},"id":86,"loop_ref":13,"next":87,"prev":85,"to":14,"twin":14,"wire_ref":null},{"edge":40,"face":13,"from":14,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Reverse"},"id":87,"loop_ref":13,"next":84,"prev":86,"to":10,"twin":54,"wire_ref":null},{"edge":15,"face":14,"from":12,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Forward"},"id":88,"loop_ref":14,"next":89,"prev":91,"to":15,"twin":15,"wire_ref":null},{"edge":34,"face":14,"from":15,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Reverse"},"id":89,"loop_ref":14,"next":90,"prev":88,"to":18,"twin":41,"wire_ref":null},{"edge":17,"face":14,"from":18,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Reverse"},"id":90,"loop_ref":14,"next":91,"prev":89,"to":17,"twin":17,"wire_ref":null},{"edge":26,"face":14,"from":17,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Reverse"},"id":91,"loop_ref":14,"next":88,"prev":90,"to":12,"twin":27,"wire_ref":null},{"edge":13,"face":15,"from":14,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Reverse"},"id":92,"loop_ref":15,"next":93,"prev":95,"to":13,"twin":13,"wire_ref":null},{"edge":46,"face":15,"from":13,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Reverse"},"id":93,"loop_ref":15,"next":94,"prev":92,"to":22,"twin":69,"wire_ref":null},{"edge":21,"face":15,"from":22,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Forward"},"id":94,"loop_ref":15,"next":95,"prev":93,"to":21,"twin":21,"wire_ref":null},{"edge":41,"face":15,"from":21,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Reverse"},"id":95,"loop_ref":15,"next":92,"prev":94,"to":14,"twin":55,"wire_ref":null},{"edge":48,"face":6,"from":32,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Forward"},"id":96,"loop_ref":16,"next":96,"prev":96,"to":32,"twin":97,"wire_ref":null},{"edge":48,"face":16,"from":32,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Reverse"},"id":97,"loop_ref":17,"next":97,"prev":97,"to":32,"twin":96,"wire_ref":null},{"edge":49,"face":8,"from":33,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Forward"},"id":98,"loop_ref":18,"next":98,"prev":98,"to":33,"twin":99,"wire_ref":null},{"edge":49,"face":16,"from":33,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Reverse"},"id":99,"loop_ref":19,"next":99,"prev":99,"to":33,"twin":98,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":24},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":36},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":44},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":52},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":60},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":64},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":72},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":80},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":84},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":88},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":92},{"face_ref":6,"id":16,"is_hole":true,"start_halfedge":96},{"face_ref":16,"id":17,"is_hole":false,"start_halfedge":97},{"face_ref":8,"id":18,"is_hole":true,"start_halfedge":98},{"face_ref":16,"id":19,"is_hole":true,"start_halfedge":99}],"shells":[{"faces":[0,11,10,9,8,7,6,5,4,3,15,12,1,13,14,2,16],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":1,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":2,"position":[2.598076211353316,0.0,1.5],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":3,"position":[2.791057147390573,0.0,1.0999999999999992],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":6,"position":[2.4657656011875906,0.0,1.1000000000000003],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":7,"position":[2.244994432064365,0.0,1.4999999999999998],"tolerance":6.3e-8},{"id":8,"outgoing_halfedge":8,"position":[2.244994432064365,1.0,1.4999999999999998],"tolerance":6.3e-8},{"id":9,"outgoing_halfedge":9,"position":[2.4657656011875906,1.0,1.1000000000000005],"tolerance":6.3e-8},{"id":10,"outgoing_halfedge":10,"position":[2.7910571473905725,1.0,1.1],"tolerance":6.3e-8},{"id":11,"outgoing_halfedge":11,"position":[2.598076211353316,1.0,1.5],"tolerance":6.3e-8},{"id":12,"outgoing_halfedge":12,"position":[2.244994432064365,1.5,1.5],"tolerance":6.3e-8},{"id":13,"outgoing_halfedge":13,"position":[2.598076211353316,1.5,1.5],"tolerance":6.3e-8},{"id":14,"outgoing_halfedge":14,"position":[2.791057147390573,1.5,1.0999999999999996],"tolerance":6.3e-8},{"id":15,"outgoing_halfedge":15,"position":[2.465765601187591,1.5,1.1],"tolerance":6.3e-8},{"id":16,"outgoing_halfedge":16,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":17,"outgoing_halfedge":17,"position":[2.244994432064365,3.0,1.4999999999999998],"tolerance":6.3e-8},{"id":18,"outgoing_halfedge":18,"position":[2.4657656011875906,3.0,1.1000000000000005],"tolerance":6.3e-8},{"id":19,"outgoing_halfedge":19,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":20,"outgoing_halfedge":20,"position":[2.0901201280414963,3.0,-2.152068272698568],"tolerance":6.3e-8},{"id":21,"outgoing_halfedge":21,"position":[2.791057147390573,3.0,1.0999999999999992],"tolerance":6.3e-8},{"id":22,"outgoing_halfedge":22,"position":[2.598076211353316,3.0,1.5],"tolerance":6.3e-8},{"id":23,"outgoing_halfedge":23,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8},{"id":24,"outgoing_halfedge":30,"position":[1.8811081152373468,1.5,1.9368614454287116],"tolerance":6.3e-8},{"id":25,"outgoing_halfedge":31,"position":[1.8811081152373468,1.0,1.9368614454287116],"tolerance":6.3e-8},{"id":26,"outgoing_halfedge":38,"position":[1.8811081152373468,1.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":27,"outgoing_halfedge":39,"position":[1.8811081152373468,1.5,-1.9368614454287116],"tolerance":6.3e-8},{"id":28,"outgoing_halfedge":46,"position":[2.0901201280414963,1.0,-2.152068272698568],"tolerance":6.3e-8},{"id":29,"outgoing_halfedge":47,"position":[2.0901201280414963,1.5,-2.152068272698568],"tolerance":6.3e-8},{"id":30,"outgoing_halfedge":66,"position":[2.0901201280414963,1.0,2.1520682726985685],"tolerance":6.3e-8},{"id":31,"outgoing_halfedge":67,"position":[2.0901201280414963,1.5,2.1520682726985685],"tolerance":6.3e-8},{"id":32,"outgoing_halfedge":96,"position":[2.682255636269859,1.1069411008145305,0.30903834988326967],"tolerance":6.3e-8},{"id":33,"outgoing_halfedge":98,"position":[2.990025593501361,1.0638199343388153,0.244431892777589],"tolerance":6.3e-8}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Circle","radius":0.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.65,1.5,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.4]},{"direction":[0.0,1.0000000000000002],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[-0.0,-1.0,-0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.05,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"}]},"id":"round-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":6.3e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.3999999999999999,"lo":0.0}},"halfedge":1,"id":2,"tolerance":6.3e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":0.4,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"round-opening","entity":"round-opening","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.65,1.5,-0.5],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":2,"position":[3.05,1.5,-0.5],"tolerance":6.3e-8}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.0,1.1]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.0,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.2,1.5,1.1]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[3.2,1.5,1.1]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.2,1.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[3.2,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.2,1.5,1.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.3999999999999999]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.3999999999999999,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[3.2,1.0,1.1],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.0,1.1],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.2,1.5,1.1],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"rectangular-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":8,"id":2,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":2,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":15,"id":4,"tolerance":6.3e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":6.3e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":10,"id":6,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.4,"lo":0.0}},"halfedge":13,"id":7,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":7,"id":9,"tolerance":6.3e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":10,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":6.3e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000063,"lo":-6.3e-8},{"hi":0.4000000629999999,"lo":-6.3e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.4000000629999999,"lo":-6.3e-8},{"hi":1.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[2.2,1.0,1.1],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":3,"position":[3.2,1.0,1.1],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.2,1.5,1.1],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[3.2,1.5,1.1],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":4,"position":[2.2,1.0,1.5],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":5,"position":[3.2,1.0,1.5],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":7,"position":[2.2,1.5,1.5],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[3.2,1.5,1.5],"tolerance":6.3e-8}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_planar_cutters","subtract_vertical_arc_extrusion","generic_two_sided_cutter_band_subtraction"],"host":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"direction":[-0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,-2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.1520682726985685]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]}],"intersections":[],"pcurves":[{"direction":[-0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,2.1520682726985685]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,-0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,-1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-0.8,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.0901201280414963,0.0,-2.1520682726985685],"x":[-0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,0.0],"z":[-0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,1.9368614454287116],"x":[0.6967067093471652,0.0,0.717356090899523],"y":[0.0,1.0,-0.0],"z":[-0.717356090899523,0.0,0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0}]},"id":"mixed-curved-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":7,"id":0,"tolerance":6.3e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":1,"tolerance":6.3e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":6.3e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":6,"id":3,"tolerance":6.3e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":1,"id":4,"tolerance":6.3e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":6.3e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":5,"id":6,"tolerance":6.3e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":2,"id":7,"tolerance":6.3e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":6.3e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":4,"id":9,"tolerance":6.3e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":-0.8}},"halfedge":3,"id":10,"tolerance":6.3e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":6.3e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":3.000000063,"lo":-3.000000063},{"hi":3.000000063,"lo":-3.000000063}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.8000000233333334,"lo":-0.8000000233333334},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.800000021,"lo":-0.800000021},{"hi":3.000000063,"lo":-6.3e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":6,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":5,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":0,"position":[2.0901201280414963,3.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":1,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":2,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":3,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":6.3e-8,"intersection":1.575e-8,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.6967067093471652,0.0,0.717356090899523],"kind":"Line","origin":[1.8811081152373468,0.0,1.9368614454287116]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471659,0.0,0.7173560908995223],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.465765601187591,1.0,1.1]},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.598076211353316,1.0,1.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.5]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.7910571473905725,1.5,1.1]},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":2.7},{"direction":[0.6967067093471659,0.0,-0.7173560908995223],"kind":"Line","origin":[1.8811081152373468,3.0,-1.9368614454287116]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":3.0},{"direction":[-0.6967067093471652,0.0,-0.717356090899523],"kind":"Line","origin":[2.0901201280414963,3.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,0.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.0,1.4999999999999998]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.244994432064365,1.5,1.4999999999999998]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,3.0,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.4657656011875906,0.0,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,0.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.0,-1.9368614454287116]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.8811081152373468,1.5,-1.9368614454287116]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,3.0,1.1000000000000005]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.4657656011875906,1.5,1.1000000000000005]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,-2.152068272698568]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,0.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.0,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.791057147390573,1.5,1.0999999999999992]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.598076211353316,0.0,1.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,0.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.0,2.1520682726985685]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0901201280414963,1.5,2.1520682726985685]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,3.0,1.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[2.598076211353316,1.5,1.5]},{"definition":0,"kind":"Intersection"},{"definition":1,"kind":"Intersection"}],"intersections":[{"anchors":[{"parameter":0.0,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-2.2370900898141954,0.03225563626985917]},{"parameter":0.028334801114291642,"point":[2.679668824997465,1.1249999843059526,0.3307188962004861],"uv_a":[6.160388449313543,1.12499998425],"uv_b":[-2.2935305273231577,0.029668824997465038]},{"parameter":0.06261555364766803,"point":[2.676489529532718,1.148437485266038,0.35553311839962887],"uv_a":[6.151122836532611,1.148437485234375],"uv_b":[-2.361809801256655,0.02648952953271788]},{"parameter":0.06917300359337525,"point":[2.6758798017644945,1.1531099403349856,0.3600934413561505],"uv_a":[6.1494187979880905,1.15310994033352],"uv_b":[-2.3748679768681527,0.02587980176449456]},{"parameter":0.09472350578879225,"point":[2.673511927131303,1.1718749862698106,0.37727175277559466],"uv_a":[6.142996291169094,1.17187498621875],"uv_b":[-2.4257545571066568,0.0235119271313029]},{"parameter":0.12512878456108087,"point":[2.670736692480739,1.1953124871700322,0.3964410668323627],"uv_a":[6.135822511238574,1.195312487203125],"uv_b":[-2.4863205326425137,0.020736692480739283]},{"parameter":0.14995049847172123,"point":[2.66853225449655,1.2152819057274709,0.4110177693783217],"uv_a":[6.130362338140644,1.2152819057554232],"uv_b":[-2.5357728337336125,0.01853225449655005]},{"parameter":0.15417322142588208,"point":[2.668164456906109,1.2187499882008486,0.41339863435515534],"uv_a":[6.129470076501057,1.2187499881875001],"uv_b":[-2.5441862084349074,0.018164456906109017]},{"parameter":0.18210498285059248,"point":[2.6657958081649715,1.242187489148561,0.4284071768811314],"uv_a":[6.123842549443157,1.2421874891718752],"uv_b":[-2.5998556927074383,0.015795808164971614]},{"parameter":0.2091194781015368,"point":[2.6636312892736353,1.2656249901660308,0.4416654330895639],"uv_a":[6.118867069463013,1.2656249901562502],"uv_b":[-2.6537174838059925,0.013631289273635439]},{"parameter":0.23537113950850322,"point":[2.66167139832315,1.2890624911389978,0.4533269982602597],"uv_a":[6.1144873948445735,1.289062491140625],"uv_b":[-2.7060802629751683,0.011671398323150228]},{"parameter":0.256443011692048,"point":[2.660215662637239,1.3083039602163389,0.46179284131799114],"uv_a":[6.111305878293199,1.308303960231183],"uv_b":[-2.7481264156909653,0.010215662637238943]},{"parameter":0.2609875710109817,"point":[2.6599165875972526,1.3124999921208964,0.4635124022444197],"uv_a":[6.1106594428997605,1.312499992125],"uv_b":[-2.7571958620866104,0.009916587597252668]},{"parameter":0.28607223779480606,"point":[2.6583672632416975,1.33593749309167,0.47231715379922057],"uv_a":[6.107348320847363,1.335937493109375],"uv_b":[-2.8072746448894756,0.008367263241697565]},{"parameter":0.3107171775011209,"point":[2.657023784686102,1.3593749940794733,0.4798172648614164],"uv_a":[6.104526287239927,1.3593749940937498],"uv_b":[-2.8564962009681647,0.007023784686102097]},{"parameter":0.33500186015188027,"point":[2.6558864643186353,1.3828124950733056,0.4860731309880169],"uv_a":[6.102171320575353,1.3828124950781249],"uv_b":[-2.9050170325986295,0.005886464318635376]},{"parameter":0.3589972392979255,"point":[2.654955567088826,1.4062499960645936,0.4911323006820845],"uv_a":[6.100266097951611,1.4062499960625],"uv_b":[-2.9529762594057267,0.004955567088825941]},{"parameter":0.38276790371366365,"point":[2.654231310219106,1.429687497041538,0.4950314655552374],"uv_a":[6.098797261305364,1.429687497046875],"uv_b":[-3.000499988146808,0.004231310219106277]},{"parameter":0.40637377755047316,"point":[2.6537138628622183,1.4531249980248027,0.49779788480974135],"uv_a":[6.097754892221692,1.45312499803125],"uv_b":[-3.0477047745014545,0.00371386286221842]},{"parameter":0.4298715140080698,"point":[2.6534033459790627,1.4765624990156134,0.4994503814668287],"uv_a":[6.0971321448404385,1.476562499015625],"uv_b":[-3.0947004684855486,0.0034033459790627774]},{"parameter":0.45331568701695135,"point":[2.653299832265033,1.5,0.5000000000511745],"uv_a":[6.096925003564456,1.5],"uv_b":[-3.141592653589793,0.0032998322650330536]},{"parameter":0.4767598600258329,"point":[2.6534033459790627,1.5234375009843866,0.4994503814668287],"uv_a":[6.0971321448404385,1.523437500984375],"uv_b":[-3.1884848386940376,0.0034033459790627774]},{"parameter":0.5002575964834295,"point":[2.6537138628622183,1.5468750019751973,0.49779788480974135],"uv_a":[6.097754892221692,1.54687500196875],"uv_b":[-3.2354805326781317,0.00371386286221842]},{"parameter":0.523863470320239,"point":[2.654231310219106,1.570312502958462,0.4950314655552374],"uv_a":[6.098797261305364,1.570312502953125],"uv_b":[-3.2826853190327783,0.004231310219106277]},{"parameter":0.5476341347359772,"point":[2.654955567088826,1.5937500039354064,0.4911323006820845],"uv_a":[6.100266097951611,1.5937500039375],"uv_b":[-3.3302090477738595,0.004955567088825941]},{"parameter":0.5716295138820224,"point":[2.6558864643186353,1.6171875049266944,0.4860731309880169],"uv_a":[6.102171320575353,1.6171875049218751],"uv_b":[-3.3781682745809567,0.005886464318635376]},{"parameter":0.5959141965327819,"point":[2.657023784686102,1.6406250059205267,0.4798172648614164],"uv_a":[6.104526287239927,1.6406250059062502],"uv_b":[-3.4266891062114215,0.007023784686102097]},{"parameter":0.6205591362390966,"point":[2.6583672632416975,1.66406250690833,0.47231715379922057],"uv_a":[6.107348320847363,1.664062506890625],"uv_b":[-3.4759106622901106,0.008367263241697565]},{"parameter":0.645643803022921,"point":[2.6599165875972526,1.6875000078791036,0.4635124022444197],"uv_a":[6.1106594428997605,1.687500007875],"uv_b":[-3.525989445092976,0.009916587597252668]},{"parameter":0.6501883623418547,"point":[2.660215662637239,1.6916960397836611,0.46179284131799114],"uv_a":[6.111305878293199,1.691696039768817],"uv_b":[-3.535058891488621,0.010215662637238943]},{"parameter":0.6712602345253995,"point":[2.66167139832315,1.7109375088610022,0.4533269982602597],"uv_a":[6.1144873948445735,1.710937508859375],"uv_b":[-3.577105044204418,0.011671398323150228]},{"parameter":0.697511895932366,"point":[2.6636312892736353,1.7343750098339692,0.4416654330895639],"uv_a":[6.118867069463013,1.7343750098437498],"uv_b":[-3.6294678233735937,0.013631289273635439]},{"parameter":0.7245263911833103,"point":[2.6657958081649715,1.757812510851439,0.4284071768811314],"uv_a":[6.123842549443157,1.7578125108281248],"uv_b":[-3.683329614472148,0.015795808164971614]},{"parameter":0.7524581526080207,"point":[2.668164456906109,1.7812500117991514,0.41339863435515534],"uv_a":[6.129470076501057,1.7812500118124999],"uv_b":[-3.738999098744679,0.018164456906109017]},{"parameter":0.7566808755621816,"point":[2.66853225449655,1.7847180942725291,0.4110177693783217],"uv_a":[6.130362338140644,1.7847180942445768],"uv_b":[-3.7474124734459737,0.01853225449655005]},{"parameter":0.7815025894728219,"point":[2.670736692480739,1.8046875128299678,0.3964410668323627],"uv_a":[6.135822511238574,1.804687512796875],"uv_b":[-3.7968647745370725,0.020736692480739283]},{"parameter":0.8119078682451105,"point":[2.673511927131303,1.8281250137301894,0.37727175277559466],"uv_a":[6.142996291169094,1.82812501378125],"uv_b":[-3.8574307500729295,0.0235119271313029]},{"parameter":0.8374583704405275,"point":[2.6758798017644945,1.8468900596650144,0.3600934413561505],"uv_a":[6.1494187979880905,1.84689005966648],"uv_b":[-3.9083173303114336,0.02587980176449456]},{"parameter":0.8440158203862347,"point":[2.676489529532718,1.851562514733962,0.35553311839962887],"uv_a":[6.151122836532611,1.851562514765625],"uv_b":[-3.9213755059229314,0.02648952953271788]},{"parameter":0.878296572919611,"point":[2.679668824997465,1.8750000156940474,0.3307188962004861],"uv_a":[6.160388449313543,1.87500001575],"uv_b":[-3.9896547798564286,0.029668824997465038]},{"parameter":0.9066313740339027,"point":[2.682255636269859,1.8930588992139792,0.309038349905685],"uv_a":[6.168475257835536,1.8930588991854695],"uv_b":[-4.046095217365391,0.03225563626985917]},{"parameter":0.9154681118685938,"point":[2.6830490965935136,1.8984375167303162,0.3020720862093555],"uv_a":[6.171072038485683,1.898437516734375],"uv_b":[-4.063697530428579,0.03304909659351374]},{"parameter":0.9566760112783708,"point":[2.686629585655327,1.921875017694837,0.2683681603195926],"uv_a":[6.183625297356484,1.92187501771875],"uv_b":[-4.145824715609436,0.036629585655326924]},{"parameter":0.9690637587096833,"point":[2.6876574427069433,1.9283719520199973,0.2578710349665264],"uv_a":[6.187531717682981,1.9283719519789853],"uv_b":[-4.170515405258614,0.03765744270694338]},{"parameter":1.004062580127355,"point":[2.6904094928695583,1.9453125187070932,0.22736921664616086],"uv_a":[6.198874637593571,1.9453125187031248],"uv_b":[-4.240310477201132,0.04040949286955842]},{"parameter":1.0271667910844,"point":[2.6920832594763313,1.9553155784149696,0.20661007731490855],"uv_a":[6.206588177530428,1.9553155784108087],"uv_b":[-4.286401564583248,0.0420832594763314]},{"parameter":1.0625178429302367,"point":[2.6943879789281096,1.9687500197040324,0.1739925832035218],"uv_a":[6.218698924623721,1.9687500196874999],"uv_b":[-4.35696789203586,0.04438797892810964]},{"parameter":1.0823752028069469,"point":[2.6955314793972236,1.975278819574291,0.15527409180585766],"uv_a":[6.225644637377873,1.9752788195002098],"uv_b":[-4.396619305311677,0.045531479397223684]},{"parameter":1.1356481782814714,"point":[2.6980008502910633,1.9890895502642703,0.10388172037675547],"uv_a":[6.2447010972253185,1.9890895502702768],"uv_b":[-4.503101029766185,0.04800085029106338]},{"parameter":1.1517975554941897,"point":[2.698564165559826,1.9921875207400295,0.08804228733141027],"uv_a":[6.250571271133383,1.9921875206718749],"uv_b":[-4.535381530439569,0.04856416555982612]},{"parameter":1.1877571590697558,"point":[2.6994904754362534,1.99724121612939,0.05245162560341963],"uv_a":[6.263757557072764,1.9972412161754107],"uv_b":[-4.6072923654263125,0.04949047543625351]},{"parameter":1.2392826767807936,"point":[2.6999998138937857,1.9999989950868042,0.0010024836771621234],"uv_a":[6.282814016920209,1.999998995148141],"uv_b":[-4.710384011687316,0.04999981389378583]},{"parameter":1.2907975115920034,"point":[2.6995286807036782,1.9974485882753887,-0.05044702228975368],"uv_a":[6.301870476767655,1.9974485883102902],"uv_b":[-4.813454990847523,0.04952868070367833]},{"parameter":1.3287713593431787,"point":[2.6985641655431207,1.9921875206956527,-0.08804228783551027],"uv_a":[6.315799343415534,1.9921875206718749],"uv_b":[-4.889396431337886,0.04856416554312082]},{"parameter":1.3428722316668074,"point":[2.698077246952141,1.9895108073171726,-0.10187820905755031],"uv_a":[6.3209269366151,1.989510807279073],"uv_b":[-4.917582290131343,0.048077246952141106]},{"parameter":1.3960865449589484,"point":[2.6956460397094473,1.9759281157955804,-0.153272399989274],"uv_a":[6.339983396462546,1.9759281157986295],"uv_b":[-5.023949920612639,0.04564603970944736]},{"parameter":1.4180509198041897,"point":[2.694387978944502,1.9687500197454413,-0.17399258296503345],"uv_a":[6.347671689641234,1.9687500196874999],"uv_b":[-5.0678100682575336,0.044387978944502304]},{"parameter":1.45120479941553,"point":[2.6922359418385375,1.956217455224096,-0.20461093197499977],"uv_a":[6.359039856309991,1.956217455164631],"uv_b":[-5.133990066703966,0.04223594183853763]},{"parameter":1.4765068365529088,"point":[2.690409492858698,1.945312518681071,-0.227369216761379],"uv_a":[6.367495976813366,1.9453125187031248],"uv_b":[-5.184467483797146,0.040409492858698215]},{"parameter":1.5091728293897624,"point":[2.687848191674414,1.929567109430189,-0.2558751619620383],"uv_a":[6.378096316157436,1.9295671094416216],"uv_b":[-5.24960984875082,0.037848191674414]},{"parameter":1.5238945235008194,"point":[2.6866295856806124,1.921875017752155,-0.2683681601029221],"uv_a":[6.38274531690847,1.92187501771875],"uv_b":[-5.278953244732782,0.036629585680612475]},{"parameter":1.5651024229164958,"point":[2.683049096621975,1.898437516791168,-0.3020720860026923],"uv_a":[6.39529857577927,1.898437516734375],"uv_b":[-5.361080429937905,0.03304909662197497]},{"parameter":1.5714001120926695,"point":[2.682484382574458,1.8946168557621426,-0.3070464740359601],"uv_a":[6.397152776004882,1.8946168558170062],"uv_b":[-5.373625150412406,0.03248438257445807]},{"parameter":1.6022729373260531,"point":[2.679668825028625,1.8750000157566713,-0.3307188960032387],"uv_a":[6.405982164951411,1.87500001575],"uv_b":[-5.4351231805342355,0.029668825028625]},{"parameter":1.636553689865318,"point":[2.676489529566215,1.851562514797001,-0.3555331182112076],"uv_a":[6.415247777732344,1.851562514765625],"uv_b":[-5.50340245449183,0.026489529566215086]},{"parameter":1.6402429620635373,"point":[2.676146462339821,1.8489410950732177,-0.3581062860764056],"uv_a":[6.416209235852327,1.8489410950441387],"uv_b":[-5.5107490441552915,0.026146462339820875]},{"parameter":1.6686606523699568,"point":[2.6735119271668495,1.8281250137925558,-0.37727175259540324],"uv_a":[6.423374323095858,1.82812501378125],"uv_b":[-5.567347210365832,0.023511927166849578]},{"parameter":1.6990659313877927,"point":[2.6707366924618046,1.8046875127991515,-0.39644106691982683],"uv_a":[6.430548103168361,1.804687512796875],"uv_b":[-5.6279131863877705,0.02073669246180465]},{"parameter":1.720412352146336,"point":[2.6688367325081037,1.7875578286620981,-0.40903605611156013],"uv_a":[6.435265695699773,1.7875578286759928],"uv_b":[-5.670439788281108,0.018836732508103804]},{"parameter":1.7281112220715473,"point":[2.668164456886363,1.781250011769516,-0.41339863443903974],"uv_a":[6.436900537905881,1.7812500118124999],"uv_b":[-5.685778862168076,0.018164456886363034]},{"parameter":1.7560429834932776,"point":[2.665795808144511,1.7578125108233147,-0.42840717696171626],"uv_a":[6.442528064963776,1.7578125108281248],"uv_b":[-5.7414483464285295,0.015795808144511092]},{"parameter":1.7830574787412532,"point":[2.6636312892525402,1.7343750098076303,-0.4416654331671527],"uv_a":[6.447503544943923,1.7343750098437498],"uv_b":[-5.795310137515057,0.013631289252540313]},{"parameter":1.8093091400611427,"point":[2.661671398333681,1.7109375088728267,-0.4533269982238437],"uv_a":[6.4518832194913704,1.710937508859375],"uv_b":[-5.847672916512794,0.011671398333680916]},{"parameter":1.8252799228484844,"point":[2.6605578475175835,1.6963875252620246,-0.45981728976936054],"uv_a":[6.454322155547218,1.6963875252814207],"uv_b":[-5.879538094132449,0.010557847517583596]},{"parameter":1.834926323041138,"point":[2.6599165875751147,1.6875000078570217,-0.46351240231687274],"uv_a":[6.455711171507174,1.687500007875],"uv_b":[-5.898788515771685,0.009916587575114821]},{"parameter":1.8600109898219923,"point":[2.658367263219139,1.6640625068886525,-0.4723171538695391],"uv_a":[6.459022293559571,1.664062506890625],"uv_b":[-5.948867298562591,0.008367263219139165]},{"parameter":1.884655929525338,"point":[2.657023784663185,1.640625005903401,-0.4798172649298883],"uv_a":[6.461844327167008,1.6406250059062502],"uv_b":[-5.998088854629342,0.007023784663184873]},{"parameter":1.908940612173128,"point":[2.6558864642954187,1.617187504912243,-0.48607313105492644],"uv_a":[6.464199293831582,1.6171875049218751],"uv_b":[-6.046609686247884,0.005886464295418836]},{"parameter":1.9329359913162028,"point":[2.654955567065369,1.5937500039237296,-0.49113230074771436],"uv_a":[6.466104516455323,1.5937500039375],"uv_b":[-6.09456891304307,0.004955567065369149]},{"parameter":1.956706655728973,"point":[2.654231310195462,1.5703125029496365,-0.4950314656198781],"uv_a":[6.467573353101572,1.570312502953125],"uv_b":[-6.142092641772257,0.004231310195462079]},{"parameter":1.980312529562813,"point":[2.653713862838442,1.546875001969282,-0.49779788487367427],"uv_a":[6.468615722185245,1.54687500196875],"uv_b":[-6.1892974281150135,0.0037138628384418837]},{"parameter":2.0038102660059347,"point":[2.6534033459906636,1.5234375009858294,-0.49945038143594533],"uv_a":[6.469238469495507,1.523437500984375],"uv_b":[-6.236293122069564,0.00340334599066372]},{"parameter":2.0272544390138956,"point":[2.6532998323121433,1.5,-0.49999999992617605],"uv_a":[6.469445610700496,1.5],"uv_b":[-6.283185307179586,0.0032998323121433693]},{"parameter":2.0506986120218564,"point":[2.6534033459906636,1.4765624990141706,-0.49945038143594533],"uv_a":[6.469238469495507,1.476562499015625],"uv_b":[-6.330077492289608,0.00340334599066372]},{"parameter":2.0741963484649784,"point":[2.653713862838442,1.453124998030718,-0.49779788487367427],"uv_a":[6.468615722185245,1.45312499803125],"uv_b":[-6.377073186244159,0.0037138628384418837]},{"parameter":2.0978022222988186,"point":[2.654231310195462,1.4296874970503635,-0.4950314656198781],"uv_a":[6.467573353101572,1.429687497046875],"uv_b":[-6.424277972586916,0.004231310195462079]},{"parameter":2.1215728867115886,"point":[2.654955567065369,1.4062499960762704,-0.49113230074771436],"uv_a":[6.466104516455323,1.4062499960625],"uv_b":[-6.471801701316102,0.004955567065369149]},{"parameter":2.1455682658546635,"point":[2.6558864642954187,1.382812495087757,-0.48607313105492644],"uv_a":[6.464199293831582,1.3828124950781249],"uv_b":[-6.519760928111288,0.005886464295418836]},{"parameter":2.1698529485024536,"point":[2.657023784663185,1.359374994096599,-0.4798172649298883],"uv_a":[6.461844327167008,1.3593749940937498],"uv_b":[-6.568281759729831,0.007023784663184873]},{"parameter":2.1944978882057993,"point":[2.658367263219139,1.3359374931113475,-0.4723171538695391],"uv_a":[6.459022293559571,1.335937493109375],"uv_b":[-6.617503315796581,0.008367263219139165]},{"parameter":2.219582554986654,"point":[2.6599165875751147,1.3124999921429783,-0.46351240231687274],"uv_a":[6.455711171507174,1.312499992125],"uv_b":[-6.667582098587488,0.009916587575114821]},{"parameter":2.2292289551793076,"point":[2.6605578475175835,1.3036124747379754,-0.45981728976936054],"uv_a":[6.454322155547218,1.3036124747185793],"uv_b":[-6.686832520226724,0.010557847517583596]},{"parameter":2.245199737966649,"point":[2.661671398333681,1.2890624911271733,-0.4533269982238437],"uv_a":[6.4518832194913704,1.289062491140625],"uv_b":[-6.718697697846379,0.011671398333680916]},{"parameter":2.2714513992865384,"point":[2.6636312892525402,1.2656249901923697,-0.4416654331671527],"uv_a":[6.447503544943923,1.2656249901562502],"uv_b":[-6.771060476844116,0.013631289252540313]},{"parameter":2.298465894534514,"point":[2.665795808144511,1.2421874891766853,-0.42840717696171626],"uv_a":[6.442528064963776,1.2421874891718752],"uv_b":[-6.824922267930643,0.015795808144511092]},{"parameter":2.3263976559562445,"point":[2.668164456886363,1.218749988230484,-0.41339863443903974],"uv_a":[6.436900537905881,1.2187499881875001],"uv_b":[-6.880591752191097,0.018164456886363034]},{"parameter":2.334096525881456,"point":[2.6688367325081037,1.2124421713379019,-0.40903605611156013],"uv_a":[6.435265695699773,1.2124421713240072],"uv_b":[-6.8959308260780645,0.018836732508103804]},{"parameter":2.3554429466399993,"point":[2.6707366924618046,1.1953124872008485,-0.39644106691982683],"uv_a":[6.430548103168361,1.195312487203125],"uv_b":[-6.938457427971402,0.02073669246180465]},{"parameter":2.3858482256578353,"point":[2.6735119271668495,1.1718749862074442,-0.37727175259540324],"uv_a":[6.423374323095858,1.17187498621875],"uv_b":[-6.99902340399334,0.023511927166849578]},{"parameter":2.4142659159642545,"point":[2.676146462339821,1.1510589049267823,-0.3581062860764056],"uv_a":[6.416209235852327,1.1510589049558613],"uv_b":[-7.055621570203881,0.026146462339820875]},{"parameter":2.4179551881624737,"point":[2.676489529566215,1.148437485202999,-0.3555331182112076],"uv_a":[6.415247777732344,1.148437485234375],"uv_b":[-7.062968159867342,0.026489529566215086]},{"parameter":2.4522359407017382,"point":[2.679668825028625,1.1249999842433287,-0.3307188960032387],"uv_a":[6.405982164951411,1.12499998425],"uv_b":[-7.131247433824937,0.029668825028625]},{"parameter":2.483108765935122,"point":[2.682484382574458,1.1053831442378574,-0.3070464740359601],"uv_a":[6.397152776004882,1.1053831441829938],"uv_b":[-7.192745463946767,0.03248438257445807]},{"parameter":2.4894064551112955,"point":[2.683049096621975,1.101562483208832,-0.3020720860026923],"uv_a":[6.39529857577927,1.101562483265625],"uv_b":[-7.205290184421267,0.03304909662197497]},{"parameter":2.5306143545269717,"point":[2.6866295856806124,1.078124982247845,-0.2683681601029221],"uv_a":[6.38274531690847,1.07812498228125],"uv_b":[-7.28741736962639,0.036629585680612475]},{"parameter":2.545336048638029,"point":[2.687848191674414,1.070432890569811,-0.2558751619620383],"uv_a":[6.378096316157436,1.0704328905583784],"uv_b":[-7.316760765608352,0.037848191674414]},{"parameter":2.5780020414748828,"point":[2.690409492858698,1.0546874813189289,-0.22736921676137894],"uv_a":[6.367495976813366,1.054687481296875],"uv_b":[-7.381903130562026,0.040409492858698215]},{"parameter":2.6033040786122617,"point":[2.6922359418385375,1.043782544775904,-0.20461093197499977],"uv_a":[6.359039856309991,1.043782544835369],"uv_b":[-7.432380547655207,0.04223594183853763]},{"parameter":2.636457958223602,"point":[2.694387978944502,1.0312499802545585,-0.17399258296503345],"uv_a":[6.347671689641234,1.0312499803125],"uv_b":[-7.498560546101639,0.044387978944502304]},{"parameter":2.658422333068843,"point":[2.6956460397094473,1.0240718842044194,-0.15327239998927394],"uv_a":[6.339983396462546,1.02407188420137],"uv_b":[-7.542420693746534,0.04564603970944736]},{"parameter":2.711636646360984,"point":[2.698077246952141,1.0104891926828272,-0.10187820905755025],"uv_a":[6.3209269366151,1.0104891927209265],"uv_b":[-7.648788324227829,0.048077246952141106]},{"parameter":2.7257375186846122,"point":[2.6985641655431207,1.007812479304347,-0.08804228783551021],"uv_a":[6.315799343415534,1.007812479328125],"uv_b":[-7.6769741830212865,0.04856416554312082]},{"parameter":2.7637113664357873,"point":[2.6995286807036782,1.0025514117246113,-0.05044702228975368],"uv_a":[6.301870476767655,1.0025514116897098],"uv_b":[-7.752915623511649,0.04952868070367833]},{"parameter":2.8152262012469973,"point":[2.6999998138937857,1.0000010049131958,0.0010024836771621234],"uv_a":[6.282814016920209,1.000001004851859],"uv_b":[-7.855986602671856,0.04999981389378583]},{"parameter":2.866751718958035,"point":[2.6994904754362534,1.00275878387061,0.05245162560341963],"uv_a":[6.263757557072764,1.0027587838245893],"uv_b":[-7.95907824893286,0.04949047543625351]},{"parameter":2.902711322533601,"point":[2.698564165559826,1.0078124792599703,0.08804228733141027],"uv_a":[6.250571271133383,1.007812479328125],"uv_b":[-8.030989083919604,0.04856416555982612]},{"parameter":2.9188606997463196,"point":[2.6980008502910633,1.0109104497357295,0.10388172037675542],"uv_a":[6.2447010972253185,1.0109104497297228],"uv_b":[-8.063269584592987,0.04800085029106338]},{"parameter":2.972133675220844,"point":[2.6955314793972236,1.0247211804257086,0.1552740918058576],"uv_a":[6.225644637377873,1.0247211804997898],"uv_b":[-8.169751309047495,0.045531479397223684]},{"parameter":2.9919910350975543,"point":[2.6943879789281096,1.0312499802959674,0.17399258320352173],"uv_a":[6.218698924623721,1.0312499803125],"uv_b":[-8.209402722323311,0.04438797892810964]},{"parameter":3.027342086943391,"point":[2.6920832594763313,1.0446844215850304,0.20661007731490855],"uv_a":[6.206588177530428,1.0446844215891913],"uv_b":[-8.279969049775923,0.0420832594763314]},{"parameter":3.050446297900436,"point":[2.6904094928695583,1.0546874812929066,0.22736921664616086],"uv_a":[6.198874637593571,1.054687481296875],"uv_b":[-8.326060137158041,0.04040949286955842]},{"parameter":3.085445119318108,"point":[2.6876574427069433,1.0716280479800027,0.2578710349665264],"uv_a":[6.187531717682981,1.0716280480210147],"uv_b":[-8.395855209100558,0.03765744270694338]},{"parameter":3.09783286674942,"point":[2.686629585655327,1.078124982305163,0.2683681603195926],"uv_a":[6.183625297356484,1.07812498228125],"uv_b":[-8.420545898749737,0.036629585655326924]},{"parameter":3.139040766159197,"point":[2.6830490965935136,1.1015624832696838,0.3020720862093555],"uv_a":[6.171072038485683,1.101562483265625],"uv_b":[-8.502673083930594,0.03304909659351374]},{"parameter":3.147877503993888,"point":[2.682255636269859,1.1069411007860208,0.309038349905685],"uv_a":[6.168475257835536,1.1069411008145305],"uv_b":[-8.520275396993782,0.03225563626985917]}],"residual_tolerance":1.575e-8,"surfaces":[6,16],"uv_tubes":[[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.124209214796271,"lo":-2.406411402341082},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.1569719794561633,"lo":-2.4983683491236492},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.3356934500336592,"lo":-2.4009843280911483},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.2730948163911444,"lo":-2.527527717583665},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.304622606034943,"lo":-2.6074524837142277},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.387415930460316,"lo":-2.63467743591581},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.5189460843310227,"lo":-2.561012957837497},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.4328472398898455,"lo":-2.7111946612525},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.49213211051033,"lo":-2.761441066003101},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254676408,"lo":-2.81080582131352},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6219879575435745,"lo":-2.832218721122559},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.729987522899675,"lo":-2.7753347548779006},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.65703829648088,"lo":-2.907432210495206},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.7088315327320975,"lo":-2.954939313125543},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537707235,"lo":-3.002058695859559},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098578984435,"lo":-3.048894713019921},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.8579288019235642,"lo":-3.0955474456289704},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415437515,"lo":-3.1421143472107476},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133865332663,"lo":-3.1886918564537368},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982770595,"lo":-3.235377023798282},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.047808283381304,"lo":-3.2822692089025267},{"hi":0.003610373407122225,"lo":0.003092804836973606}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507258495,"lo":-3.32947192064632},{"hi":0.004334896628529705,"lo":0.002782312212751492}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709599688387,"lo":-3.3770948917420713},{"hi":0.00526620493288199,"lo":0.0026789681484427064}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.187637861550616,"lo":-3.425256505256022},{"hi":0.006404080828265268,"lo":0.002782796479666949}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594159665,"lo":-3.474086728195151},{"hi":0.007748258778254247,"lo":0.00309377262920707}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.281126611320027,"lo":-3.523730769472351},{"hi":0.009298425421035539,"lo":0.003611823583701934}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940540434,"lo":-3.5743537744474887},{"hi":0.0110542203528885,"lo":0.004336827574911162}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309668438,"lo":-3.6261470106987064},{"hi":0.013015236308362876,"lo":0.005268614530587357}],[{"hi":6.112258701285593,"lo":6.091296595453359},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5078505523016856,"lo":-3.553197784279911},{"hi":0.01081381271721149,"lo":0.00931843751728012}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.450966586057027,"lo":-3.6611973496360117},{"hi":0.0145828696949728,"lo":0.007304191265416371}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.472379485866066,"lo":-3.7341933817119455},{"hi":0.01755107117460586,"lo":0.007751616422179808}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411764854,"lo":-3.791053196669256},{"hi":0.020124845947643966,"lo":0.009302251490963087}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.571990645927086,"lo":-3.8503380672897407},{"hi":0.02290175438838382,"lo":0.01105851068269681}],[{"hi":6.131315161133038,"lo":6.110353055300805},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.722172349342089,"lo":-3.7642392228485635},{"hi":0.019267849677432114,"lo":0.017428861725226952}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.648507871263776,"lo":-3.89576937671927},{"hi":0.02514556844911775,"lo":0.014123378528171582}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.6757328234653586,"lo":-3.9785627011446434},{"hi":0.029062396432430138,"lo":0.015186223179612046}],[{"hi":6.150371620980485,"lo":6.12940951514825},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.755657589595921,"lo":-4.010090490788442},{"hi":0.030615551030877874,"lo":0.018776177864919585}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.882200979088438,"lo":-3.947491857145927},{"hi":0.027708985069164527,"lo":0.024660346228047914}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.784816958055937,"lo":-4.126213327723423},{"hi":0.03602741592695935,"lo":0.02013093860322357}],[{"hi":6.16942808082793,"lo":6.1484659749956965},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.876773904838504,"lo":-4.158976092383315},{"hi":0.037429258814647426,"lo":0.02449520245267678}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-4.010890591239015,"lo":-4.098902156554955},{"hi":0.03463601724082288,"lo":0.030668715622550025}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.8994431600668644,"lo":-4.31007908597115},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.096443336311079,"lo":-4.219896784556971},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.030925261373579,"lo":-4.3799006210861675},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.148128302436899,"lo":-4.378583739347481},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.145268909678024,"lo":-4.498100546941084},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.277665065484228,"lo":-4.475922131863309},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.18365585640266,"lo":-4.716064478675202},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.438540028419418,"lo":-4.599942531786336},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.3915598604660815,"lo":-4.7511140353998},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.401109072904305,"lo":-4.916567304209324},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.5042420533669025,"lo":-5.019596949167937},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.661572109866798,"lo":-5.041279312318611},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.833024713750971,"lo":-4.973954007718258},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.704847029168753,"lo":-5.236685181575229},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.936229625322849,"lo":-5.1555303635473235},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.935450071364669,"lo":-5.26635006359683},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-5.033035232517605,"lo":-5.285422317983507},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.054182753889798,"lo":-5.379894578658169},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.190923056786897,"lo":-5.337640036696706},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874322536,"lo":-5.525334800348151},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.335990988988904,"lo":-5.398714591361407},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.250629090168746,"lo":-5.558119240777895},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632619046,"lo":-5.63996100240702},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.488709275164908,"lo":-5.525442223482214},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.39755271173421,"lo":-5.680543542786913},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.446215258321955,"lo":-5.749045138431647},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.542859982601096,"lo":-5.755492992067783},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.639761640507173,"lo":-5.716457009942011},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.574439893647168,"lo":-5.852787314949437},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764255475,"lo":-5.9030337196881115},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579519583,"lo":-5.952398474508268},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.783942561273484,"lo":-5.943268449371758},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.841037250853977,"lo":-5.9372893590501565},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.798630950189871,"lo":-6.049024864144405},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186429091,"lo":-6.096531966762842},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191392256,"lo":-6.14365134948497},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232657513,"lo":-6.190487366633442},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.999521455584698,"lo":-6.237140099230629},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683069086743,"lo":-6.283707000800527},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040205912,"lo":-6.330284509978665},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.14250875184952,"lo":-6.3769696773996305},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936959542,"lo":-6.423861862509653},{"hi":0.003610373347704421,"lo":0.003092804955102668}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104380507,"lo":-6.47106457415326},{"hi":0.0043348965339982115,"lo":0.002782312295107392}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613558645,"lo":-6.51868754527243},{"hi":0.00526620490950247,"lo":0.002678968124401493}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.329230515128543,"lo":-6.566849158774475},{"hi":0.006404080805183288,"lo":0.00278279645564794}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247725731,"lo":-6.61567938170166},{"hi":0.007748258755518211,"lo":0.0030937726052697734}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719264874202,"lo":-6.6653234229669165},{"hi":0.009298425398716947,"lo":0.003611823559886762}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.4698386475963305,"lo":-6.715946427930081},{"hi":0.011054220331047748,"lo":0.00433682755127629}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.517345750214767,"lo":-6.7677396641693015},{"hi":0.013015236287066134,"lo":0.005268614507187852}],[{"hi":6.4743314383870585,"lo":6.453369332554823},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.629081255309016,"lo":-6.725333363505196},{"hi":0.011840367402521146,"lo":0.008634067690177272}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.623102164987414,"lo":-6.782428053085688},{"hi":0.013898499965875555,"lo":0.008330745885388957}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139850905,"lo":-6.87578603483959},{"hi":0.017551071090259107,"lo":0.007751616495962121}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894671061,"lo":-6.932645850103698},{"hi":0.02012484592845265,"lo":0.009302251468598755}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.713583299409735,"lo":-6.991930720712005},{"hi":0.022901754370066918,"lo":0.011058510660807208}],[{"hi":6.455274978539613,"lo":6.434312872707378},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.849913604417162,"lo":-6.926608973852},{"hi":0.020181283751585344,"lo":0.016819905642881494}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.81087762229139,"lo":-7.023510631758077},{"hi":0.024536612369206345,"lo":0.01503681260070211}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325475927525,"lo":-7.120155356037217},{"hi":0.02906239657693943,"lo":0.015186223051714798}],[{"hi":6.436218518692168,"lo":6.415256412859932},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.885827071572259,"lo":-7.168817902624962},{"hi":0.03141553268576347,"lo":0.018242856820906983}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.040928390876958,"lo":-7.077661339194265},{"hi":0.02717566401900351,"lo":0.025460327887032452}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.9264096119521525,"lo":-7.267805981740127},{"hi":0.03602741595344483,"lo":0.020130938641395257}],[{"hi":6.417162058844722,"lo":6.396199953012487},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.0082513735812775,"lo":-7.315741524190426},{"hi":0.03811549766612421,"lo":0.024037709936958862}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.1676560229977655,"lo":-7.230379625370269},{"hi":0.034178524717008774,"lo":0.03135495447942427}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035814011021,"lo":-7.451671740036637},{"hi":0.04379056379788748,"lo":0.025888118504699964}],[{"hi":6.398105598997277,"lo":6.3771434931650415},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.228730577662467,"lo":-7.375447557572276},{"hi":0.04028540366201705,"lo":0.034192373693009426}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.186476035701004,"lo":-7.512187860469375},{"hi":0.045532095227266645,"lo":0.03272558930584557}],[{"hi":6.379049139149831,"lo":6.358087033317596},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.280948296375666,"lo":-7.533335381841567},{"hi":0.04588883979821645,"lo":0.03675659489901939}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.300020550762342,"lo":-7.630920542994503},{"hi":0.04869205315643166,"lo":0.03793186762660827}],[{"hi":6.359992679302386,"lo":6.339030573470151},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.410840250811849,"lo":-7.630140989036324},{"hi":0.048162161239337475,"lo":0.04187185741461219}],[{"hi":6.340936219454941,"lo":6.319974113622705},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.329685432783943,"lo":-7.86152358519042},{"hi":0.052939661437528596,"lo":0.04078362522405987}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.5924166066409144,"lo":-7.733345900608201},{"hi":0.049538002725080243,"lo":0.04710340977018168}],[{"hi":6.321879759607495,"lo":6.30091765377526},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.525091302040561,"lo":-7.9047985044923745},{"hi":0.05145771102479335,"lo":0.0466351352220058}],[{"hi":6.30282329976005,"lo":6.281861193927814},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.546773665191235,"lo":-8.06212856099227},{"hi":0.05094208027400082,"lo":0.048586414323463334}],[{"hi":6.283766839912604,"lo":6.262804734080369},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.649803310149848,"lo":-8.165261541454868},{"hi":0.05101849080885046,"lo":0.04847179852118888}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.815256578959373,"lo":-8.174810753893091},{"hi":0.05134309518910829,"lo":0.046711545806971344}],[{"hi":6.264710380065159,"lo":6.243748274232924},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.966428082572836,"lo":-8.127830585939755},{"hi":0.04969079609735161,"lo":0.046874219753537893}],[{"hi":6.245653920217713,"lo":6.224691814385479},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.850306135683972,"lo":-8.38271475795651},{"hi":0.05293959207874277,"lo":0.040592737609544294}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-8.090448482495862,"lo":-8.288705548874944},{"hi":0.047818480335451774,"lo":0.04210097798988155}],[{"hi":6.226597460370267,"lo":6.205635354538034},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.068270067418087,"lo":-8.421101704681147},{"hi":0.04899741783166611,"lo":0.03747382057277493}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.187786875011687,"lo":-8.418242311922278},{"hi":0.045430792689877375,"lo":0.037061959656012444}],[{"hi":6.207541000522822,"lo":6.186578894690587},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.186469993273008,"lo":-8.535445352985592},{"hi":0.04591359319478849,"lo":0.0321533423817133}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.346473829802202,"lo":-8.469927278048093},{"hi":0.03971315681017629,"lo":0.034573871552094015}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-8.256291528388022,"lo":-8.666927454292308},{"hi":0.043790563778953295,"lo":0.025888118469887367}],[{"hi":6.1884845406753755,"lo":6.167522434843142},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-8.467468457804218,"lo":-8.555480023120158},{"hi":0.03463601724082288,"lo":0.030668715622550025}]]},{"anchors":[{"parameter":0.0,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-2.081583143507084,0.3400255935013612]},{"parameter":0.027960601948876673,"point":[2.9879723108865743,1.078124982260299,0.2683681601500001],"uv_a":[6.193609511793907,1.07812498228125],"uv_b":[-2.1373605912358022,0.3379723108865744]},{"parameter":0.06566350641898697,"point":[2.985032342842705,1.0994777312845825,0.2993023758744895],"uv_a":[6.183251596162853,1.0994777313317967],"uv_b":[-2.2125545136462232,0.3350323428427049]},{"parameter":0.06914134111203746,"point":[2.984753332289419,1.1015624833168893,0.30207208636967364],"uv_a":[6.182323686679556,1.101562483265625],"uv_b":[-2.2194877770635526,0.33475333228941917]},{"parameter":0.10627874720988245,"point":[2.9817151124528634,1.1249999842435154,0.33071889600382687],"uv_a":[6.172721158909179,1.12499998425],"uv_b":[-2.2935305269455717,0.33171511245286345]},{"parameter":0.138451119986034,"point":[2.9790322399577196,1.1469658845454735,0.3540719041429702],"uv_a":[6.1648856016319,1.1469658845608737],"uv_b":[-2.3576621455573745,0.3290322399577197]},{"parameter":0.14053223592357528,"point":[2.9788582043878766,1.148437485213058,0.3555331182412742],"uv_a":[6.1643950877238165,1.148437485234375],"uv_b":[-2.3618098009586244,0.3288582043878767]},{"parameter":0.1726109003025741,"point":[2.9761831302065995,1.1718749862655384,0.3772717527632513],"uv_a":[6.157094202032266,1.17187498621875],"uv_b":[-2.425754557084009,0.3261831302065996]},{"parameter":0.20299169788098603,"point":[2.973690380710923,1.1953124872401966,0.39644106703150683],"uv_a":[6.150650620365512,1.195312487203125],"uv_b":[-2.486320532996485,0.32369038071092326]},{"parameter":0.22377451989690716,"point":[2.972027308682751,1.2119959662445097,0.4087220039129997],"uv_a":[6.146519607100946,1.2119959662778652],"uv_b":[-2.527755845914946,0.3220273086827512]},{"parameter":0.23201503912643257,"point":[2.971380414731811,1.2187499882135842,0.4133986343912045],"uv_a":[6.1449458871691025,1.2187499881875001],"uv_b":[-2.5441862084965225,0.3213804147318111]},{"parameter":0.2599273283225378,"point":[2.9692536588896807,1.242187489148606,0.42840717688126084],"uv_a":[6.139893056008326,1.2421874891718752],"uv_b":[-2.5998556927076493,0.3192536588896808]},{"parameter":0.2869249884216469,"point":[2.9673105070407413,1.2656249901667684,0.44166543309173684],"uv_a":[6.135426420474502,1.2656249901562502],"uv_b":[-2.6537174838093325,0.3173105070407414]},{"parameter":0.3131624290936812,"point":[2.9655513201809924,1.2890624911441202,0.4533269982760353],"uv_a":[6.131495248472412,1.289062491140625],"uv_b":[-2.7060802629977676,0.3155513201809925]},{"parameter":0.3380244834888475,"point":[2.9640199117830357,1.3118138222699471,0.46323424153891385],"uv_a":[6.128153612569992,1.3118138222613736],"uv_b":[-2.7557150480637147,0.3140199117830358]},{"parameter":0.3387661663716,"point":[2.963976425838612,1.3124999921298923,0.46351240227393675],"uv_a":[6.128059766113292,1.312499992125],"uv_b":[-2.7571958621254273,0.3139764258386122]},{"parameter":0.3638415140017471,"point":[2.9625861179326485,1.3359374931093746,0.47231715386248857],"uv_a":[6.125088483845136,1.335937493109375],"uv_b":[-2.8072746449644437,0.31258611793264857]},{"parameter":0.38847931536185726,"point":[2.961380656429395,1.3593749940954285,0.4798172649252091],"uv_a":[6.122556360574773,1.3593749940937498],"uv_b":[-2.8564962010346706,0.31138065642939505]},{"parameter":0.41275880271272114,"point":[2.9603602671622977,1.3828124950683494,0.48607313096507004],"uv_a":[6.120443514455005,1.3828124950781249],"uv_b":[-2.905017032578237,0.3103602671622978]},{"parameter":0.4367506572602511,"point":[2.9595251415313575,1.4062499960514447,0.4911323006081817],"uv_a":[6.118734302858896,1.4062499960625],"uv_b":[-2.952976259352182,0.3095251415313576]},{"parameter":0.46051916706439316,"point":[2.9588754363665952,1.4296874970565727,0.49503146566535783],"uv_a":[6.117416661523907,1.429687497046875],"uv_b":[-3.0004999882075496,0.3088754363665953]},{"parameter":0.4841239329795401,"point":[2.9584112739474304,1.4531249980307959,0.49779788487451726],"uv_a":[6.1164816319842075,1.45312499803125],"uv_b":[-3.047704774525534,0.3084112739474305]},{"parameter":0.5076212685256527,"point":[2.958132741516926,1.4765624990160457,0.4994503814760793],"uv_a":[6.115923030013848,1.476562499015625],"uv_b":[-3.094700468487279,0.30813274151692616]},{"parameter":0.5310653968754574,"point":[2.958039891529144,1.5,0.5000000000611257],"uv_a":[6.115737227918569,1.5],"uv_b":[-3.141592653589793,0.30803989152914424]},{"parameter":0.5545095252252621,"point":[2.958132741516926,1.5234375009839543,0.4994503814760793],"uv_a":[6.115923030013848,1.523437500984375],"uv_b":[-3.188484838692307,0.30813274151692616]},{"parameter":0.5780068607713746,"point":[2.9584112739474304,1.5468750019692041,0.49779788487451726],"uv_a":[6.1164816319842075,1.54687500196875],"uv_b":[-3.2354805326540523,0.3084112739474305]},{"parameter":0.6016116266865216,"point":[2.9588754363665952,1.5703125029434273,0.49503146566535783],"uv_a":[6.117416661523907,1.570312502953125],"uv_b":[-3.2826853189720366,0.3088754363665953]},{"parameter":0.6253801364906636,"point":[2.9595251415313575,1.5937500039485553,0.4911323006081817],"uv_a":[6.118734302858896,1.5937500039375],"uv_b":[-3.3302090478274042,0.3095251415313576]},{"parameter":0.6493719910381935,"point":[2.9603602671622977,1.6171875049316506,0.48607313096507004],"uv_a":[6.120443514455005,1.6171875049218751],"uv_b":[-3.3781682746013493,0.3103602671622978]},{"parameter":0.6736514783890574,"point":[2.961380656429395,1.6406250059045715,0.4798172649252091],"uv_a":[6.122556360574773,1.6406250059062502],"uv_b":[-3.4266891061449156,0.31138065642939505]},{"parameter":0.6982892797491675,"point":[2.9625861179326485,1.6640625068906254,0.47231715386248857],"uv_a":[6.125088483845136,1.664062506890625],"uv_b":[-3.4759106622151426,0.31258611793264857]},{"parameter":0.7233646273793146,"point":[2.963976425838612,1.6875000078701077,0.46351240227393675],"uv_a":[6.128059766113292,1.687500007875],"uv_b":[-3.525989445054159,0.3139764258386122]},{"parameter":0.7241063102620672,"point":[2.9640199117830357,1.6881861777300529,0.46323424153891385],"uv_a":[6.128153612569992,1.6881861777386264],"uv_b":[-3.5274702591158715,0.3140199117830358]},{"parameter":0.7489683646572335,"point":[2.9655513201809924,1.7109375088558798,0.4533269982760353],"uv_a":[6.131495248472412,1.710937508859375],"uv_b":[-3.5771050441818186,0.3155513201809925]},{"parameter":0.7752058053292677,"point":[2.9673105070407413,1.7343750098332316,0.44166543309173684],"uv_a":[6.135426420474502,1.7343750098437498],"uv_b":[-3.6294678233702538,0.3173105070407414]},{"parameter":0.8022034654283768,"point":[2.9692536588896807,1.757812510851394,0.42840717688126084],"uv_a":[6.139893056008326,1.7578125108281248],"uv_b":[-3.683329614471937,0.3192536588896808]},{"parameter":0.8301157546244821,"point":[2.971380414731811,1.7812500117864158,0.4133986343912045],"uv_a":[6.1449458871691025,1.7812500118124999],"uv_b":[-3.7389990986830637,0.3213804147318111]},{"parameter":0.8383562738540075,"point":[2.972027308682751,1.7880040337554903,0.4087220039129997],"uv_a":[6.146519607100946,1.7880040337221348],"uv_b":[-3.75542946126464,0.3220273086827512]},{"parameter":0.8591390958699285,"point":[2.973690380710923,1.8046875127598034,0.39644106703150683],"uv_a":[6.150650620365512,1.804687512796875],"uv_b":[-3.7968647741831014,0.32369038071092326]},{"parameter":0.8895198934483405,"point":[2.9761831302065995,1.8281250137344616,0.3772717527632513],"uv_a":[6.157094202032266,1.82812501378125],"uv_b":[-3.857430750095577,0.3261831302065996]},{"parameter":0.9215985578273392,"point":[2.9788582043878766,1.851562514786942,0.3555331182412742],"uv_a":[6.1643950877238165,1.851562514765625],"uv_b":[-3.921375506220962,0.3288582043878767]},{"parameter":0.9236796737648805,"point":[2.9790322399577196,1.8530341154545265,0.3540719041429702],"uv_a":[6.1648856016319,1.8530341154391263],"uv_b":[-3.9255231616222117,0.3290322399577197]},{"parameter":0.9558520465410321,"point":[2.9817151124528634,1.8750000157564846,0.33071889600382687],"uv_a":[6.172721158909179,1.87500001575],"uv_b":[-3.9896547802340145,0.33171511245286345]},{"parameter":0.9929894526388771,"point":[2.984753332289419,1.8984375166831107,0.30207208636967364],"uv_a":[6.182323686679556,1.898437516734375],"uv_b":[-4.063697530116034,0.33475333228941917]},{"parameter":0.9964672873319276,"point":[2.985032342842705,1.9005222687154175,0.2993023758744895],"uv_a":[6.183251596162853,1.9005222686682033],"uv_b":[-4.070630793533363,0.3350323428427049]},{"parameter":1.0341701918020378,"point":[2.9879723108865743,1.921875017739701,0.2683681601500001],"uv_a":[6.193609511793907,1.92187501771875],"uv_b":[-4.1458247159437835,0.3379723108865744]},{"parameter":1.0621307937509141,"point":[2.990025593501361,1.9361800657104595,0.24443189280520253],"uv_a":[6.2016175906938065,1.9361800656611843],"uv_b":[-4.201602163672502,0.3400255935013612]},{"parameter":1.081530484277304,"point":[2.99137146463429,1.945312518754148,0.2273692164378188],"uv_a":[6.207322823072767,1.9453125187031248],"uv_b":[-4.240310477615036,0.34137146463429024]},{"parameter":1.1233060883448023,"point":[2.994010307708874,1.962706951180748,0.18947896277030496],"uv_a":[6.21998358522476,1.9627069511839812],"uv_b":[-4.323719007011324,0.3440103077088743]},{"parameter":1.1399563130081112,"point":[2.9949501800369926,1.968750019662461,0.17399258344294688],"uv_a":[6.225155215538505,1.9687500196874999],"uv_b":[-4.356967891558006,0.34495018003699274]},{"parameter":1.1815666960635112,"point":[2.9969851414200517,1.9815806660152426,0.13446212146289366],"uv_a":[6.238349579755713,1.9815806660036719],"uv_b":[-4.440113025616254,0.34698514142005177]},{"parameter":1.229214087928075,"point":[2.998707814310851,1.9921875207229818,0.08804228752506559],"uv_a":[6.253833663689513,1.9921875206718749],"uv_b":[-4.535381530052305,0.3487078143108513]},{"parameter":1.2379835399870236,"point":[2.998949091222668,1.9936553977252123,0.07939992604383014],"uv_a":[6.256715574286667,1.9936553976847358],"uv_b":[-4.552914019133949,0.34894909122266826]},{"parameter":1.293380309955671,"point":[2.999901494675918,1.99940862801749,0.024310948999184546],"uv_a":[6.275081568817621,1.999408627997067],"uv_b":[-4.663747904226072,0.349901494675918]},{"parameter":1.348478677818362,"point":[2.9998420305338556,1.9990513081448087,-0.030786228130472493],"uv_a":[6.2934475633485745,1.9990513081483483],"uv_b":[-4.774000408416548,0.34984203053385565]},{"parameter":1.403955715116119,"point":[2.998770718853752,1.9925706287723952,-0.08587302104395379],"uv_a":[6.311813557879528,1.992570628843767],"uv_b":[-4.884990754064252,0.3487707188537521]},{"parameter":1.4061594509690132,"point":[2.9987078142710573,1.9921875206055155,-0.08804228885943374],"uv_a":[6.312536951121648,1.9921875206718749],"uv_b":[-4.889396433385479,0.34870781427105735]},{"parameter":1.4605334458072101,"point":[2.9966879209893302,1.9797275224690436,-0.1409308489857392],"uv_a":[6.330179552410482,1.9797275224787612],"uv_b":[-4.998122908279489,0.3466879209893303]},{"parameter":1.4954132906747397,"point":[2.9949501800535847,1.9687500197090473,-0.17399258317463864],"uv_a":[6.341215398725307,1.9687500196874999],"uv_b":[-5.067810068675873,0.3449501800535848]},{"parameter":1.519077735033578,"point":[2.9935943394688804,1.9600076838869414,-0.19594114092896384],"uv_a":[6.348545546941436,1.9600076838350269],"uv_b":[-5.115065608224227,0.3435943394688805]},{"parameter":1.5538428470629704,"point":[2.9913714645937475,1.9453125186461344,-0.22736921691606637],"uv_a":[6.359047791464718,1.9453125187031248],"uv_b":[-5.184467484104458,0.34137146459374756]},{"parameter":1.580688630748231,"point":[2.989491017758296,1.932500341259705,-0.25088534185181033],"uv_a":[6.36691154147239,1.932500341212875],"uv_b":[-5.238033575112214,0.33949101775829593]},{"parameter":1.601203330610856,"point":[2.987972310875444,1.92187501771164,-0.26836816025607485],"uv_a":[6.372761102606741,1.92187501771875],"uv_b":[-5.278953245034719,0.3379723108754442]},{"parameter":1.6423813938726104,"point":[2.9847533323182245,1.8984375167516232,-0.3020720861369931],"uv_a":[6.384046927584258,1.898437516734375],"uv_b":[-5.361080430199728,0.3347533323182246]},{"parameter":1.6470218030402053,"point":[2.9843793399091125,1.8956261424212553,-0.30574491900756773],"uv_a":[6.385277536003343,1.8956261424735315],"uv_b":[-5.370331090604577,0.3343793399091126]},{"parameter":1.679521568305571,"point":[2.9817151124391463,1.8750000157258093,-0.330718896100445],"uv_a":[6.39364945549147,1.87500001575],"uv_b":[-5.435123180720872,0.3317151124391464]},{"parameter":1.7137739258950988,"point":[2.9788582043731306,1.8515625147560555,-0.3555331183335919],"uv_a":[6.401975526676833,1.851562514765625],"uv_b":[-5.503402454722163,0.32885820437313074]},{"parameter":1.72091629919211,"point":[2.978261030091669,1.8464661071564765,-0.3605013684048319],"uv_a":[6.403643530534297,1.8464661071772088],"uv_b":[-5.517637304153507,0.32826103009166907]},{"parameter":1.745855408194644,"point":[2.9761831302425756,1.8281250138047276,-0.37727175256023615],"uv_a":[6.409276412231548,1.82812501378125],"uv_b":[-5.567347210301307,0.3261831302425757]},{"parameter":1.776236205779676,"point":[2.973690380748728,1.8046875128283095,-0.3964410668370696],"uv_a":[6.415719993898301,1.804687512796875],"uv_b":[-5.627913186240673,0.32369038074872813]},{"parameter":1.8052570859497412,"point":[2.971380414771232,1.7812500118523045,-0.41339863420470424],"uv_a":[6.421424727094712,1.7812500118124999],"uv_b":[-5.68577886176755,0.321380414771232]},{"parameter":1.808369739931587,"point":[2.971138152013541,1.778678880365249,-0.4151362205890914],"uv_a":[6.422009525065251,1.7786788803689406],"uv_b":[-5.691985295358635,0.32113815201354123]},{"parameter":1.8331704450667723,"point":[2.9692536588719127,1.75781251082419,-0.4284071769592079],"uv_a":[6.426477558392323,1.7578125108281248],"uv_b":[-5.741448346424442,0.3192536588719128]},{"parameter":1.8601681051630032,"point":[2.967310507022423,1.7343750098077526,-0.44166543316679185],"uv_a":[6.430944193926146,1.7343750098437498],"uv_b":[-5.795310137514503,0.31731050702242314]},{"parameter":1.8864055457423028,"point":[2.965551320193207,1.7109375088711614,-0.4533269982289724],"uv_a":[6.434875365859817,1.710937508859375],"uv_b":[-5.847672916520141,0.3155513201932072]},{"parameter":1.9120090455704917,"point":[2.9639764258193875,1.6875000078487399,-0.4635124023440469],"uv_a":[6.438310848287356,1.687500007875],"uv_b":[-5.89878851580742,0.31397642581938756]},{"parameter":1.9290726021117979,"point":[2.963013108223454,1.6716003485187807,-0.4696310471481647],"uv_a":[6.440375519596205,1.6716003485384285],"uv_b":[-5.932862850106976,0.31301310822345396]},{"parameter":1.9370861248056854,"point":[2.9625861179453747,1.6640625069029968,-0.472317153818279],"uv_a":[6.441282130487092,1.664062506890625],"uv_b":[-5.948867298501852,0.31258611794537483]},{"parameter":1.961723926228562,"point":[2.9613806564094936,1.6406250058879954,-0.47981726499148236],"uv_a":[6.443814253825877,1.6406250059062502],"uv_b":[-5.998088854693556,0.31138065640949364]},{"parameter":1.98600341357655,"point":[2.9603602671421374,1.6171875049176623,-0.48607313102983524],"uv_a":[6.445927099945645,1.6171875049218751],"uv_b":[-6.046609686225586,0.3103602671421375]},{"parameter":2.009995268121205,"point":[2.959525141510987,1.5937500039372514,-0.49113230067171487],"uv_a":[6.447636311541753,1.5937500039375],"uv_b":[-6.094568912988007,0.3095251415109872]},{"parameter":2.033763777858961,"point":[2.958875436413802,1.5703125029630696,-0.4950314655214878],"uv_a":[6.448953952739905,1.570312502953125],"uv_b":[-6.142092641717985,0.308875436413802]},{"parameter":2.0573685438247455,"point":[2.9584112739267834,1.5468750019634778,-0.49779788493640886],"uv_a":[6.449888982416442,1.54687500196875],"uv_b":[-6.1892974281383335,0.30841127392678347]},{"parameter":2.0808658793679835,"point":[2.9581327414962093,1.5234375009810819,-0.49945038153756327],"uv_a":[6.450447584386803,1.523437500984375],"uv_b":[-6.236293122088576,0.3081327414962094]},{"parameter":2.1043100077124057,"point":[2.958039891542615,1.5,-0.5000000000212772],"uv_a":[6.450633386413662,1.5],"uv_b":[-6.283185307179586,0.30803989154261524]},{"parameter":2.127754136056828,"point":[2.9581327414962093,1.4765624990189181,-0.49945038153756327],"uv_a":[6.450447584386803,1.476562499015625],"uv_b":[-6.330077492270597,0.3081327414962094]},{"parameter":2.151251471600066,"point":[2.9584112739267834,1.4531249980365222,-0.49779788493640886],"uv_a":[6.449888982416442,1.45312499803125],"uv_b":[-6.377073186220839,0.30841127392678347]},{"parameter":2.1748562375658507,"point":[2.958875436413802,1.4296874970369304,-0.4950314655214878],"uv_a":[6.448953952739905,1.429687497046875],"uv_b":[-6.424277972641187,0.308875436413802]},{"parameter":2.1986247473036062,"point":[2.959525141510987,1.4062499960627486,-0.49113230067171487],"uv_a":[6.447636311541753,1.4062499960625],"uv_b":[-6.471801701371166,0.3095251415109872]},{"parameter":2.2226166018482614,"point":[2.9603602671421374,1.3828124950823377,-0.48607313102983524],"uv_a":[6.445927099945645,1.3828124950781249],"uv_b":[-6.519760928133587,0.3103602671421375]},{"parameter":2.2468960891962495,"point":[2.9613806564094936,1.3593749941120046,-0.47981726499148236],"uv_a":[6.443814253825877,1.3593749940937498],"uv_b":[-6.5682817596656164,0.31138065640949364]},{"parameter":2.271533890619126,"point":[2.9625861179453747,1.3359374930970032,-0.472317153818279],"uv_a":[6.441282130487092,1.335937493109375],"uv_b":[-6.617503315857321,0.31258611794537483]},{"parameter":2.279547413313013,"point":[2.963013108223454,1.3283996514812193,-0.4696310471481647],"uv_a":[6.440375519596205,1.3283996514615715],"uv_b":[-6.6335077642521965,0.31301310822345396]},{"parameter":2.2966109698543193,"point":[2.9639764258193875,1.3124999921512601,-0.4635124023440469],"uv_a":[6.438310848287356,1.312499992125],"uv_b":[-6.667582098551753,0.31397642581938756]},{"parameter":2.322214469682508,"point":[2.965551320193207,1.2890624911288386,-0.4533269982289724],"uv_a":[6.434875365859817,1.289062491140625],"uv_b":[-6.718697697839032,0.3155513201932072]},{"parameter":2.3484519102618076,"point":[2.967310507022423,1.2656249901922474,-0.44166543316679185],"uv_a":[6.430944193926146,1.2656249901562502],"uv_b":[-6.77106047684467,0.31731050702242314]},{"parameter":2.3754495703580383,"point":[2.9692536588719127,1.24218748917581,-0.4284071769592079],"uv_a":[6.426477558392323,1.2421874891718752],"uv_b":[-6.82492226793473,0.3192536588719128]},{"parameter":2.4002502754932236,"point":[2.971138152013541,1.221321119634751,-0.4151362205890914],"uv_a":[6.422009525065251,1.2213211196310594],"uv_b":[-6.874385319000537,0.32113815201354123]},{"parameter":2.4033629294750694,"point":[2.971380414771232,1.2187499881476955,-0.41339863420470424],"uv_a":[6.421424727094712,1.2187499881875001],"uv_b":[-6.880591752591623,0.321380414771232]},{"parameter":2.4323838096451347,"point":[2.973690380748728,1.1953124871716905,-0.3964410668370696],"uv_a":[6.415719993898301,1.195312487203125],"uv_b":[-6.938457428118499,0.32369038074872813]},{"parameter":2.4627646072301665,"point":[2.9761831302425756,1.1718749861952724,-0.37727175256023615],"uv_a":[6.409276412231548,1.17187498621875],"uv_b":[-6.999023404057866,0.3261831302425757]},{"parameter":2.4877037162327005,"point":[2.978261030091669,1.1535338928435235,-0.3605013684048319],"uv_a":[6.403643530534297,1.1535338928227912],"uv_b":[-7.048733310205665,0.32826103009166907]},{"parameter":2.494846089529712,"point":[2.9788582043731306,1.1484374852439445,-0.3555331183335919],"uv_a":[6.401975526676833,1.148437485234375],"uv_b":[-7.062968159637009,0.32885820437313074]},{"parameter":2.5290984471192397,"point":[2.9817151124391463,1.1249999842741907,-0.330718896100445],"uv_a":[6.39364945549147,1.12499998425],"uv_b":[-7.1312474336383005,0.3317151124391464]},{"parameter":2.5615982123846055,"point":[2.9843793399091125,1.1043738575787447,-0.30574491900756773],"uv_a":[6.385277536003343,1.1043738575264685],"uv_b":[-7.196039523754595,0.3343793399091126]},{"parameter":2.5662386215522,"point":[2.9847533323182245,1.1015624832483768,-0.3020720861369931],"uv_a":[6.384046927584258,1.101562483265625],"uv_b":[-7.205290184159445,0.3347533323182246]},{"parameter":2.6074166848139546,"point":[2.987972310875444,1.07812498228836,-0.26836816025607485],"uv_a":[6.372761102606741,1.07812498228125],"uv_b":[-7.287417369324453,0.3379723108754442]},{"parameter":2.6279313846765793,"point":[2.989491017758296,1.067499658740295,-0.25088534185181033],"uv_a":[6.36691154147239,1.067499658787125],"uv_b":[-7.328337039246959,0.33949101775829593]},{"parameter":2.65477716836184,"point":[2.9913714645937475,1.0546874813538654,-0.22736921691606635],"uv_a":[6.359047791464718,1.054687481296875],"uv_b":[-7.381903130254716,0.34137146459374756]},{"parameter":2.6895422803912323,"point":[2.9935943394688804,1.0399923161130586,-0.19594114092896384],"uv_a":[6.348545546941436,1.0399923161649731],"uv_b":[-7.4513050061349455,0.3435943394688805]},{"parameter":2.7132067247500706,"point":[2.9949501800535847,1.0312499802909525,-0.1739925831746386],"uv_a":[6.341215398725307,1.0312499803125],"uv_b":[-7.498560545683301,0.3449501800535848]},{"parameter":2.7480865696176004,"point":[2.9966879209893302,1.020272477530956,-0.14093084898573915],"uv_a":[6.330179552410482,1.0202724775212384],"uv_b":[-7.568247706079684,0.3466879209893303]},{"parameter":2.802460564455797,"point":[2.9987078142710573,1.0078124793944845,-0.08804228885943374],"uv_a":[6.312536951121648,1.007812479328125],"uv_b":[-7.676974180973693,0.34870781427105735]},{"parameter":2.8046643003086915,"point":[2.998770718853752,1.0074293712276043,-0.08587302104395379],"uv_a":[6.311813557879528,1.0074293711562325],"uv_b":[-7.68137986029492,0.3487707188537521]},{"parameter":2.8601413376064486,"point":[2.9998420305338556,1.0009486918551913,-0.030786228130472493],"uv_a":[6.2934475633485745,1.0009486918516517],"uv_b":[-7.792370205942625,0.34984203053385565]},{"parameter":2.9152397054691397,"point":[2.999901494675918,1.00059137198251,0.024310948999184546],"uv_a":[6.275081568817621,1.000591372002933],"uv_b":[-7.902622710133101,0.349901494675918]},{"parameter":2.970636475437787,"point":[2.998949091222668,1.0063446022747877,0.07939992604383014],"uv_a":[6.256715574286667,1.0063446023152642],"uv_b":[-8.013456595225223,0.34894909122266826]},{"parameter":2.9794059274967357,"point":[2.998707814310851,1.007812479277018,0.08804228752506559],"uv_a":[6.253833663689513,1.007812479328125],"uv_b":[-8.030989084306867,0.3487078143108513]},{"parameter":3.0270533193612996,"point":[2.9969851414200517,1.0184193339847571,0.13446212146289355],"uv_a":[6.238349579755713,1.0184193339963277],"uv_b":[-8.126257588742918,0.34698514142005177]},{"parameter":3.0686637024167,"point":[2.9949501800369926,1.031249980337539,0.17399258344294682],"uv_a":[6.225155215538505,1.0312499803125],"uv_b":[-8.209402722801165,0.34495018003699274]},{"parameter":3.085313927080009,"point":[2.994010307708874,1.037293048819252,0.18947896277030496],"uv_a":[6.21998358522476,1.0372930488160188],"uv_b":[-8.242651607347849,0.3440103077088743]},{"parameter":3.127089531147507,"point":[2.99137146463429,1.054687481245852,0.2273692164378188],"uv_a":[6.207322823072767,1.054687481296875],"uv_b":[-8.326060136744136,0.34137146463429024]},{"parameter":3.146489221673897,"point":[2.990025593501361,1.06381993428954,0.24443189280520244],"uv_a":[6.2016175906938065,1.0638199343388153],"uv_b":[-8.36476845068667,0.3400255935013612]}],"residual_tolerance":1.575e-8,"surfaces":[8,16],"uv_tubes":[[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-1.970028248049648,"lo":-2.2489154866932384},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-1.9869727464149602,"lo":-2.3629423584670652},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-2.1986879868115645,"lo":-2.2333543038982113},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-2.0714022772995144,"lo":-2.44161602670961},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.165267289721966,"lo":-2.48592538278098},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-2.349366834754875,"lo":-2.370105111761124},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-2.233920288707855,"lo":-2.5536440693347786},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-2.3046226052590577,"lo":-2.607452484821436},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.4034499071595623,"lo":-2.6106264717518686},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-2.494895120751793,"lo":-2.5770469336596755},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-2.432847240074269,"lo":-2.7111946611299027},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-2.492132110504283,"lo":-2.761441066012699},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-2.5489919254324622,"lo":-2.810805821374638},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.6068106928658734,"lo":-2.854984618195609},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-2.7527534199402894,"lo":-2.7601574902488526},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-2.6570382964473946,"lo":-2.9074322106424764},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-2.70883153282399,"lo":-2.9549393131751245},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-2.759454537947538,"lo":-3.0020586956653696},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-2.809098579030347,"lo":-3.048894712900072},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-2.857928801641447,"lo":-3.095547445918285},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-2.906090415571581,"lo":-3.1421143471615025},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-2.9537133866020433,"lo":-3.18869185641077},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-3.0009160982822514,"lo":-3.235377023794821},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-3.0478082833847653,"lo":-3.282269208897335},{"hi":0.30831844149249,"lo":0.3078541915535804}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-3.0944934507688164,"lo":-3.329471920577543},{"hi":0.3089683388084392,"lo":0.30757567665591745}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-3.1410709600180837,"lo":-3.3770948916080052},{"hi":0.3098037612049249,"lo":0.3074829491091009}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-3.1876378612613014,"lo":-3.4252565055381394},{"hi":0.3108245518608821,"lo":0.3075760260370708}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-3.234290594279514,"lo":-3.4740867281492394},{"hi":0.3120305184241783,"lo":0.3078548902694771}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-3.2811266115142166,"lo":-3.5237307692320483},{"hi":0.31342143496358954,"lo":0.3083194886281033}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-3.3282459940044617,"lo":-3.5743537743555964},{"hi":0.3149970409391556,"lo":0.308969733422888}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-3.37575309653711,"lo":-3.6261470107321916},{"hi":0.3167570416505394,"lo":0.30980550212072133}],[{"hi":6.129071912296562,"lo":6.108869318312469},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.5230278169307336,"lo":-3.530431887239297},{"hi":0.314106883671883,"lo":0.313889453949765}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-3.4282006889839773,"lo":-3.676374614313713},{"hi":0.318614136976906,"lo":0.3109570949871223}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-3.4723794858049484,"lo":-3.734193381747124},{"hi":0.3208288807602391,"lo":0.3120329464614948}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-3.5217442411668873,"lo":-3.7910531966753034},{"hi":0.3231399625875597,"lo":0.3134242033428625}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-3.5719906460496835,"lo":-3.850338067105317},{"hi":0.3256339264160717,"lo":0.31500014720542024}],[{"hi":6.147437906827515,"lo":6.127235312843423},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.7061383735199107,"lo":-3.788290186427793},{"hi":0.3233210965846314,"lo":0.32008662682993094}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-3.6725588354277177,"lo":-3.879735400020024},{"hi":0.3270165247672674,"lo":0.3187011646264071}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-3.67573282235815,"lo":-3.9785627019205285},{"hi":0.3311686291979523,"lo":0.31870488171957057}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-3.7295412378448076,"lo":-4.049265018471731},{"hi":0.3342083527504309,"lo":0.3208329818440454}],[{"hi":6.165803901358469,"lo":6.145601307374377},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.913080195418462,"lo":-3.9338184724247114},{"hi":0.3293803110974056,"lo":0.3285101332481908}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-3.797259924398606,"lo":-4.117918017457621},{"hi":0.33708085744315097,"lo":0.32366649496743216}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-3.8415692804699755,"lo":-4.211783029880073},{"hi":0.3408297719625306,"lo":0.325638672779752}],[{"hi":6.184169895889422,"lo":6.1639673019053305},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-4.049831003281376,"lo":-4.084497320368021},{"hi":0.3355903639492763,"lo":0.33419531118284773}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-3.920242948712522,"lo":-4.296212560764625},{"hi":0.3438522469743135,"lo":0.3291524067549658}],[{"hi":6.202535890420376,"lo":6.182333296436283},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.034269820486347,"lo":-4.313157059129938},{"hi":0.3441321587309347,"lo":0.3338657456570009}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-4.124185535787432,"lo":-4.317727105500106},{"hi":0.34406320690014836,"lo":0.3373338512355031}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.073493418822462,"lo":-4.490536065803898},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.257221237917959,"lo":-4.423465660651371},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.19067762344151,"lo":-4.60640329373275},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.249576016744152,"lo":-4.725918538924407},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.500316551889018,"lo":-4.5879789972972365},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.331246248949704,"lo":-4.885415674410317},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.4432428958451196,"lo":-4.9945054167975},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.552019717121139,"lo":-5.106971445359661},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":2.0167968967054755,"lo":1.9910156456226489},{"hi":-4.876179395421798,"lo":-4.898207792027933},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.671943483597459,"lo":-5.21557585806751},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9933593957211007,"lo":1.967578144638274},{"hi":-4.858748587486723,"lo":-5.207184389468639},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.973298989579164,"lo":-5.2095766873209355},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9699218947367256,"lo":1.944140643653899},{"hi":-4.976261856463766,"lo":-5.323271235864919},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.077335302088946,"lo":-5.345165757127726},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9464843937523504,"lo":1.9207031426695245},{"hi":-5.156194235267202,"lo":-5.36079258487973},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.9230468927679756,"lo":1.8972656416851494},{"hi":-5.114698874704702,"lo":-5.525334800529745},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.342579109390028,"lo":-5.388832411414277},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8996093917836006,"lo":1.8738281407007744},{"hi":-5.240746910371988,"lo":-5.564707360953461},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8761718907992253,"lo":1.8503906397163996},{"hi":-5.298564632718289,"lo":-5.639961002724746},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.474932755859475,"lo":-5.546107003016195},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8527343898148503,"lo":1.8269531387320246},{"hi":-5.4182174918579085,"lo":-5.666767022596906},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8292968888304753,"lo":1.8035156377476496},{"hi":-5.4462152584225745,"lo":-5.749045138119405},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.8058593878461,"lo":1.7800781367632748},{"hi":-5.51218183518692,"lo":-5.801510212821303},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.673365994585379,"lo":-5.704398162540806},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.782421886861725,"lo":1.7566406357788997},{"hi":-5.593059193227021,"lo":-5.840374448556056},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7589843858773497,"lo":1.733203134794525},{"hi":-5.633724764244321,"lo":-5.903033719694624},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7355468848929747,"lo":1.7097656338101501},{"hi":-5.690584579503226,"lo":-5.952398474531417},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.7121093839086,"lo":1.686328132825775},{"hi":-5.7454417179455834,"lo":-6.001019714381977},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.830639847208307,"lo":-6.001011518706089},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6886718829242247,"lo":1.6628906318414003},{"hi":-5.900853953317225,"lo":-5.980876195291603},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6652343819398496,"lo":1.6394531308570255},{"hi":-5.850424186118443,"lo":-6.096531967076965},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6417968809554748,"lo":1.6160156298726505},{"hi":-5.901047191629496,"lo":-6.143651349289645},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.6183593799710996,"lo":1.5925781288882757},{"hi":-5.950691232700744,"lo":-6.190487366512849},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5949218789867246,"lo":1.5691406279039006},{"hi":-5.99952145552805,"lo":-6.237140099177942},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5714843780023493,"lo":1.5457031269195258},{"hi":-6.047683068877289,"lo":-6.28370700097903},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5480468770179743,"lo":1.5222656259351508},{"hi":-6.095306040237849,"lo":-6.33028450998906},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.5246093760335993,"lo":1.4988281249507758},{"hi":-6.142508751906554,"lo":-6.376969677361608},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.501171875049224,"lo":1.475390623966401},{"hi":-6.189400936997565,"lo":-6.423861862452618},{"hi":0.3083184414033977,"lo":0.30785419163542693}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.477734374064849,"lo":1.451953122982026},{"hi":-6.236086104370113,"lo":-6.471064574121323},{"hi":0.3089683387879316,"lo":0.30757567663506125}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.454296873080474,"lo":1.428515621997651},{"hi":-6.282663613380143,"lo":-6.518687545481884},{"hi":0.30980376138783905,"lo":0.3074829489527464}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4308593720960987,"lo":1.4050781210132761},{"hi":-6.32923051518123,"lo":-6.566849158831123},{"hi":0.3108245517053576,"lo":0.3075760262194316}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.4074218711117237,"lo":1.381640620028901},{"hi":-6.375883247846324,"lo":-6.6156793816584285},{"hi":0.3120305184044381,"lo":0.3078548902486866}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3839843701273484,"lo":1.3582031190445263},{"hi":-6.422719265069527,"lo":-6.665323422729676},{"hi":0.31342143494420593,"lo":0.3083194886074252}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3605468691429734,"lo":1.3347656180601515},{"hi":-6.469838647282208,"lo":-6.71594642824073},{"hi":0.3149970410171372,"lo":0.30896973333773126}],[{"hi":6.459659813853729,"lo":6.4394572198696345},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.58549441906757,"lo":-6.665516661041948},{"hi":0.3138670887796122,"lo":0.31173213738921657}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3371093681585986,"lo":1.3113281170757765},{"hi":-6.565359095653084,"lo":-6.735730767150866},{"hi":0.31590306101125476,"lo":0.31108647303158676}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.3136718671742234,"lo":1.2878906160914017},{"hi":-6.5653508999771955,"lo":-6.820928896413589},{"hi":0.31870110894084647,"lo":0.3108266370717483}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2902343661898483,"lo":1.2644531151070268},{"hi":-6.613972139827755,"lo":-6.875786034855946},{"hi":0.320828880680855,"lo":0.3120329465347753}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2667968652054735,"lo":1.2410156141226518},{"hi":-6.663336894664549,"lo":-6.932645850114851},{"hi":0.32313996257089217,"lo":0.3134242033234438}],[{"hi":6.441293819322775,"lo":6.421091225338681},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.725996165803116,"lo":-6.973311421132151},{"hi":0.32490713829679807,"lo":0.315484672588656}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2433593642210983,"lo":1.217578113138277},{"hi":-6.8619724518183665,"lo":-6.8930046197737935},{"hi":0.3218649402866136,"lo":0.32065362649815965}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.2199218632367232,"lo":1.194140612153902},{"hi":-6.764860401537869,"lo":-7.054188779172253},{"hi":0.32831031270372035,"lo":0.3167604828162398}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.196484362252348,"lo":1.1707031111695272},{"hi":-6.817325476239767,"lo":-7.120155355936598},{"hi":0.3311686292302709,"lo":0.31870488176103295}],[{"hi":6.422927824791821,"lo":6.402725230807727},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-6.899603591762267,"lo":-7.148153122501264},{"hi":0.33241682978985576,"lo":0.32202733054438903}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.173046861267973,"lo":1.1472656101851522},{"hi":-7.020263611342977,"lo":-7.091437858499697},{"hi":0.33005255293605407,"lo":0.32706668152874574}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.149609360283598,"lo":1.1238281092007771},{"hi":-6.926409611634426,"lo":-7.267805981640883},{"hi":0.3374289285711778,"lo":0.32314438824109937}],[{"hi":6.404561830260867,"lo":6.384359236276773},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.001663253405711,"lo":-7.325623703987184},{"hi":0.339707794849045,"lo":0.32638665749921403}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1261718592992227,"lo":1.1003906082164023},{"hi":-7.177538202944896,"lo":-7.223791504969144},{"hi":0.3355013171364485,"lo":0.3336313550908887}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.1027343583148477,"lo":1.0769531072320273},{"hi":-7.041035813829428,"lo":-7.45167173965447},{"hi":0.3444102679898835,"lo":0.3283153752037853}],[{"hi":6.386195835729914,"lo":6.365993241745819},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.205578029479442,"lo":-7.41017637909197},{"hi":0.34252843152399937,"lo":0.3349348971097408}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-7.221204857231445,"lo":-7.48903531227023},{"hi":0.34513235826465083,"lo":0.33573012408739267}],[{"hi":6.36782984119896,"lo":6.347627247214866},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.243099378494256,"lo":-7.590108757895405},{"hi":0.3480400892191464,"lo":0.33692571484348166}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-7.356793927038235,"lo":-7.593071624780011},{"hi":0.34766186122299336,"lo":0.34088265829947195}],[{"hi":6.349463846668006,"lo":6.329261252683912},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.359186224890534,"lo":-7.707622026872451},{"hi":0.35016340286082137,"lo":0.34147469818209375}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.350794756291665,"lo":-7.894427130761712},{"hi":0.3527476008345114,"lo":0.34264813442587627}],[{"hi":6.331097852137052,"lo":6.310895258152958},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.668162822331239,"lo":-7.6901912189373745},{"hi":0.3488965280191416,"lo":0.34858200510566784}],[{"hi":6.3127318576060985,"lo":6.292529263622004},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.459399168999512,"lo":-8.014350897238034},{"hi":0.35198465389406275,"lo":0.346628095493545}],[{"hi":6.294365863075145,"lo":6.2741632690910505},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.571865197561673,"lo":-8.123127718514052},{"hi":0.35002042296004277,"lo":0.3497231022497309}],[{"hi":6.275999868544191,"lo":6.255797274560097},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.6809549399488555,"lo":-8.235124365409469},{"hi":0.35180630158241755,"lo":0.34704428431616874}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0089843543773471,"lo":0.9832031032945276},{"hi":-7.978391617061936,"lo":-8.066054062470155},{"hi":0.3494316450463022,"lo":0.34822526048721736}],[{"hi":6.257633874013237,"lo":6.237431280029143},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.840452075434765,"lo":-8.31679459761502},{"hi":0.35215316009245035,"lo":0.3435397956384527}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0324218553617224,"lo":1.0066406042789025},{"hi":-7.959967320626424,"lo":-8.37569299091766},{"hi":0.35105506418616983,"lo":0.3408802572708747}],[{"hi":6.239267879482283,"lo":6.21906528549819},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.142904953707799,"lo":-8.309149376441216},{"hi":0.3468299246932296,"lo":0.34213056305263745}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0558593563460974,"lo":1.0300781052632775},{"hi":-8.075834548555274,"lo":-8.49287719553671},{"hi":0.34928799385804243,"lo":0.3360937784851221}],[{"hi":6.2209018849513305,"lo":6.200699290967236},{"hi":1.0792968573304726,"lo":1.0535156062476523},{"hi":-8.248643508859068,"lo":-8.442185078571738},{"hi":0.34406320690014836,"lo":0.3373338512355031}]]}],"pcurves":[{"direction":[0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[2.0901201280414963,-2.152068272698568]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.465765601187591,-1.1]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.598076211353316,-1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[2.244994432064365,1.5]},{"axis_a":[3.0,0.0],"axis_b":[0.0,-3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.7910571473905725,1.1]},{"axis_a":[2.7,0.0],"axis_b":[0.0,-2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.7,0.0],"axis_b":[0.0,2.7],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.6967067093471659,0.7173560908995223],"kind":"Line2","origin":[1.8811081152373468,1.9368614454287116]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[3.0,0.0],"axis_b":[0.0,3.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-0.6967067093471652,0.717356090899523],"kind":"Line2","origin":[2.0901201280414963,-2.1520682726985685]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.863571923609742,0.0]},{"direction":[-1.0000000000000002,0.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.29999999999999966,1.5]},{"direction":[1.0000000000000002,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[7.083185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.483185307179586,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.759586531581287,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.29999999999999993,0.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.0]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,1.5]},{"direction":[-0.0,-1.0],"kind":"Line2","origin":[0.29999999999999993,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3530817792889511,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.3530817792889511,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.3252915462029815,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.32529154620298195,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-4.440892098500626e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.863571923609742,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.6941543369633125,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.759586531581287,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.907761699198547,1.5]},{"definition":0,"kind":"IntersectionSide","side":"A"},{"definition":0,"kind":"IntersectionSide","side":"B"},{"definition":1,"kind":"IntersectionSide","side":"A"},{"definition":1,"kind":"IntersectionSide","side":"B"}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[1.8811081152373468,0.0,-1.9368614454287116],"x":[0.6967067093471659,0.0,-0.7173560908995223],"y":[0.0,1.0,0.0],"z":[0.7173560908995223,-0.0,0.6967067093471659]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.0901201280414963,0.0,2.1520682726985685],"x":[-0.6967067093471652,0.0,-0.717356090899523],"y":[0.0,1.0,0.0],"z":[0.717356090899523,0.0,-0.6967067093471652]},"kind":"Plane"},{"frame":{"origin":[2.244994432064365,1.0,1.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.7910571473905725,1.0,1.1],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":2.7},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":3.0},{"frame":{"origin":[2.65,1.5,0.0],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Cylinder","radius":0.5}]},"id":"batch-staged.mixed-curved-openings.reverse","quality":{"kind":"Analytic"},"revision":2,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":0,"id":0,"tolerance":6.3e-8,"twin_halfedge":72},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":1,"id":1,"tolerance":6.3e-8,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":2,"id":2,"tolerance":6.3e-8,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":3,"id":3,"tolerance":6.3e-8,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":6.3e-8,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":5,"id":5,"tolerance":6.3e-8,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":6,"id":6,"tolerance":6.3e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":7,"id":7,"tolerance":6.3e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":8,"id":8,"tolerance":6.3e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":9,"id":9,"tolerance":6.3e-8,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":10,"id":10,"tolerance":6.3e-8,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":11,"id":11,"tolerance":6.3e-8,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.3530817792889511,"lo":0.0}},"halfedge":12,"id":12,"tolerance":6.3e-8,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":13,"id":13,"tolerance":6.3e-8,"twin_halfedge":92},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.3252915462029815,"lo":0.0}},"halfedge":14,"id":14,"tolerance":6.3e-8,"twin_halfedge":86},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":15,"id":15,"tolerance":6.3e-8,"twin_halfedge":88},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.6941543369633125,"lo":5.483185307179586}},"halfedge":16,"id":16,"tolerance":6.3e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":5.863571923609742,"lo":5.6941543369633125}},"halfedge":17,"id":17,"tolerance":6.3e-8,"twin_halfedge":90},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.863571923609742}},"halfedge":18,"id":18,"tolerance":6.3e-8,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.2999999999999996,"lo":0.0}},"halfedge":19,"id":19,"tolerance":6.3e-8,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":7.083185307179586,"lo":5.907761699198547}},"halfedge":20,"id":20,"tolerance":6.3e-8,"twin_halfedge":56},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":5.907761699198547,"lo":5.759586531581287}},"halfedge":21,"id":21,"tolerance":6.3e-8,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":5.759586531581287,"lo":5.483185307179586}},"halfedge":22,"id":22,"tolerance":6.3e-8,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":0.29999999999999993,"lo":0.0}},"halfedge":23,"id":23,"tolerance":6.3e-8,"twin_halfedge":76},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":25,"id":24,"tolerance":6.3e-8,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":26,"id":25,"tolerance":6.3e-8,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":27,"id":26,"tolerance":6.3e-8,"twin_halfedge":91},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":29,"id":27,"tolerance":6.3e-8,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":30,"id":28,"tolerance":6.3e-8,"twin_halfedge":74},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":31,"id":29,"tolerance":6.3e-8,"twin_halfedge":73},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":33,"id":30,"tolerance":6.3e-8,"twin_halfedge":43},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":37,"id":31,"tolerance":6.3e-8,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":32,"tolerance":6.3e-8,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":39,"id":33,"tolerance":6.3e-8,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":41,"id":34,"tolerance":6.3e-8,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":42,"id":35,"tolerance":6.3e-8,"twin_halfedge":85},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":45,"id":36,"tolerance":6.3e-8,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":46,"id":37,"tolerance":6.3e-8,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":47,"id":38,"tolerance":6.3e-8,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":53,"id":39,"tolerance":6.3e-8,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":54,"id":40,"tolerance":6.3e-8,"twin_halfedge":87},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":55,"id":41,"tolerance":6.3e-8,"twin_halfedge":95},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":61,"id":42,"tolerance":6.3e-8,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":65,"id":43,"tolerance":6.3e-8,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":66,"id":44,"tolerance":6.3e-8,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":67,"id":45,"tolerance":6.3e-8,"twin_halfedge":77},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":69,"id":46,"tolerance":6.3e-8,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":70,"id":47,"tolerance":6.3e-8,"twin_halfedge":81},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":3.147877503993888,"lo":0.0}},"halfedge":96,"id":48,"tolerance":6.3e-8,"twin_halfedge":97},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":3.146489221673897,"lo":0.0}},"halfedge":98,"id":49,"tolerance":6.3e-8,"twin_halfedge":99}],"faces":[{"id":0,"key":"batch-staged.mixed-curved-openings.reverse:planar:lower-cap-0","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":1,"key":"batch-staged.mixed-curved-openings.reverse:planar:upper-cap-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":-1.0999999369999995,"lo":-1.500000063}]}},{"id":2,"key":"batch-staged.mixed-curved-openings.reverse:planar:lower-cap-2","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.791057210390573,"lo":2.244994369064365},{"hi":1.500000063,"lo":1.0999999369999995}]}},{"id":3,"key":"batch-staged.mixed-curved-openings.reverse:planar:upper-cap-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":3.000000063,"lo":1.8811080522373467},{"hi":2.1520683356985684,"lo":-2.1520683356985684}]}},{"id":4,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-4","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":5.694154360296646,"lo":5.483185283846253},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":5,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-5","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":6,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[16],"outer":6,"uv_bounds":[{"hi":7.0831853305129195,"lo":5.863571900276408},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":7,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-7","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.3000000629999996,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":8,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[18],"outer":8,"uv_bounds":[{"hi":7.083185328179586,"lo":5.907761678198547},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":9,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-9","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":1.000000063,"lo":-6.3e-8}]}},{"id":10,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-10","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.759586552581287,"lo":5.4831852861795864},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":11,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-11","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.30000006299999993,"lo":-6.3e-8},{"hi":3.000000063,"lo":-6.3e-8}]}},{"id":12,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-12","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":1,"key":"top"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.3530818422889511,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":13,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-plane-13","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"rectangular-opening","entity":"rectangular-opening","face":0,"key":"bottom"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.32529160920298195,"lo":-6.3e-8},{"hi":0.500000063,"lo":-6.3e-8}]}},{"id":14,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-14","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":5.863571946943075,"lo":5.694154313629979},{"hi":3.000000063,"lo":1.499999937}]}},{"id":15,"key":"batch-staged.mixed-curved-openings.reverse:planar:vertical-cylinder-15","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"mixed-curved-host","entity":"mixed-curved-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":5.907761720198547,"lo":5.759586510581287},{"hi":3.000000063,"lo":1.499999937}]}},{"id":16,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"round-opening","entity":"round-opening","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[19],"outer":17,"uv_bounds":[{"hi":-2.081576844571777,"lo":-8.52028169592909},{"hi":0.3499989716450176,"lo":0.0033002839911298975}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":7,"prev":1,"to":0,"twin":72,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":64,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":60,"wire_ref":null},{"edge":3,"face":0,"from":4,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":2,"prev":4,"to":3,"twin":52,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":0,"next":3,"prev":5,"to":4,"twin":44,"wire_ref":null},{"edge":5,"face":0,"from":6,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":0,"next":4,"prev":6,"to":5,"twin":36,"wire_ref":null},{"edge":6,"face":0,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":0,"next":5,"prev":7,"to":6,"twin":32,"wire_ref":null},{"edge":7,"face":0,"from":0,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":0,"next":6,"prev":0,"to":7,"twin":24,"wire_ref":null},{"edge":8,"face":1,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":1,"next":11,"prev":9,"to":8,"twin":34,"wire_ref":null},{"edge":9,"face":1,"from":10,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":1,"next":8,"prev":10,"to":9,"twin":84,"wire_ref":null},{"edge":10,"face":1,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":1,"next":9,"prev":11,"to":10,"twin":62,"wire_ref":null},{"edge":11,"face":1,"from":8,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":1,"next":10,"prev":8,"to":11,"twin":80,"wire_ref":null},{"edge":12,"face":2,"from":13,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":2,"next":15,"prev":13,"to":12,"twin":82,"wire_ref":null},{"edge":13,"face":2,"from":14,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":2,"next":12,"prev":14,"to":13,"twin":92,"wire_ref":null},{"edge":14,"face":2,"from":15,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":2,"next":13,"prev":15,"to":14,"twin":86,"wire_ref":null},{"edge":15,"face":2,"from":12,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":2,"next":14,"prev":12,"to":15,"twin":88,"wire_ref":null},{"edge":16,"face":3,"from":17,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":3,"next":23,"prev":17,"to":16,"twin":28,"wire_ref":null},{"edge":17,"face":3,"from":18,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":3,"next":16,"prev":18,"to":17,"twin":90,"wire_ref":null},{"edge":18,"face":3,"from":19,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":3,"next":17,"prev":19,"to":18,"twin":40,"wire_ref":null},{"edge":19,"face":3,"from":20,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":3,"next":18,"prev":20,"to":19,"twin":48,"wire_ref":null},{"edge":20,"face":3,"from":21,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":3,"next":19,"prev":21,"to":20,"twin":56,"wire_ref":null},{"edge":21,"face":3,"from":22,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":3,"next":20,"prev":22,"to":21,"twin":94,"wire_ref":null},{"edge":22,"face":3,"from":23,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":3,"next":21,"prev":23,"to":22,"twin":68,"wire_ref":null},{"edge":23,"face":3,"from":16,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":3,"next":22,"prev":16,"to":23,"twin":76,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":4,"next":31,"prev":25,"to":0,"twin":7,"wire_ref":null},{"edge":24,"face":4,"from":8,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":4,"next":24,"prev":26,"to":7,"twin":35,"wire_ref":null},{"edge":25,"face":4,"from":12,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":4,"next":25,"prev":27,"to":8,"twin":83,"wire_ref":null},{"edge":26,"face":4,"from":17,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":4,"next":26,"prev":28,"to":12,"twin":91,"wire_ref":null},{"edge":16,"face":4,"from":16,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":4,"next":27,"prev":29,"to":17,"twin":16,"wire_ref":null},{"edge":27,"face":4,"from":24,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":4,"next":28,"prev":30,"to":16,"twin":75,"wire_ref":null},{"edge":28,"face":4,"from":25,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":4,"next":29,"prev":31,"to":24,"twin":74,"wire_ref":null},{"edge":29,"face":4,"from":0,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":4,"next":30,"prev":24,"to":25,"twin":73,"wire_ref":null},{"edge":6,"face":5,"from":6,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":5,"next":35,"prev":33,"to":7,"twin":6,"wire_ref":null},{"edge":30,"face":5,"from":9,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":5,"next":32,"prev":34,"to":6,"twin":43,"wire_ref":null},{"edge":8,"face":5,"from":8,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":5,"next":33,"prev":35,"to":9,"twin":8,"wire_ref":null},{"edge":24,"face":5,"from":7,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":5,"next":34,"prev":32,"to":8,"twin":25,"wire_ref":null},{"edge":5,"face":6,"from":5,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Reverse"},"id":36,"loop_ref":6,"next":43,"prev":37,"to":6,"twin":5,"wire_ref":null},{"edge":31,"face":6,"from":26,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Reverse"},"id":37,"loop_ref":6,"next":36,"prev":38,"to":5,"twin":51,"wire_ref":null},{"edge":32,"face":6,"from":27,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Reverse"},"id":38,"loop_ref":6,"next":37,"prev":39,"to":26,"twin":50,"wire_ref":null},{"edge":33,"face":6,"from":19,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Reverse"},"id":39,"loop_ref":6,"next":38,"prev":40,"to":27,"twin":49,"wire_ref":null},{"edge":18,"face":6,"from":18,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Forward"},"id":40,"loop_ref":6,"next":39,"prev":41,"to":19,"twin":18,"wire_ref":null},{"edge":34,"face":6,"from":15,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Reverse"},"id":41,"loop_ref":6,"next":40,"prev":42,"to":18,"twin":89,"wire_ref":null},{"edge":35,"face":6,"from":9,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Reverse"},"id":42,"loop_ref":6,"next":41,"prev":43,"to":15,"twin":85,"wire_ref":null},{"edge":30,"face":6,"from":6,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Forward"},"id":43,"loop_ref":6,"next":42,"prev":36,"to":9,"twin":33,"wire_ref":null},{"edge":4,"face":7,"from":4,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Forward"},"id":44,"loop_ref":7,"next":51,"prev":45,"to":5,"twin":4,"wire_ref":null},{"edge":36,"face":7,"from":28,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Reverse"},"id":45,"loop_ref":7,"next":44,"prev":46,"to":4,"twin":59,"wire_ref":null},{"edge":37,"face":7,"from":29,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Reverse"},"id":46,"loop_ref":7,"next":45,"prev":47,"to":28,"twin":58,"wire_ref":null},{"edge":38,"face":7,"from":20,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Reverse"},"id":47,"loop_ref":7,"next":46,"prev":48,"to":29,"twin":57,"wire_ref":null},{"edge":19,"face":7,"from":19,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Forward"},"id":48,"loop_ref":7,"next":47,"prev":49,"to":20,"twin":19,"wire_ref":null},{"edge":33,"face":7,"from":27,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Forward"},"id":49,"loop_ref":7,"next":48,"prev":50,"to":19,"twin":39,"wire_ref":null},{"edge":32,"face":7,"from":26,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Forward"},"id":50,"loop_ref":7,"next":49,"prev":51,"to":27,"twin":38,"wire_ref":null},{"edge":31,"face":7,"from":5,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Forward"},"id":51,"loop_ref":7,"next":50,"prev":44,"to":26,"twin":37,"wire_ref":null},{"edge":3,"face":8,"from":3,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Forward"},"id":52,"loop_ref":8,"next":59,"prev":53,"to":4,"twin":3,"wire_ref":null},{"edge":39,"face":8,"from":10,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Reverse"},"id":53,"loop_ref":8,"next":52,"prev":54,"to":3,"twin":63,"wire_ref":null},{"edge":40,"face":8,"from":14,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Reverse"},"id":54,"loop_ref":8,"next":53,"prev":55,"to":10,"twin":87,"wire_ref":null},{"edge":41,"face":8,"from":21,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Reverse"},"id":55,"loop_ref":8,"next":54,"prev":56,"to":14,"twin":95,"wire_ref":null},{"edge":20,"face":8,"from":20,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Reverse"},"id":56,"loop_ref":8,"next":55,"prev":57,"to":21,"twin":20,"wire_ref":null},{"edge":38,"face":8,"from":29,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Forward"},"id":57,"loop_ref":8,"next":56,"prev":58,"to":20,"twin":47,"wire_ref":null},{"edge":37,"face":8,"from":28,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Forward"},"id":58,"loop_ref":8,"next":57,"prev":59,"to":29,"twin":46,"wire_ref":null},{"edge":36,"face":8,"from":4,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Forward"},"id":59,"loop_ref":8,"next":58,"prev":52,"to":28,"twin":45,"wire_ref":null},{"edge":2,"face":9,"from":2,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Forward"},"id":60,"loop_ref":9,"next":63,"prev":61,"to":3,"twin":2,"wire_ref":null},{"edge":42,"face":9,"from":11,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Reverse"},"id":61,"loop_ref":9,"next":60,"prev":62,"to":2,"twin":71,"wire_ref":null},{"edge":10,"face":9,"from":10,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Reverse"},"id":62,"loop_ref":9,"next":61,"prev":63,"to":11,"twin":10,"wire_ref":null},{"edge":39,"face":9,"from":3,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Forward"},"id":63,"loop_ref":9,"next":62,"prev":60,"to":10,"twin":53,"wire_ref":null},{"edge":1,"face":10,"from":1,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Forward"},"id":64,"loop_ref":10,"next":71,"prev":65,"to":2,"twin":1,"wire_ref":null},{"edge":43,"face":10,"from":30,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Reverse"},"id":65,"loop_ref":10,"next":64,"prev":66,"to":1,"twin":79,"wire_ref":null},{"edge":44,"face":10,"from":31,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Reverse"},"id":66,"loop_ref":10,"next":65,"prev":67,"to":30,"twin":78,"wire_ref":null},{"edge":45,"face":10,"from":23,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Reverse"},"id":67,"loop_ref":10,"next":66,"prev":68,"to":31,"twin":77,"wire_ref":null},{"edge":22,"face":10,"from":22,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Reverse"},"id":68,"loop_ref":10,"next":67,"prev":69,"to":23,"twin":22,"wire_ref":null},{"edge":46,"face":10,"from":13,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Reverse"},"id":69,"loop_ref":10,"next":68,"prev":70,"to":22,"twin":93,"wire_ref":null},{"edge":47,"face":10,"from":11,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Reverse"},"id":70,"loop_ref":10,"next":69,"prev":71,"to":13,"twin":81,"wire_ref":null},{"edge":42,"face":10,"from":2,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Forward"},"id":71,"loop_ref":10,"next":70,"prev":64,"to":11,"twin":61,"wire_ref":null},{"edge":0,"face":11,"from":0,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Forward"},"id":72,"loop_ref":11,"next":79,"prev":73,"to":1,"twin":0,"wire_ref":null},{"edge":29,"face":11,"from":25,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Forward"},"id":73,"loop_ref":11,"next":72,"prev":74,"to":0,"twin":31,"wire_ref":null},{"edge":28,"face":11,"from":24,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Forward"},"id":74,"loop_ref":11,"next":73,"prev":75,"to":25,"twin":30,"wire_ref":null},{"edge":27,"face":11,"from":16,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Forward"},"id":75,"loop_ref":11,"next":74,"prev":76,"to":24,"twin":29,"wire_ref":null},{"edge":23,"face":11,"from":23,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Forward"},"id":76,"loop_ref":11,"next":75,"prev":77,"to":16,"twin":23,"wire_ref":null},{"edge":45,"face":11,"from":31,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Forward"},"id":77,"loop_ref":11,"next":76,"prev":78,"to":23,"twin":67,"wire_ref":null},{"edge":44,"face":11,"from":30,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Forward"},"id":78,"loop_ref":11,"next":77,"prev":79,"to":31,"twin":66,"wire_ref":null},{"edge":43,"face":11,"from":1,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Forward"},"id":79,"loop_ref":11,"next":78,"prev":72,"to":30,"twin":65,"wire_ref":null},{"edge":11,"face":12,"from":11,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Forward"},"id":80,"loop_ref":12,"next":83,"prev":81,"to":8,"twin":11,"wire_ref":null},{"edge":47,"face":12,"from":13,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Forward"},"id":81,"loop_ref":12,"next":80,"prev":82,"to":11,"twin":70,"wire_ref":null},{"edge":12,"face":12,"from":12,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Forward"},"id":82,"loop_ref":12,"next":81,"prev":83,"to":13,"twin":12,"wire_ref":null},{"edge":25,"face":12,"from":8,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Forward"},"id":83,"loop_ref":12,"next":82,"prev":80,"to":12,"twin":26,"wire_ref":null},{"edge":9,"face":13,"from":9,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Forward"},"id":84,"loop_ref":13,"next":87,"prev":85,"to":10,"twin":9,"wire_ref":null},{"edge":35,"face":13,"from":15,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Forward"},"id":85,"loop_ref":13,"next":84,"prev":86,"to":9,"twin":42,"wire_ref":null},{"edge":14,"face":13,"from":14,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Forward"},"id":86,"loop_ref":13,"next":85,"prev":87,"to":15,"twin":14,"wire_ref":null},{"edge":40,"face":13,"from":10,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Forward"},"id":87,"loop_ref":13,"next":86,"prev":84,"to":14,"twin":54,"wire_ref":null},{"edge":15,"face":14,"from":15,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Reverse"},"id":88,"loop_ref":14,"next":91,"prev":89,"to":12,"twin":15,"wire_ref":null},{"edge":34,"face":14,"from":18,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Forward"},"id":89,"loop_ref":14,"next":88,"prev":90,"to":15,"twin":41,"wire_ref":null},{"edge":17,"face":14,"from":17,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Forward"},"id":90,"loop_ref":14,"next":89,"prev":91,"to":18,"twin":17,"wire_ref":null},{"edge":26,"face":14,"from":12,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Forward"},"id":91,"loop_ref":14,"next":90,"prev":88,"to":17,"twin":27,"wire_ref":null},{"edge":13,"face":15,"from":13,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Forward"},"id":92,"loop_ref":15,"next":95,"prev":93,"to":14,"twin":13,"wire_ref":null},{"edge":46,"face":15,"from":22,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Forward"},"id":93,"loop_ref":15,"next":92,"prev":94,"to":13,"twin":69,"wire_ref":null},{"edge":21,"face":15,"from":21,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Reverse"},"id":94,"loop_ref":15,"next":93,"prev":95,"to":22,"twin":21,"wire_ref":null},{"edge":41,"face":15,"from":14,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Forward"},"id":95,"loop_ref":15,"next":94,"prev":92,"to":21,"twin":55,"wire_ref":null},{"edge":48,"face":6,"from":32,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Reverse"},"id":96,"loop_ref":16,"next":96,"prev":96,"to":32,"twin":97,"wire_ref":null},{"edge":48,"face":16,"from":32,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Forward"},"id":97,"loop_ref":17,"next":97,"prev":97,"to":32,"twin":96,"wire_ref":null},{"edge":49,"face":8,"from":33,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Forward"},"id":98,"loop_ref":18,"next":98,"prev":98,"to":33,"twin":99,"wire_ref":null},{"edge":49,"face":16,"from":33,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Reverse"},"id":99,"loop_ref":19,"next":99,"prev":99,"to":33,"twin":98,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":24},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":36},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":44},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":52},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":60},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":64},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":72},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":80},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":84},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":88},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":92},{"face_ref":6,"id":16,"is_hole":true,"start_halfedge":96},{"face_ref":16,"id":17,"is_hole":false,"start_halfedge":97},{"face_ref":8,"id":18,"is_hole":true,"start_halfedge":98},{"face_ref":16,"id":19,"is_hole":true,"start_halfedge":99}],"shells":[{"faces":[0,11,10,9,8,7,6,5,4,3,15,12,1,13,14,2,16],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":7,"position":[1.8811081152373468,0.0,1.9368614454287116],"tolerance":6.3e-8},{"id":1,"outgoing_halfedge":0,"position":[2.0901201280414963,0.0,2.1520682726985685],"tolerance":6.3e-8},{"id":2,"outgoing_halfedge":1,"position":[2.598076211353316,0.0,1.5],"tolerance":6.3e-8},{"id":3,"outgoing_halfedge":2,"position":[2.791057147390573,0.0,1.0999999999999992],"tolerance":6.3e-8},{"id":4,"outgoing_halfedge":3,"position":[2.0901201280414963,0.0,-2.1520682726985685],"tolerance":6.3e-8},{"id":5,"outgoing_halfedge":4,"position":[1.8811081152373468,0.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":6,"outgoing_halfedge":5,"position":[2.4657656011875906,0.0,1.1000000000000003],"tolerance":6.3e-8},{"id":7,"outgoing_halfedge":6,"position":[2.244994432064365,0.0,1.4999999999999998],"tolerance":6.3e-8},{"id":8,"outgoing_halfedge":11,"position":[2.244994432064365,1.0,1.4999999999999998],"tolerance":6.3e-8},{"id":9,"outgoing_halfedge":8,"position":[2.4657656011875906,1.0,1.1000000000000005],"tolerance":6.3e-8},{"id":10,"outgoing_halfedge":9,"position":[2.7910571473905725,1.0,1.1],"tolerance":6.3e-8},{"id":11,"outgoing_halfedge":10,"position":[2.598076211353316,1.0,1.5],"tolerance":6.3e-8},{"id":12,"outgoing_halfedge":15,"position":[2.244994432064365,1.5,1.5],"tolerance":6.3e-8},{"id":13,"outgoing_halfedge":12,"position":[2.598076211353316,1.5,1.5],"tolerance":6.3e-8},{"id":14,"outgoing_halfedge":13,"position":[2.791057147390573,1.5,1.0999999999999996],"tolerance":6.3e-8},{"id":15,"outgoing_halfedge":14,"position":[2.465765601187591,1.5,1.1],"tolerance":6.3e-8},{"id":16,"outgoing_halfedge":23,"position":[1.8811081152373468,3.0,1.9368614454287116],"tolerance":6.3e-8},{"id":17,"outgoing_halfedge":16,"position":[2.244994432064365,3.0,1.4999999999999998],"tolerance":6.3e-8},{"id":18,"outgoing_halfedge":17,"position":[2.4657656011875906,3.0,1.1000000000000005],"tolerance":6.3e-8},{"id":19,"outgoing_halfedge":18,"position":[1.8811081152373468,3.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":20,"outgoing_halfedge":19,"position":[2.0901201280414963,3.0,-2.152068272698568],"tolerance":6.3e-8},{"id":21,"outgoing_halfedge":20,"position":[2.791057147390573,3.0,1.0999999999999992],"tolerance":6.3e-8},{"id":22,"outgoing_halfedge":21,"position":[2.598076211353316,3.0,1.5],"tolerance":6.3e-8},{"id":23,"outgoing_halfedge":22,"position":[2.0901201280414963,3.0,2.1520682726985685],"tolerance":6.3e-8},{"id":24,"outgoing_halfedge":29,"position":[1.8811081152373468,1.5,1.9368614454287116],"tolerance":6.3e-8},{"id":25,"outgoing_halfedge":30,"position":[1.8811081152373468,1.0,1.9368614454287116],"tolerance":6.3e-8},{"id":26,"outgoing_halfedge":37,"position":[1.8811081152373468,1.0,-1.9368614454287116],"tolerance":6.3e-8},{"id":27,"outgoing_halfedge":38,"position":[1.8811081152373468,1.5,-1.9368614454287116],"tolerance":6.3e-8},{"id":28,"outgoing_halfedge":45,"position":[2.0901201280414963,1.0,-2.152068272698568],"tolerance":6.3e-8},{"id":29,"outgoing_halfedge":46,"position":[2.0901201280414963,1.5,-2.152068272698568],"tolerance":6.3e-8},{"id":30,"outgoing_halfedge":65,"position":[2.0901201280414963,1.0,2.1520682726985685],"tolerance":6.3e-8},{"id":31,"outgoing_halfedge":66,"position":[2.0901201280414963,1.5,2.1520682726985685],"tolerance":6.3e-8},{"id":32,"outgoing_halfedge":96,"position":[2.682255636269859,1.1069411008145305,0.30903834988326967],"tolerance":6.3e-8},{"id":33,"outgoing_halfedge":98,"position":[2.990025593501361,1.0638199343388153,0.244431892777589],"tolerance":6.3e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.arc-host.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.arc-host.json index 65a406e9..047c01ad 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.arc-host.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.arc-host.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.1,0.9,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.1,0.9,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.1,1.25,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,0.9,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,0.9,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.1,0.9,2.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,2.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.35,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.35]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.35]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.35,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.1,0.9,0.5],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,0.5],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.1,0.9,0.5],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,0.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,1.25,0.5],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-9,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-9,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-9,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.350000001,"lo":-1e-9},{"hi":1.000000001,"lo":-1e-9}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000001,"lo":-1e-9},{"hi":0.350000001,"lo":-1e-9}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.500000001,"lo":-1e-9},{"hi":0.350000001,"lo":-1e-9}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.350000001,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000001,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":1.500000001,"lo":-1e-9},{"hi":1.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.1,0.9,0.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":3,"position":[2.1,0.9,0.5],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[1.1,1.25,0.5],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[2.1,1.25,0.5],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.1,0.9,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[2.1,0.9,2.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":7,"position":[1.1,1.25,2.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[2.1,1.25,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,2.1,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.6,2.1,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,2.1,0.8]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,2.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,2.1,2.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.45000000000000007]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.45000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.45000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.45000000000000007]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.6,1.3,0.8],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,0.8],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.05,1.3,0.8],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,0.8],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,2.1,0.8],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"second-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-9,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-9,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-9,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.800000001,"lo":-1e-9},{"hi":0.4500000010000001,"lo":-1e-9}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4500000010000001,"lo":-1e-9},{"hi":0.800000001,"lo":-1e-9}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.200000001,"lo":-1e-9},{"hi":0.800000001,"lo":-1e-9}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.800000001,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.4500000010000001,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":1.200000001,"lo":-1e-9},{"hi":0.4500000010000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.6,1.3,0.8],"tolerance":1e-9},{"id":1,"outgoing_halfedge":3,"position":[1.05,1.3,0.8],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[0.6,2.1,0.8],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[1.05,2.1,0.8],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[0.6,1.3,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.05,1.3,2.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":7,"position":[0.6,2.1,2.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[1.05,2.1,2.0],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_vertical_arc_extrusion_batch"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.0]}],"intersections":[],"pcurves":[{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,2.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.5,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-2.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.8369701987210297e-16,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,-1.8369701987210297e-16,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[1.5,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"}]},"id":"arc-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.000000001,"lo":-2.000000001},{"hi":2.000000001,"lo":-2.000000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.000000001,"lo":-2.000000001},{"hi":2.000000001,"lo":-2.000000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.5707963272948966,"lo":-5e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.5707963274615633,"lo":-6.666666666666667e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[0.0,2.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[9.184850993605148e-17,1.5,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[1.5,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[2.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[0.0,2.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[9.184850993605148e-17,1.5,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[1.5,0.0,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[1.8369701987210297e-16,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,1.019803902718557,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.786057109949175,0.9,0.5]},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.05,1.70220445305492,0.8]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.374772708486752,0.8]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.6,1.9078784028338913,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.748331477354788,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1999999999999997,0.9,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.5612494995995996,1.25,2.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,1.25,2.0]},{"direction":[-1.8369701987210297e-16,1.0,0.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.8]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.7022044530549203,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.7022044530549203,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.05,1.7022044530549203,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.05,1.7022044530549203,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.7860571099491753,0.8999999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.0198039027185568,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.3,0.8]}],"intersections":[],"pcurves":[{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.5,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.8369701987210297e-16,1.0],"kind":"Line2","origin":[0.0,-2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1,1.019803902718557]},{"direction":[1.0,0.0],"kind":"Line2","origin":[1.1,1.25]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.786057109949175,0.9]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.05,1.70220445305492]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.05,1.3]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6,1.374772708486752]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6,-1.9078784028338913]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.748331477354788,-1.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.05,-1.3]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.1999999999999997,-0.9]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.5612494995995996,-1.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1,-1.25]},{"direction":[-1.8369701987210297e-16,1.0],"kind":"Line2","origin":[9.184850993605148e-17,1.5]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981137,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981137,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981134,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981134,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981134,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981134,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.46676533904729633,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370317,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.46676533904729633,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.7475843496690207,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.7475843496690207,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,0.8]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4612494995995995,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4612494995995995,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4612494995995995,0.30000000000000004]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.23019609728144297,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.2301960972814432,0.30000000000000004]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.2301960972814432,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5860571099491754,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5860571099491754,0.30000000000000004]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5860571099491754,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.440892098500626e-16,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.440892098500626e-16,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5331056943471393,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5331056943471393,1.2]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.30166852264521204,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.30166852264521204,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.220446049250313e-16,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.40220445305492003,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.40220445305492025,1.2]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981137,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370317,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,2.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[9.184850993605148e-17,1.5,0.0],"x":[-1.8369701987210297e-16,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,1.8369701987210297e-16,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[2.0,0.0,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[1.5612494995995996,1.25,0.5],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,1.25,0.5],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.1999999999999997,0.9,0.5],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.9078784028338913,0.8],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.748331477354788,1.3,0.8],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.05,1.3,0.8],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5}]},"id":"batch-vertical-arc.arc-host","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.1592794807274087}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":134},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.0484815049888478}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":128},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.048481504988848,"lo":0.7475843496690207}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":118},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932843}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":114},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.6435011087932843,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":104},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.46676533904729633,"lo":5.551115123125783e-17}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.6751315329370315,"lo":0.4667653390472962}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0180812136981134,"lo":0.6751315329370315}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":70},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.2661036727794992,"lo":1.0180812136981134}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.2661036727794992}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":54},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.23019609728144297,"lo":0.0}},"halfedge":12,"id":12,"tolerance":1e-9,"twin_halfedge":150},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.4612494995995995,"lo":0.0}},"halfedge":13,"id":13,"tolerance":1e-9,"twin_halfedge":144},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.6751315329370317,"lo":0.46676533904729633}},"halfedge":14,"id":14,"tolerance":1e-9,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.5860571099491754,"lo":0.0}},"halfedge":15,"id":15,"tolerance":1e-9,"twin_halfedge":156},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932844}},"halfedge":16,"id":16,"tolerance":1e-9,"twin_halfedge":116},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":1.2661036727794994,"lo":1.0180812136981137}},"halfedge":17,"id":17,"tolerance":1e-9,"twin_halfedge":67},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":0.40220445305492003,"lo":0.0}},"halfedge":18,"id":18,"tolerance":1e-9,"twin_halfedge":170},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.30166852264521204,"lo":0.0}},"halfedge":19,"id":19,"tolerance":1e-9,"twin_halfedge":166},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.048481504988848}},"halfedge":20,"id":20,"tolerance":1e-9,"twin_halfedge":131},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":0.5331056943471393,"lo":0.0}},"halfedge":21,"id":21,"tolerance":1e-9,"twin_halfedge":162},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":0.5331056943471393,"lo":0.0}},"halfedge":22,"id":22,"tolerance":1e-9,"twin_halfedge":164},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.048481504988848}},"halfedge":23,"id":23,"tolerance":1e-9,"twin_halfedge":186},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":0.30166852264521204,"lo":0.0}},"halfedge":24,"id":24,"tolerance":1e-9,"twin_halfedge":168},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.40220445305492003,"lo":0.0}},"halfedge":25,"id":25,"tolerance":1e-9,"twin_halfedge":172},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.2661036727794992,"lo":1.0180812136981134}},"halfedge":26,"id":26,"tolerance":1e-9,"twin_halfedge":174},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":0.7475843496690205,"lo":0.6435011087932843}},"halfedge":27,"id":27,"tolerance":1e-9,"twin_halfedge":182},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5860571099491754,"lo":0.0}},"halfedge":28,"id":28,"tolerance":1e-9,"twin_halfedge":159},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":0.6751315329370315,"lo":0.4667653390472962}},"halfedge":29,"id":29,"tolerance":1e-9,"twin_halfedge":178},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":0.4612494995995995,"lo":0.0}},"halfedge":30,"id":30,"tolerance":1e-9,"twin_halfedge":147},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":0.23019609728144297,"lo":0.0}},"halfedge":31,"id":31,"tolerance":1e-9,"twin_halfedge":153},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":32,"id":32,"tolerance":1e-9,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5707963267948963,"lo":1.266103672779499}},"halfedge":33,"id":33,"tolerance":1e-9,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.2661036727794994,"lo":1.0180812136981137}},"halfedge":34,"id":34,"tolerance":1e-9,"twin_halfedge":176},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":1.0180812136981134,"lo":0.6751315329370315}},"halfedge":35,"id":35,"tolerance":1e-9,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":0.6751315329370317,"lo":0.46676533904729633}},"halfedge":36,"id":36,"tolerance":1e-9,"twin_halfedge":180},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.46676533904729633,"lo":5.551115123125783e-17}},"halfedge":37,"id":37,"tolerance":1e-9,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":38,"tolerance":1e-9,"twin_halfedge":99},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":0.6435011087932843,"lo":0.0}},"halfedge":39,"id":39,"tolerance":1e-9,"twin_halfedge":109},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932843}},"halfedge":40,"id":40,"tolerance":1e-9,"twin_halfedge":184},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.048481504988848,"lo":0.7475843496690207}},"halfedge":41,"id":41,"tolerance":1e-9,"twin_halfedge":123},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.1592794807274087,"lo":1.048481504988848}},"halfedge":42,"id":42,"tolerance":1e-9,"twin_halfedge":188},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.1592794807274087}},"halfedge":43,"id":43,"tolerance":1e-9,"twin_halfedge":139},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":45,"id":44,"tolerance":1e-9,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":46,"id":45,"tolerance":1e-9,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":47,"id":46,"tolerance":1e-9,"twin_halfedge":61},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":48,"id":47,"tolerance":1e-9,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":50,"id":48,"tolerance":1e-9,"twin_halfedge":138},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":51,"id":49,"tolerance":1e-9,"twin_halfedge":137},{"chart_seam":false,"geometry":{"curve":50,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":52,"id":50,"tolerance":1e-9,"twin_halfedge":136},{"chart_seam":false,"geometry":{"curve":51,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":53,"id":51,"tolerance":1e-9,"twin_halfedge":135},{"chart_seam":false,"geometry":{"curve":52,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":55,"id":52,"tolerance":1e-9,"twin_halfedge":69},{"chart_seam":false,"geometry":{"curve":53,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":56,"id":53,"tolerance":1e-9,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":54,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":57,"id":54,"tolerance":1e-9,"twin_halfedge":165},{"chart_seam":false,"geometry":{"curve":55,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":58,"id":55,"tolerance":1e-9,"twin_halfedge":177},{"chart_seam":false,"geometry":{"curve":56,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":65,"id":56,"tolerance":1e-9,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":57,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":66,"id":57,"tolerance":1e-9,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":58,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":71,"id":58,"tolerance":1e-9,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":59,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":72,"id":59,"tolerance":1e-9,"twin_halfedge":149},{"chart_seam":false,"geometry":{"curve":60,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":73,"id":60,"tolerance":1e-9,"twin_halfedge":148},{"chart_seam":false,"geometry":{"curve":61,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":74,"id":61,"tolerance":1e-9,"twin_halfedge":181},{"chart_seam":false,"geometry":{"curve":62,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":76,"id":62,"tolerance":1e-9,"twin_halfedge":175},{"chart_seam":false,"geometry":{"curve":63,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":77,"id":63,"tolerance":1e-9,"twin_halfedge":171},{"chart_seam":false,"geometry":{"curve":64,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":81,"id":64,"tolerance":1e-9,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":65,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":85,"id":65,"tolerance":1e-9,"twin_halfedge":103},{"chart_seam":false,"geometry":{"curve":66,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":86,"id":66,"tolerance":1e-9,"twin_halfedge":102},{"chart_seam":false,"geometry":{"curve":67,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":87,"id":67,"tolerance":1e-9,"twin_halfedge":101},{"chart_seam":false,"geometry":{"curve":68,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":88,"id":68,"tolerance":1e-9,"twin_halfedge":100},{"chart_seam":false,"geometry":{"curve":69,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":90,"id":69,"tolerance":1e-9,"twin_halfedge":179},{"chart_seam":false,"geometry":{"curve":70,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":91,"id":70,"tolerance":1e-9,"twin_halfedge":158},{"chart_seam":false,"geometry":{"curve":71,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":92,"id":71,"tolerance":1e-9,"twin_halfedge":157},{"chart_seam":false,"geometry":{"curve":72,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":95,"id":72,"tolerance":1e-9,"twin_halfedge":113},{"chart_seam":false,"geometry":{"curve":73,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":96,"id":73,"tolerance":1e-9,"twin_halfedge":112},{"chart_seam":false,"geometry":{"curve":74,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":97,"id":74,"tolerance":1e-9,"twin_halfedge":111},{"chart_seam":false,"geometry":{"curve":75,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":98,"id":75,"tolerance":1e-9,"twin_halfedge":110},{"chart_seam":false,"geometry":{"curve":76,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":105,"id":76,"tolerance":1e-9,"twin_halfedge":117},{"chart_seam":false,"geometry":{"curve":77,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":106,"id":77,"tolerance":1e-9,"twin_halfedge":161},{"chart_seam":false,"geometry":{"curve":78,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":107,"id":78,"tolerance":1e-9,"twin_halfedge":160},{"chart_seam":false,"geometry":{"curve":79,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":108,"id":79,"tolerance":1e-9,"twin_halfedge":185},{"chart_seam":false,"geometry":{"curve":80,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":115,"id":80,"tolerance":1e-9,"twin_halfedge":127},{"chart_seam":false,"geometry":{"curve":81,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":119,"id":81,"tolerance":1e-9,"twin_halfedge":133},{"chart_seam":false,"geometry":{"curve":82,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":120,"id":82,"tolerance":1e-9,"twin_halfedge":132},{"chart_seam":false,"geometry":{"curve":83,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":121,"id":83,"tolerance":1e-9,"twin_halfedge":169},{"chart_seam":false,"geometry":{"curve":84,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":122,"id":84,"tolerance":1e-9,"twin_halfedge":189},{"chart_seam":false,"geometry":{"curve":85,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":124,"id":85,"tolerance":1e-9,"twin_halfedge":183},{"chart_seam":false,"geometry":{"curve":86,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":125,"id":86,"tolerance":1e-9,"twin_halfedge":152},{"chart_seam":false,"geometry":{"curve":87,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":126,"id":87,"tolerance":1e-9,"twin_halfedge":151},{"chart_seam":false,"geometry":{"curve":88,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":129,"id":88,"tolerance":1e-9,"twin_halfedge":143},{"chart_seam":false,"geometry":{"curve":89,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":130,"id":89,"tolerance":1e-9,"twin_halfedge":142},{"chart_seam":false,"geometry":{"curve":90,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":140,"id":90,"tolerance":1e-9,"twin_halfedge":187},{"chart_seam":false,"geometry":{"curve":91,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":141,"id":91,"tolerance":1e-9,"twin_halfedge":163},{"chart_seam":false,"geometry":{"curve":92,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":145,"id":92,"tolerance":1e-9,"twin_halfedge":155},{"chart_seam":false,"geometry":{"curve":93,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":146,"id":93,"tolerance":1e-9,"twin_halfedge":154},{"chart_seam":false,"geometry":{"curve":94,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":167,"id":94,"tolerance":1e-9,"twin_halfedge":173}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-2.000000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.7860571109491754,"lo":1.099999999},{"hi":1.250000001,"lo":0.8999999989999998}]}},{"id":2,"key":"upper-cap-2","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0500000010000001,"lo":0.5999999989999999},{"hi":1.9078784038338914,"lo":1.299999999}]}},{"id":3,"key":"lower-cap-3","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":1.0500000010000001,"lo":0.5999999989999999},{"hi":-1.299999999,"lo":-1.9078784038338914}]}},{"id":4,"key":"lower-cap-4","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.7860571109491754,"lo":1.099999999},{"hi":-0.8999999989999998,"lo":-1.250000001}]}},{"id":5,"key":"upper-cap-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":2.000000001,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-plane-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":1.5707963272948964,"lo":1.266103672279499},{"hi":3.000000001,"lo":-1e-9}]}},{"id":8,"key":"vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":1.2661036732794995,"lo":1.0180812131981136},{"hi":0.800000001,"lo":-1e-9}]}},{"id":9,"key":"vertical-cylinder-9","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":1.0180812141981135,"lo":0.6751315324370315},{"hi":3.000000001,"lo":-1e-9}]}},{"id":10,"key":"vertical-cylinder-10","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":0.6751315334370317,"lo":0.46676533854729635},{"hi":0.500000001,"lo":-1e-9}]}},{"id":11,"key":"vertical-cylinder-11","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.4667653395472963,"lo":-4.999999444888488e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":12,"key":"vertical-plane-12","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":13,"key":"vertical-cylinder-13","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.643501109459951,"lo":-6.666666666666667e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":14,"key":"vertical-cylinder-14","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":0.7475843503356874,"lo":0.6435011081266175},{"hi":0.500000001,"lo":-1e-9}]}},{"id":15,"key":"vertical-cylinder-15","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":1.0484815056555148,"lo":0.7475843490023539},{"hi":3.000000001,"lo":-1e-9}]}},{"id":16,"key":"vertical-cylinder-16","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[],"outer":16,"uv_bounds":[{"hi":1.1592794813940754,"lo":1.0484815043221813},{"hi":0.800000001,"lo":-1e-9}]}},{"id":17,"key":"vertical-cylinder-17","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":17,"trim":{"chart":0,"holes":[],"outer":17,"uv_bounds":[{"hi":1.5707963274615633,"lo":1.159279480060742},{"hi":3.000000001,"lo":-1e-9}]}},{"id":18,"key":"vertical-plane-18","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":5,"key":"back"}]},"sense":"Reverse","shell_ref":0,"surface":18,"trim":{"chart":0,"holes":[],"outer":18,"uv_bounds":[{"hi":0.4612495005995995,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":19,"key":"vertical-plane-19","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":19,"trim":{"chart":0,"holes":[],"outer":19,"uv_bounds":[{"hi":0.2301960982814432,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":20,"key":"vertical-plane-20","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":20,"trim":{"chart":0,"holes":[],"outer":20,"uv_bounds":[{"hi":0.5860571109491753,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":21,"key":"vertical-plane-21","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":21,"trim":{"chart":0,"holes":[],"outer":21,"uv_bounds":[{"hi":0.5331056953471393,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":22,"key":"vertical-plane-22","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":22,"trim":{"chart":0,"holes":[],"outer":22,"uv_bounds":[{"hi":0.30166852364521207,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":23,"key":"vertical-plane-23","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":3,"key":"right"}]},"sense":"Reverse","shell_ref":0,"surface":23,"trim":{"chart":0,"holes":[],"outer":23,"uv_bounds":[{"hi":0.40220445405492006,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":24,"key":"vertical-cylinder-24","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":24,"trim":{"chart":0,"holes":[],"outer":24,"uv_bounds":[{"hi":1.2661036732794995,"lo":1.0180812131981136},{"hi":3.000000001,"lo":1.999999999}]}},{"id":25,"key":"vertical-cylinder-25","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":25,"trim":{"chart":0,"holes":[],"outer":25,"uv_bounds":[{"hi":0.6751315334370317,"lo":0.46676533854729635},{"hi":3.000000001,"lo":1.999999999}]}},{"id":26,"key":"vertical-cylinder-26","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":26,"trim":{"chart":0,"holes":[],"outer":26,"uv_bounds":[{"hi":0.7475843503356874,"lo":0.6435011081266175},{"hi":3.000000001,"lo":1.999999999}]}},{"id":27,"key":"vertical-cylinder-27","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":27,"trim":{"chart":0,"holes":[],"outer":27,"uv_bounds":[{"hi":1.1592794813940754,"lo":1.0484815043221813},{"hi":3.000000001,"lo":1.999999999}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":1,"prev":11,"to":1,"twin":134,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":128,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":118,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":4,"prev":2,"to":4,"twin":114,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":0,"next":5,"prev":3,"to":5,"twin":104,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":0,"next":6,"prev":4,"to":6,"twin":94,"wire_ref":null},{"edge":6,"face":0,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":0,"next":7,"prev":5,"to":7,"twin":84,"wire_ref":null},{"edge":7,"face":0,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":0,"next":8,"prev":6,"to":8,"twin":80,"wire_ref":null},{"edge":8,"face":0,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":0,"next":9,"prev":7,"to":9,"twin":70,"wire_ref":null},{"edge":9,"face":0,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":0,"next":10,"prev":8,"to":10,"twin":64,"wire_ref":null},{"edge":10,"face":0,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":0,"next":11,"prev":9,"to":11,"twin":54,"wire_ref":null},{"edge":11,"face":0,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":0,"next":0,"prev":10,"to":0,"twin":44,"wire_ref":null},{"edge":12,"face":1,"from":12,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":1,"next":13,"prev":16,"to":13,"twin":150,"wire_ref":null},{"edge":13,"face":1,"from":13,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":1,"next":14,"prev":12,"to":14,"twin":144,"wire_ref":null},{"edge":14,"face":1,"from":14,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":1,"next":15,"prev":13,"to":15,"twin":82,"wire_ref":null},{"edge":15,"face":1,"from":15,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":1,"next":16,"prev":14,"to":16,"twin":156,"wire_ref":null},{"edge":16,"face":1,"from":16,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":1,"next":12,"prev":15,"to":12,"twin":116,"wire_ref":null},{"edge":17,"face":2,"from":17,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":2,"next":18,"prev":21,"to":18,"twin":67,"wire_ref":null},{"edge":18,"face":2,"from":18,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":2,"next":19,"prev":17,"to":19,"twin":170,"wire_ref":null},{"edge":19,"face":2,"from":19,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":2,"next":20,"prev":18,"to":20,"twin":166,"wire_ref":null},{"edge":20,"face":2,"from":20,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":2,"next":21,"prev":19,"to":21,"twin":131,"wire_ref":null},{"edge":21,"face":2,"from":21,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":2,"next":17,"prev":20,"to":17,"twin":162,"wire_ref":null},{"edge":22,"face":3,"from":22,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":3,"next":23,"prev":26,"to":23,"twin":164,"wire_ref":null},{"edge":23,"face":3,"from":23,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":3,"next":24,"prev":22,"to":24,"twin":186,"wire_ref":null},{"edge":24,"face":3,"from":24,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":3,"next":25,"prev":23,"to":25,"twin":168,"wire_ref":null},{"edge":25,"face":3,"from":25,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":3,"next":26,"prev":24,"to":26,"twin":172,"wire_ref":null},{"edge":26,"face":3,"from":26,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":3,"next":22,"prev":25,"to":22,"twin":174,"wire_ref":null},{"edge":27,"face":4,"from":27,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":4,"next":28,"prev":31,"to":28,"twin":182,"wire_ref":null},{"edge":28,"face":4,"from":28,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":4,"next":29,"prev":27,"to":29,"twin":159,"wire_ref":null},{"edge":29,"face":4,"from":29,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":4,"next":30,"prev":28,"to":30,"twin":178,"wire_ref":null},{"edge":30,"face":4,"from":30,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":4,"next":31,"prev":29,"to":31,"twin":147,"wire_ref":null},{"edge":31,"face":4,"from":31,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":4,"next":27,"prev":30,"to":27,"twin":153,"wire_ref":null},{"edge":32,"face":5,"from":32,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":5,"next":33,"prev":43,"to":33,"twin":49,"wire_ref":null},{"edge":33,"face":5,"from":33,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":5,"next":34,"prev":32,"to":34,"twin":59,"wire_ref":null},{"edge":34,"face":5,"from":34,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":5,"next":35,"prev":33,"to":35,"twin":176,"wire_ref":null},{"edge":35,"face":5,"from":35,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":5,"next":36,"prev":34,"to":36,"twin":75,"wire_ref":null},{"edge":36,"face":5,"from":36,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Reverse"},"id":36,"loop_ref":5,"next":37,"prev":35,"to":37,"twin":180,"wire_ref":null},{"edge":37,"face":5,"from":37,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Reverse"},"id":37,"loop_ref":5,"next":38,"prev":36,"to":38,"twin":89,"wire_ref":null},{"edge":38,"face":5,"from":38,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Forward"},"id":38,"loop_ref":5,"next":39,"prev":37,"to":39,"twin":99,"wire_ref":null},{"edge":39,"face":5,"from":39,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Forward"},"id":39,"loop_ref":5,"next":40,"prev":38,"to":40,"twin":109,"wire_ref":null},{"edge":40,"face":5,"from":40,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Forward"},"id":40,"loop_ref":5,"next":41,"prev":39,"to":41,"twin":184,"wire_ref":null},{"edge":41,"face":5,"from":41,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Forward"},"id":41,"loop_ref":5,"next":42,"prev":40,"to":42,"twin":123,"wire_ref":null},{"edge":42,"face":5,"from":42,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Forward"},"id":42,"loop_ref":5,"next":43,"prev":41,"to":43,"twin":188,"wire_ref":null},{"edge":43,"face":5,"from":43,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Forward"},"id":43,"loop_ref":5,"next":32,"prev":42,"to":32,"twin":139,"wire_ref":null},{"edge":11,"face":6,"from":0,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Reverse"},"id":44,"loop_ref":6,"next":45,"prev":53,"to":11,"twin":11,"wire_ref":null},{"edge":44,"face":6,"from":11,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Forward"},"id":45,"loop_ref":6,"next":46,"prev":44,"to":44,"twin":63,"wire_ref":null},{"edge":45,"face":6,"from":44,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Forward"},"id":46,"loop_ref":6,"next":47,"prev":45,"to":45,"twin":62,"wire_ref":null},{"edge":46,"face":6,"from":45,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Forward"},"id":47,"loop_ref":6,"next":48,"prev":46,"to":46,"twin":61,"wire_ref":null},{"edge":47,"face":6,"from":46,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Forward"},"id":48,"loop_ref":6,"next":49,"prev":47,"to":33,"twin":60,"wire_ref":null},{"edge":32,"face":6,"from":33,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Reverse"},"id":49,"loop_ref":6,"next":50,"prev":48,"to":32,"twin":32,"wire_ref":null},{"edge":48,"face":6,"from":32,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Forward"},"id":50,"loop_ref":6,"next":51,"prev":49,"to":47,"twin":138,"wire_ref":null},{"edge":49,"face":6,"from":47,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Forward"},"id":51,"loop_ref":6,"next":52,"prev":50,"to":48,"twin":137,"wire_ref":null},{"edge":50,"face":6,"from":48,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Forward"},"id":52,"loop_ref":6,"next":53,"prev":51,"to":49,"twin":136,"wire_ref":null},{"edge":51,"face":6,"from":49,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Forward"},"id":53,"loop_ref":6,"next":44,"prev":52,"to":0,"twin":135,"wire_ref":null},{"edge":10,"face":7,"from":11,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Reverse"},"id":54,"loop_ref":7,"next":55,"prev":63,"to":10,"twin":10,"wire_ref":null},{"edge":52,"face":7,"from":10,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Forward"},"id":55,"loop_ref":7,"next":56,"prev":54,"to":50,"twin":69,"wire_ref":null},{"edge":53,"face":7,"from":50,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Forward"},"id":56,"loop_ref":7,"next":57,"prev":55,"to":17,"twin":68,"wire_ref":null},{"edge":54,"face":7,"from":17,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Forward"},"id":57,"loop_ref":7,"next":58,"prev":56,"to":22,"twin":165,"wire_ref":null},{"edge":55,"face":7,"from":22,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Forward"},"id":58,"loop_ref":7,"next":59,"prev":57,"to":34,"twin":177,"wire_ref":null},{"edge":33,"face":7,"from":34,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Forward"},"id":59,"loop_ref":7,"next":60,"prev":58,"to":33,"twin":33,"wire_ref":null},{"edge":47,"face":7,"from":33,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Reverse"},"id":60,"loop_ref":7,"next":61,"prev":59,"to":46,"twin":48,"wire_ref":null},{"edge":46,"face":7,"from":46,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Reverse"},"id":61,"loop_ref":7,"next":62,"prev":60,"to":45,"twin":47,"wire_ref":null},{"edge":45,"face":7,"from":45,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Reverse"},"id":62,"loop_ref":7,"next":63,"prev":61,"to":44,"twin":46,"wire_ref":null},{"edge":44,"face":7,"from":44,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Reverse"},"id":63,"loop_ref":7,"next":54,"prev":62,"to":11,"twin":45,"wire_ref":null},{"edge":9,"face":8,"from":10,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Reverse"},"id":64,"loop_ref":8,"next":65,"prev":69,"to":9,"twin":9,"wire_ref":null},{"edge":56,"face":8,"from":9,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Forward"},"id":65,"loop_ref":8,"next":66,"prev":64,"to":51,"twin":79,"wire_ref":null},{"edge":57,"face":8,"from":51,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Forward"},"id":66,"loop_ref":8,"next":67,"prev":65,"to":18,"twin":78,"wire_ref":null},{"edge":17,"face":8,"from":18,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Forward"},"id":67,"loop_ref":8,"next":68,"prev":66,"to":17,"twin":17,"wire_ref":null},{"edge":53,"face":8,"from":17,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Reverse"},"id":68,"loop_ref":8,"next":69,"prev":67,"to":50,"twin":56,"wire_ref":null},{"edge":52,"face":8,"from":50,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Reverse"},"id":69,"loop_ref":8,"next":64,"prev":68,"to":10,"twin":55,"wire_ref":null},{"edge":8,"face":9,"from":9,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Reverse"},"id":70,"loop_ref":9,"next":71,"prev":79,"to":8,"twin":8,"wire_ref":null},{"edge":58,"face":9,"from":8,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Forward"},"id":71,"loop_ref":9,"next":72,"prev":70,"to":14,"twin":83,"wire_ref":null},{"edge":59,"face":9,"from":14,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Forward"},"id":72,"loop_ref":9,"next":73,"prev":71,"to":52,"twin":149,"wire_ref":null},{"edge":60,"face":9,"from":52,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Forward"},"id":73,"loop_ref":9,"next":74,"prev":72,"to":30,"twin":148,"wire_ref":null},{"edge":61,"face":9,"from":30,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Forward"},"id":74,"loop_ref":9,"next":75,"prev":73,"to":36,"twin":181,"wire_ref":null},{"edge":35,"face":9,"from":36,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Forward"},"id":75,"loop_ref":9,"next":76,"prev":74,"to":35,"twin":35,"wire_ref":null},{"edge":62,"face":9,"from":35,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Forward"},"id":76,"loop_ref":9,"next":77,"prev":75,"to":26,"twin":175,"wire_ref":null},{"edge":63,"face":9,"from":26,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Forward"},"id":77,"loop_ref":9,"next":78,"prev":76,"to":18,"twin":171,"wire_ref":null},{"edge":57,"face":9,"from":18,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Reverse"},"id":78,"loop_ref":9,"next":79,"prev":77,"to":51,"twin":66,"wire_ref":null},{"edge":56,"face":9,"from":51,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Reverse"},"id":79,"loop_ref":9,"next":70,"prev":78,"to":9,"twin":65,"wire_ref":null},{"edge":7,"face":10,"from":8,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Reverse"},"id":80,"loop_ref":10,"next":81,"prev":83,"to":7,"twin":7,"wire_ref":null},{"edge":64,"face":10,"from":7,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Forward"},"id":81,"loop_ref":10,"next":82,"prev":80,"to":15,"twin":93,"wire_ref":null},{"edge":14,"face":10,"from":15,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Forward"},"id":82,"loop_ref":10,"next":83,"prev":81,"to":14,"twin":14,"wire_ref":null},{"edge":58,"face":10,"from":14,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Reverse"},"id":83,"loop_ref":10,"next":80,"prev":82,"to":8,"twin":71,"wire_ref":null},{"edge":6,"face":11,"from":7,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Reverse"},"id":84,"loop_ref":11,"next":85,"prev":93,"to":6,"twin":6,"wire_ref":null},{"edge":65,"face":11,"from":6,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Forward"},"id":85,"loop_ref":11,"next":86,"prev":84,"to":53,"twin":103,"wire_ref":null},{"edge":66,"face":11,"from":53,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Forward"},"id":86,"loop_ref":11,"next":87,"prev":85,"to":54,"twin":102,"wire_ref":null},{"edge":67,"face":11,"from":54,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Forward"},"id":87,"loop_ref":11,"next":88,"prev":86,"to":55,"twin":101,"wire_ref":null},{"edge":68,"face":11,"from":55,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Forward"},"id":88,"loop_ref":11,"next":89,"prev":87,"to":38,"twin":100,"wire_ref":null},{"edge":37,"face":11,"from":38,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Forward"},"id":89,"loop_ref":11,"next":90,"prev":88,"to":37,"twin":37,"wire_ref":null},{"edge":69,"face":11,"from":37,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Forward"},"id":90,"loop_ref":11,"next":91,"prev":89,"to":29,"twin":179,"wire_ref":null},{"edge":70,"face":11,"from":29,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Forward"},"id":91,"loop_ref":11,"next":92,"prev":90,"to":56,"twin":158,"wire_ref":null},{"edge":71,"face":11,"from":56,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Forward"},"id":92,"loop_ref":11,"next":93,"prev":91,"to":15,"twin":157,"wire_ref":null},{"edge":64,"face":11,"from":15,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Reverse"},"id":93,"loop_ref":11,"next":84,"prev":92,"to":7,"twin":81,"wire_ref":null},{"edge":5,"face":12,"from":6,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Reverse"},"id":94,"loop_ref":12,"next":95,"prev":103,"to":5,"twin":5,"wire_ref":null},{"edge":72,"face":12,"from":5,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Forward"},"id":95,"loop_ref":12,"next":96,"prev":94,"to":57,"twin":113,"wire_ref":null},{"edge":73,"face":12,"from":57,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Forward"},"id":96,"loop_ref":12,"next":97,"prev":95,"to":58,"twin":112,"wire_ref":null},{"edge":74,"face":12,"from":58,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Forward"},"id":97,"loop_ref":12,"next":98,"prev":96,"to":59,"twin":111,"wire_ref":null},{"edge":75,"face":12,"from":59,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Forward"},"id":98,"loop_ref":12,"next":99,"prev":97,"to":39,"twin":110,"wire_ref":null},{"edge":38,"face":12,"from":39,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Reverse"},"id":99,"loop_ref":12,"next":100,"prev":98,"to":38,"twin":38,"wire_ref":null},{"edge":68,"face":12,"from":38,"geometry_use":{"pcurve":100,"periodic_lift":[0,0],"sense":"Reverse"},"id":100,"loop_ref":12,"next":101,"prev":99,"to":55,"twin":88,"wire_ref":null},{"edge":67,"face":12,"from":55,"geometry_use":{"pcurve":101,"periodic_lift":[0,0],"sense":"Reverse"},"id":101,"loop_ref":12,"next":102,"prev":100,"to":54,"twin":87,"wire_ref":null},{"edge":66,"face":12,"from":54,"geometry_use":{"pcurve":102,"periodic_lift":[0,0],"sense":"Reverse"},"id":102,"loop_ref":12,"next":103,"prev":101,"to":53,"twin":86,"wire_ref":null},{"edge":65,"face":12,"from":53,"geometry_use":{"pcurve":103,"periodic_lift":[0,0],"sense":"Reverse"},"id":103,"loop_ref":12,"next":94,"prev":102,"to":6,"twin":85,"wire_ref":null},{"edge":4,"face":13,"from":5,"geometry_use":{"pcurve":104,"periodic_lift":[0,0],"sense":"Forward"},"id":104,"loop_ref":13,"next":105,"prev":113,"to":4,"twin":4,"wire_ref":null},{"edge":76,"face":13,"from":4,"geometry_use":{"pcurve":105,"periodic_lift":[0,0],"sense":"Forward"},"id":105,"loop_ref":13,"next":106,"prev":104,"to":16,"twin":117,"wire_ref":null},{"edge":77,"face":13,"from":16,"geometry_use":{"pcurve":106,"periodic_lift":[0,0],"sense":"Forward"},"id":106,"loop_ref":13,"next":107,"prev":105,"to":60,"twin":161,"wire_ref":null},{"edge":78,"face":13,"from":60,"geometry_use":{"pcurve":107,"periodic_lift":[0,0],"sense":"Forward"},"id":107,"loop_ref":13,"next":108,"prev":106,"to":28,"twin":160,"wire_ref":null},{"edge":79,"face":13,"from":28,"geometry_use":{"pcurve":108,"periodic_lift":[0,0],"sense":"Forward"},"id":108,"loop_ref":13,"next":109,"prev":107,"to":40,"twin":185,"wire_ref":null},{"edge":39,"face":13,"from":40,"geometry_use":{"pcurve":109,"periodic_lift":[0,0],"sense":"Reverse"},"id":109,"loop_ref":13,"next":110,"prev":108,"to":39,"twin":39,"wire_ref":null},{"edge":75,"face":13,"from":39,"geometry_use":{"pcurve":110,"periodic_lift":[0,0],"sense":"Reverse"},"id":110,"loop_ref":13,"next":111,"prev":109,"to":59,"twin":98,"wire_ref":null},{"edge":74,"face":13,"from":59,"geometry_use":{"pcurve":111,"periodic_lift":[0,0],"sense":"Reverse"},"id":111,"loop_ref":13,"next":112,"prev":110,"to":58,"twin":97,"wire_ref":null},{"edge":73,"face":13,"from":58,"geometry_use":{"pcurve":112,"periodic_lift":[0,0],"sense":"Reverse"},"id":112,"loop_ref":13,"next":113,"prev":111,"to":57,"twin":96,"wire_ref":null},{"edge":72,"face":13,"from":57,"geometry_use":{"pcurve":113,"periodic_lift":[0,0],"sense":"Reverse"},"id":113,"loop_ref":13,"next":104,"prev":112,"to":5,"twin":95,"wire_ref":null},{"edge":3,"face":14,"from":4,"geometry_use":{"pcurve":114,"periodic_lift":[0,0],"sense":"Forward"},"id":114,"loop_ref":14,"next":115,"prev":117,"to":3,"twin":3,"wire_ref":null},{"edge":80,"face":14,"from":3,"geometry_use":{"pcurve":115,"periodic_lift":[0,0],"sense":"Forward"},"id":115,"loop_ref":14,"next":116,"prev":114,"to":12,"twin":127,"wire_ref":null},{"edge":16,"face":14,"from":12,"geometry_use":{"pcurve":116,"periodic_lift":[0,0],"sense":"Reverse"},"id":116,"loop_ref":14,"next":117,"prev":115,"to":16,"twin":16,"wire_ref":null},{"edge":76,"face":14,"from":16,"geometry_use":{"pcurve":117,"periodic_lift":[0,0],"sense":"Reverse"},"id":117,"loop_ref":14,"next":114,"prev":116,"to":4,"twin":105,"wire_ref":null},{"edge":2,"face":15,"from":3,"geometry_use":{"pcurve":118,"periodic_lift":[0,0],"sense":"Forward"},"id":118,"loop_ref":15,"next":119,"prev":127,"to":2,"twin":2,"wire_ref":null},{"edge":81,"face":15,"from":2,"geometry_use":{"pcurve":119,"periodic_lift":[0,0],"sense":"Forward"},"id":119,"loop_ref":15,"next":120,"prev":118,"to":61,"twin":133,"wire_ref":null},{"edge":82,"face":15,"from":61,"geometry_use":{"pcurve":120,"periodic_lift":[0,0],"sense":"Forward"},"id":120,"loop_ref":15,"next":121,"prev":119,"to":20,"twin":132,"wire_ref":null},{"edge":83,"face":15,"from":20,"geometry_use":{"pcurve":121,"periodic_lift":[0,0],"sense":"Forward"},"id":121,"loop_ref":15,"next":122,"prev":120,"to":24,"twin":169,"wire_ref":null},{"edge":84,"face":15,"from":24,"geometry_use":{"pcurve":122,"periodic_lift":[0,0],"sense":"Forward"},"id":122,"loop_ref":15,"next":123,"prev":121,"to":42,"twin":189,"wire_ref":null},{"edge":41,"face":15,"from":42,"geometry_use":{"pcurve":123,"periodic_lift":[0,0],"sense":"Reverse"},"id":123,"loop_ref":15,"next":124,"prev":122,"to":41,"twin":41,"wire_ref":null},{"edge":85,"face":15,"from":41,"geometry_use":{"pcurve":124,"periodic_lift":[0,0],"sense":"Forward"},"id":124,"loop_ref":15,"next":125,"prev":123,"to":27,"twin":183,"wire_ref":null},{"edge":86,"face":15,"from":27,"geometry_use":{"pcurve":125,"periodic_lift":[0,0],"sense":"Forward"},"id":125,"loop_ref":15,"next":126,"prev":124,"to":62,"twin":152,"wire_ref":null},{"edge":87,"face":15,"from":62,"geometry_use":{"pcurve":126,"periodic_lift":[0,0],"sense":"Forward"},"id":126,"loop_ref":15,"next":127,"prev":125,"to":12,"twin":151,"wire_ref":null},{"edge":80,"face":15,"from":12,"geometry_use":{"pcurve":127,"periodic_lift":[0,0],"sense":"Reverse"},"id":127,"loop_ref":15,"next":118,"prev":126,"to":3,"twin":115,"wire_ref":null},{"edge":1,"face":16,"from":2,"geometry_use":{"pcurve":128,"periodic_lift":[0,0],"sense":"Forward"},"id":128,"loop_ref":16,"next":129,"prev":133,"to":1,"twin":1,"wire_ref":null},{"edge":88,"face":16,"from":1,"geometry_use":{"pcurve":129,"periodic_lift":[0,0],"sense":"Forward"},"id":129,"loop_ref":16,"next":130,"prev":128,"to":63,"twin":143,"wire_ref":null},{"edge":89,"face":16,"from":63,"geometry_use":{"pcurve":130,"periodic_lift":[0,0],"sense":"Forward"},"id":130,"loop_ref":16,"next":131,"prev":129,"to":21,"twin":142,"wire_ref":null},{"edge":20,"face":16,"from":21,"geometry_use":{"pcurve":131,"periodic_lift":[0,0],"sense":"Reverse"},"id":131,"loop_ref":16,"next":132,"prev":130,"to":20,"twin":20,"wire_ref":null},{"edge":82,"face":16,"from":20,"geometry_use":{"pcurve":132,"periodic_lift":[0,0],"sense":"Reverse"},"id":132,"loop_ref":16,"next":133,"prev":131,"to":61,"twin":120,"wire_ref":null},{"edge":81,"face":16,"from":61,"geometry_use":{"pcurve":133,"periodic_lift":[0,0],"sense":"Reverse"},"id":133,"loop_ref":16,"next":128,"prev":132,"to":2,"twin":119,"wire_ref":null},{"edge":0,"face":17,"from":1,"geometry_use":{"pcurve":134,"periodic_lift":[0,0],"sense":"Forward"},"id":134,"loop_ref":17,"next":135,"prev":143,"to":0,"twin":0,"wire_ref":null},{"edge":51,"face":17,"from":0,"geometry_use":{"pcurve":135,"periodic_lift":[0,0],"sense":"Reverse"},"id":135,"loop_ref":17,"next":136,"prev":134,"to":49,"twin":53,"wire_ref":null},{"edge":50,"face":17,"from":49,"geometry_use":{"pcurve":136,"periodic_lift":[0,0],"sense":"Reverse"},"id":136,"loop_ref":17,"next":137,"prev":135,"to":48,"twin":52,"wire_ref":null},{"edge":49,"face":17,"from":48,"geometry_use":{"pcurve":137,"periodic_lift":[0,0],"sense":"Reverse"},"id":137,"loop_ref":17,"next":138,"prev":136,"to":47,"twin":51,"wire_ref":null},{"edge":48,"face":17,"from":47,"geometry_use":{"pcurve":138,"periodic_lift":[0,0],"sense":"Reverse"},"id":138,"loop_ref":17,"next":139,"prev":137,"to":32,"twin":50,"wire_ref":null},{"edge":43,"face":17,"from":32,"geometry_use":{"pcurve":139,"periodic_lift":[0,0],"sense":"Reverse"},"id":139,"loop_ref":17,"next":140,"prev":138,"to":43,"twin":43,"wire_ref":null},{"edge":90,"face":17,"from":43,"geometry_use":{"pcurve":140,"periodic_lift":[0,0],"sense":"Forward"},"id":140,"loop_ref":17,"next":141,"prev":139,"to":23,"twin":187,"wire_ref":null},{"edge":91,"face":17,"from":23,"geometry_use":{"pcurve":141,"periodic_lift":[0,0],"sense":"Forward"},"id":141,"loop_ref":17,"next":142,"prev":140,"to":21,"twin":163,"wire_ref":null},{"edge":89,"face":17,"from":21,"geometry_use":{"pcurve":142,"periodic_lift":[0,0],"sense":"Reverse"},"id":142,"loop_ref":17,"next":143,"prev":141,"to":63,"twin":130,"wire_ref":null},{"edge":88,"face":17,"from":63,"geometry_use":{"pcurve":143,"periodic_lift":[0,0],"sense":"Reverse"},"id":143,"loop_ref":17,"next":134,"prev":142,"to":1,"twin":129,"wire_ref":null},{"edge":13,"face":18,"from":14,"geometry_use":{"pcurve":144,"periodic_lift":[0,0],"sense":"Reverse"},"id":144,"loop_ref":18,"next":145,"prev":149,"to":13,"twin":13,"wire_ref":null},{"edge":92,"face":18,"from":13,"geometry_use":{"pcurve":145,"periodic_lift":[0,0],"sense":"Forward"},"id":145,"loop_ref":18,"next":146,"prev":144,"to":64,"twin":155,"wire_ref":null},{"edge":93,"face":18,"from":64,"geometry_use":{"pcurve":146,"periodic_lift":[0,0],"sense":"Forward"},"id":146,"loop_ref":18,"next":147,"prev":145,"to":31,"twin":154,"wire_ref":null},{"edge":30,"face":18,"from":31,"geometry_use":{"pcurve":147,"periodic_lift":[0,0],"sense":"Reverse"},"id":147,"loop_ref":18,"next":148,"prev":146,"to":30,"twin":30,"wire_ref":null},{"edge":60,"face":18,"from":30,"geometry_use":{"pcurve":148,"periodic_lift":[0,0],"sense":"Reverse"},"id":148,"loop_ref":18,"next":149,"prev":147,"to":52,"twin":73,"wire_ref":null},{"edge":59,"face":18,"from":52,"geometry_use":{"pcurve":149,"periodic_lift":[0,0],"sense":"Reverse"},"id":149,"loop_ref":18,"next":144,"prev":148,"to":14,"twin":72,"wire_ref":null},{"edge":12,"face":19,"from":13,"geometry_use":{"pcurve":150,"periodic_lift":[0,0],"sense":"Reverse"},"id":150,"loop_ref":19,"next":151,"prev":155,"to":12,"twin":12,"wire_ref":null},{"edge":87,"face":19,"from":12,"geometry_use":{"pcurve":151,"periodic_lift":[0,0],"sense":"Reverse"},"id":151,"loop_ref":19,"next":152,"prev":150,"to":62,"twin":126,"wire_ref":null},{"edge":86,"face":19,"from":62,"geometry_use":{"pcurve":152,"periodic_lift":[0,0],"sense":"Reverse"},"id":152,"loop_ref":19,"next":153,"prev":151,"to":27,"twin":125,"wire_ref":null},{"edge":31,"face":19,"from":27,"geometry_use":{"pcurve":153,"periodic_lift":[0,0],"sense":"Reverse"},"id":153,"loop_ref":19,"next":154,"prev":152,"to":31,"twin":31,"wire_ref":null},{"edge":93,"face":19,"from":31,"geometry_use":{"pcurve":154,"periodic_lift":[0,0],"sense":"Reverse"},"id":154,"loop_ref":19,"next":155,"prev":153,"to":64,"twin":146,"wire_ref":null},{"edge":92,"face":19,"from":64,"geometry_use":{"pcurve":155,"periodic_lift":[0,0],"sense":"Reverse"},"id":155,"loop_ref":19,"next":150,"prev":154,"to":13,"twin":145,"wire_ref":null},{"edge":15,"face":20,"from":16,"geometry_use":{"pcurve":156,"periodic_lift":[0,0],"sense":"Reverse"},"id":156,"loop_ref":20,"next":157,"prev":161,"to":15,"twin":15,"wire_ref":null},{"edge":71,"face":20,"from":15,"geometry_use":{"pcurve":157,"periodic_lift":[0,0],"sense":"Reverse"},"id":157,"loop_ref":20,"next":158,"prev":156,"to":56,"twin":92,"wire_ref":null},{"edge":70,"face":20,"from":56,"geometry_use":{"pcurve":158,"periodic_lift":[0,0],"sense":"Reverse"},"id":158,"loop_ref":20,"next":159,"prev":157,"to":29,"twin":91,"wire_ref":null},{"edge":28,"face":20,"from":29,"geometry_use":{"pcurve":159,"periodic_lift":[0,0],"sense":"Reverse"},"id":159,"loop_ref":20,"next":160,"prev":158,"to":28,"twin":28,"wire_ref":null},{"edge":78,"face":20,"from":28,"geometry_use":{"pcurve":160,"periodic_lift":[0,0],"sense":"Reverse"},"id":160,"loop_ref":20,"next":161,"prev":159,"to":60,"twin":107,"wire_ref":null},{"edge":77,"face":20,"from":60,"geometry_use":{"pcurve":161,"periodic_lift":[0,0],"sense":"Reverse"},"id":161,"loop_ref":20,"next":156,"prev":160,"to":16,"twin":106,"wire_ref":null},{"edge":21,"face":21,"from":17,"geometry_use":{"pcurve":162,"periodic_lift":[0,0],"sense":"Reverse"},"id":162,"loop_ref":21,"next":163,"prev":165,"to":21,"twin":21,"wire_ref":null},{"edge":91,"face":21,"from":21,"geometry_use":{"pcurve":163,"periodic_lift":[0,0],"sense":"Reverse"},"id":163,"loop_ref":21,"next":164,"prev":162,"to":23,"twin":141,"wire_ref":null},{"edge":22,"face":21,"from":23,"geometry_use":{"pcurve":164,"periodic_lift":[0,0],"sense":"Reverse"},"id":164,"loop_ref":21,"next":165,"prev":163,"to":22,"twin":22,"wire_ref":null},{"edge":54,"face":21,"from":22,"geometry_use":{"pcurve":165,"periodic_lift":[0,0],"sense":"Reverse"},"id":165,"loop_ref":21,"next":162,"prev":164,"to":17,"twin":57,"wire_ref":null},{"edge":19,"face":22,"from":20,"geometry_use":{"pcurve":166,"periodic_lift":[0,0],"sense":"Reverse"},"id":166,"loop_ref":22,"next":167,"prev":169,"to":19,"twin":19,"wire_ref":null},{"edge":94,"face":22,"from":19,"geometry_use":{"pcurve":167,"periodic_lift":[0,0],"sense":"Forward"},"id":167,"loop_ref":22,"next":168,"prev":166,"to":25,"twin":173,"wire_ref":null},{"edge":24,"face":22,"from":25,"geometry_use":{"pcurve":168,"periodic_lift":[0,0],"sense":"Reverse"},"id":168,"loop_ref":22,"next":169,"prev":167,"to":24,"twin":24,"wire_ref":null},{"edge":83,"face":22,"from":24,"geometry_use":{"pcurve":169,"periodic_lift":[0,0],"sense":"Reverse"},"id":169,"loop_ref":22,"next":166,"prev":168,"to":20,"twin":121,"wire_ref":null},{"edge":18,"face":23,"from":19,"geometry_use":{"pcurve":170,"periodic_lift":[0,0],"sense":"Reverse"},"id":170,"loop_ref":23,"next":171,"prev":173,"to":18,"twin":18,"wire_ref":null},{"edge":63,"face":23,"from":18,"geometry_use":{"pcurve":171,"periodic_lift":[0,0],"sense":"Reverse"},"id":171,"loop_ref":23,"next":172,"prev":170,"to":26,"twin":77,"wire_ref":null},{"edge":25,"face":23,"from":26,"geometry_use":{"pcurve":172,"periodic_lift":[0,0],"sense":"Reverse"},"id":172,"loop_ref":23,"next":173,"prev":171,"to":25,"twin":25,"wire_ref":null},{"edge":94,"face":23,"from":25,"geometry_use":{"pcurve":173,"periodic_lift":[0,0],"sense":"Reverse"},"id":173,"loop_ref":23,"next":170,"prev":172,"to":19,"twin":167,"wire_ref":null},{"edge":26,"face":24,"from":22,"geometry_use":{"pcurve":174,"periodic_lift":[0,0],"sense":"Reverse"},"id":174,"loop_ref":24,"next":175,"prev":177,"to":26,"twin":26,"wire_ref":null},{"edge":62,"face":24,"from":26,"geometry_use":{"pcurve":175,"periodic_lift":[0,0],"sense":"Reverse"},"id":175,"loop_ref":24,"next":176,"prev":174,"to":35,"twin":76,"wire_ref":null},{"edge":34,"face":24,"from":35,"geometry_use":{"pcurve":176,"periodic_lift":[0,0],"sense":"Forward"},"id":176,"loop_ref":24,"next":177,"prev":175,"to":34,"twin":34,"wire_ref":null},{"edge":55,"face":24,"from":34,"geometry_use":{"pcurve":177,"periodic_lift":[0,0],"sense":"Reverse"},"id":177,"loop_ref":24,"next":174,"prev":176,"to":22,"twin":58,"wire_ref":null},{"edge":29,"face":25,"from":30,"geometry_use":{"pcurve":178,"periodic_lift":[0,0],"sense":"Reverse"},"id":178,"loop_ref":25,"next":179,"prev":181,"to":29,"twin":29,"wire_ref":null},{"edge":69,"face":25,"from":29,"geometry_use":{"pcurve":179,"periodic_lift":[0,0],"sense":"Reverse"},"id":179,"loop_ref":25,"next":180,"prev":178,"to":37,"twin":90,"wire_ref":null},{"edge":36,"face":25,"from":37,"geometry_use":{"pcurve":180,"periodic_lift":[0,0],"sense":"Forward"},"id":180,"loop_ref":25,"next":181,"prev":179,"to":36,"twin":36,"wire_ref":null},{"edge":61,"face":25,"from":36,"geometry_use":{"pcurve":181,"periodic_lift":[0,0],"sense":"Reverse"},"id":181,"loop_ref":25,"next":178,"prev":180,"to":30,"twin":74,"wire_ref":null},{"edge":27,"face":26,"from":28,"geometry_use":{"pcurve":182,"periodic_lift":[0,0],"sense":"Forward"},"id":182,"loop_ref":26,"next":183,"prev":185,"to":27,"twin":27,"wire_ref":null},{"edge":85,"face":26,"from":27,"geometry_use":{"pcurve":183,"periodic_lift":[0,0],"sense":"Reverse"},"id":183,"loop_ref":26,"next":184,"prev":182,"to":41,"twin":124,"wire_ref":null},{"edge":40,"face":26,"from":41,"geometry_use":{"pcurve":184,"periodic_lift":[0,0],"sense":"Reverse"},"id":184,"loop_ref":26,"next":185,"prev":183,"to":40,"twin":40,"wire_ref":null},{"edge":79,"face":26,"from":40,"geometry_use":{"pcurve":185,"periodic_lift":[0,0],"sense":"Reverse"},"id":185,"loop_ref":26,"next":182,"prev":184,"to":28,"twin":108,"wire_ref":null},{"edge":23,"face":27,"from":24,"geometry_use":{"pcurve":186,"periodic_lift":[0,0],"sense":"Forward"},"id":186,"loop_ref":27,"next":187,"prev":189,"to":23,"twin":23,"wire_ref":null},{"edge":90,"face":27,"from":23,"geometry_use":{"pcurve":187,"periodic_lift":[0,0],"sense":"Reverse"},"id":187,"loop_ref":27,"next":188,"prev":186,"to":43,"twin":140,"wire_ref":null},{"edge":42,"face":27,"from":43,"geometry_use":{"pcurve":188,"periodic_lift":[0,0],"sense":"Reverse"},"id":188,"loop_ref":27,"next":189,"prev":187,"to":42,"twin":42,"wire_ref":null},{"edge":84,"face":27,"from":42,"geometry_use":{"pcurve":189,"periodic_lift":[0,0],"sense":"Reverse"},"id":189,"loop_ref":27,"next":186,"prev":188,"to":24,"twin":122,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":12},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":17},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":22},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":27},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":44},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":54},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":64},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":70},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":80},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":84},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":94},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":104},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":114},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":118},{"face_ref":16,"id":16,"is_hole":false,"start_halfedge":128},{"face_ref":17,"id":17,"is_hole":false,"start_halfedge":134},{"face_ref":18,"id":18,"is_hole":false,"start_halfedge":144},{"face_ref":19,"id":19,"is_hole":false,"start_halfedge":150},{"face_ref":20,"id":20,"is_hole":false,"start_halfedge":156},{"face_ref":21,"id":21,"is_hole":false,"start_halfedge":162},{"face_ref":22,"id":22,"is_hole":false,"start_halfedge":166},{"face_ref":23,"id":23,"is_hole":false,"start_halfedge":170},{"face_ref":24,"id":24,"is_hole":false,"start_halfedge":174},{"face_ref":25,"id":25,"is_hole":false,"start_halfedge":178},{"face_ref":26,"id":26,"is_hole":false,"start_halfedge":182},{"face_ref":27,"id":27,"is_hole":false,"start_halfedge":186}],"shells":[{"faces":[0,17,16,15,14,13,12,11,10,9,8,7,6,5,27,21,2,22,26,19,1,20,25,18,24,23,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[9.184850993605148e-17,1.5,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":1,"position":[0.5999999999999999,1.374772708486752,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":2,"position":[0.7483314773547882,1.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":3,"position":[1.1,1.0198039027185568,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.2000000000000002,0.8999999999999998,0.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.5,0.0,0.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":6,"position":[2.0,0.0,0.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":7,"position":[1.786057109949175,0.8999999999999999,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":8,"position":[1.5612494995995996,1.2499999999999998,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":9,"position":[1.05,1.7022044530549203,0.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":10,"position":[0.5999999999999999,1.9078784028338913,0.0],"tolerance":1e-9},{"id":11,"outgoing_halfedge":11,"position":[1.2246467991473532e-16,2.0,0.0],"tolerance":1e-9},{"id":12,"outgoing_halfedge":12,"position":[1.1,1.019803902718557,0.5],"tolerance":1e-9},{"id":13,"outgoing_halfedge":13,"position":[1.1,1.25,0.5],"tolerance":1e-9},{"id":14,"outgoing_halfedge":14,"position":[1.5612494995995996,1.25,0.5],"tolerance":1e-9},{"id":15,"outgoing_halfedge":15,"position":[1.7860571099491753,0.8999999999999998,0.5],"tolerance":1e-9},{"id":16,"outgoing_halfedge":16,"position":[1.1999999999999997,0.9,0.5],"tolerance":1e-9},{"id":17,"outgoing_halfedge":17,"position":[0.5999999999999999,1.9078784028338913,0.8],"tolerance":1e-9},{"id":18,"outgoing_halfedge":18,"position":[1.05,1.7022044530549203,0.8],"tolerance":1e-9},{"id":19,"outgoing_halfedge":19,"position":[1.05,1.3,0.8],"tolerance":1e-9},{"id":20,"outgoing_halfedge":20,"position":[0.748331477354788,1.3,0.8],"tolerance":1e-9},{"id":21,"outgoing_halfedge":21,"position":[0.6000000000000001,1.374772708486752,0.8],"tolerance":1e-9},{"id":22,"outgoing_halfedge":22,"position":[0.6,1.9078784028338913,2.0],"tolerance":1e-9},{"id":23,"outgoing_halfedge":23,"position":[0.6,1.374772708486752,2.0],"tolerance":1e-9},{"id":24,"outgoing_halfedge":24,"position":[0.7483314773547882,1.3,2.0],"tolerance":1e-9},{"id":25,"outgoing_halfedge":25,"position":[1.05,1.3,2.0],"tolerance":1e-9},{"id":26,"outgoing_halfedge":26,"position":[1.05,1.70220445305492,2.0],"tolerance":1e-9},{"id":27,"outgoing_halfedge":27,"position":[1.1,1.0198039027185568,2.0],"tolerance":1e-9},{"id":28,"outgoing_halfedge":28,"position":[1.2000000000000002,0.8999999999999999,2.0],"tolerance":1e-9},{"id":29,"outgoing_halfedge":29,"position":[1.786057109949175,0.9,2.0],"tolerance":1e-9},{"id":30,"outgoing_halfedge":30,"position":[1.5612494995995996,1.2499999999999998,2.0],"tolerance":1e-9},{"id":31,"outgoing_halfedge":31,"position":[1.1,1.25,2.0],"tolerance":1e-9},{"id":32,"outgoing_halfedge":32,"position":[9.184850993605148e-17,1.5,3.0],"tolerance":1e-9},{"id":33,"outgoing_halfedge":33,"position":[0.0,2.0,3.0],"tolerance":1e-9},{"id":34,"outgoing_halfedge":34,"position":[0.5999999999999999,1.9078784028338913,3.0],"tolerance":1e-9},{"id":35,"outgoing_halfedge":35,"position":[1.05,1.7022044530549203,3.0],"tolerance":1e-9},{"id":36,"outgoing_halfedge":36,"position":[1.5612494995995996,1.2499999999999998,3.0],"tolerance":1e-9},{"id":37,"outgoing_halfedge":37,"position":[1.7860571099491753,0.8999999999999998,3.0],"tolerance":1e-9},{"id":38,"outgoing_halfedge":38,"position":[2.0,1.1102230246251565e-16,3.0],"tolerance":1e-9},{"id":39,"outgoing_halfedge":39,"position":[1.5,0.0,3.0],"tolerance":1e-9},{"id":40,"outgoing_halfedge":40,"position":[1.2000000000000002,0.8999999999999998,3.0],"tolerance":1e-9},{"id":41,"outgoing_halfedge":41,"position":[1.1,1.0198039027185568,3.0],"tolerance":1e-9},{"id":42,"outgoing_halfedge":42,"position":[0.7483314773547882,1.3,3.0],"tolerance":1e-9},{"id":43,"outgoing_halfedge":43,"position":[0.5999999999999999,1.374772708486752,3.0],"tolerance":1e-9},{"id":44,"outgoing_halfedge":46,"position":[0.0,2.0,0.5],"tolerance":1e-9},{"id":45,"outgoing_halfedge":47,"position":[0.0,2.0,0.8],"tolerance":1e-9},{"id":46,"outgoing_halfedge":48,"position":[0.0,2.0,2.0],"tolerance":1e-9},{"id":47,"outgoing_halfedge":51,"position":[9.184850993605148e-17,1.5,2.0],"tolerance":1e-9},{"id":48,"outgoing_halfedge":52,"position":[9.184850993605148e-17,1.5,0.8],"tolerance":1e-9},{"id":49,"outgoing_halfedge":53,"position":[9.184850993605148e-17,1.5,0.5],"tolerance":1e-9},{"id":50,"outgoing_halfedge":56,"position":[0.5999999999999999,1.9078784028338913,0.5],"tolerance":1e-9},{"id":51,"outgoing_halfedge":66,"position":[1.05,1.7022044530549203,0.5],"tolerance":1e-9},{"id":52,"outgoing_halfedge":73,"position":[1.5612494995995996,1.2499999999999998,0.8],"tolerance":1e-9},{"id":53,"outgoing_halfedge":86,"position":[2.0,1.1102230246251565e-16,0.5],"tolerance":1e-9},{"id":54,"outgoing_halfedge":87,"position":[2.0,1.1102230246251565e-16,0.8],"tolerance":1e-9},{"id":55,"outgoing_halfedge":88,"position":[2.0,1.1102230246251565e-16,2.0],"tolerance":1e-9},{"id":56,"outgoing_halfedge":92,"position":[1.786057109949175,0.8999999999999999,0.8],"tolerance":1e-9},{"id":57,"outgoing_halfedge":96,"position":[1.5,0.0,0.5],"tolerance":1e-9},{"id":58,"outgoing_halfedge":97,"position":[1.5,0.0,0.8],"tolerance":1e-9},{"id":59,"outgoing_halfedge":98,"position":[1.5,0.0,2.0],"tolerance":1e-9},{"id":60,"outgoing_halfedge":107,"position":[1.2000000000000002,0.8999999999999998,0.8],"tolerance":1e-9},{"id":61,"outgoing_halfedge":120,"position":[0.7483314773547882,1.3,0.5],"tolerance":1e-9},{"id":62,"outgoing_halfedge":126,"position":[1.1,1.0198039027185568,0.8],"tolerance":1e-9},{"id":63,"outgoing_halfedge":130,"position":[0.5999999999999999,1.374772708486752,0.5],"tolerance":1e-9},{"id":64,"outgoing_halfedge":146,"position":[1.1,1.25,0.8],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,0.9,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.1,0.9,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.1,0.9,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.1,1.25,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,0.9,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,0.9,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.1,0.9,2.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,2.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.35,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.35]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.35]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.35,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[1.1,0.9,0.5],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,0.5],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[2.1,0.9,0.5],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,0.9,0.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,1.25,0.5],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-9,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.5,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-9,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.35,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-9,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.350000001,"lo":-1e-9},{"hi":1.000000001,"lo":-1e-9}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.000000001,"lo":-1e-9},{"hi":0.350000001,"lo":-1e-9}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.500000001,"lo":-1e-9},{"hi":0.350000001,"lo":-1e-9}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.350000001,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.000000001,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"opening","entity":"opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":1.500000001,"lo":-1e-9},{"hi":1.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.1,0.9,0.5],"tolerance":1e-9},{"id":1,"outgoing_halfedge":3,"position":[2.1,0.9,0.5],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[1.1,1.25,0.5],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[2.1,1.25,0.5],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.1,0.9,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[2.1,0.9,2.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":7,"position":[1.1,1.25,2.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[2.1,1.25,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.6,1.3,0.8]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,2.1,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.6,2.1,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,2.1,0.8]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,2.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.6,2.1,2.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.45000000000000007]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.45000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.45000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.45000000000000007]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.6,1.3,0.8],"x":[0.0,1.0,0.0],"y":[1.0,0.0,0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,0.8],"x":[0.0,0.0,1.0],"y":[0.0,1.0,0.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.05,1.3,0.8],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.3,0.8],"x":[1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,2.1,0.8],"x":[0.0,0.0,1.0],"y":[1.0,0.0,0.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"second-opening","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-9,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-9,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.45,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-9,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.800000001,"lo":-1e-9},{"hi":0.4500000010000001,"lo":-1e-9}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4500000010000001,"lo":-1e-9},{"hi":0.800000001,"lo":-1e-9}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.200000001,"lo":-1e-9},{"hi":0.800000001,"lo":-1e-9}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.800000001,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.4500000010000001,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"second-opening","entity":"second-opening","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":1.200000001,"lo":-1e-9},{"hi":0.4500000010000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.6,1.3,0.8],"tolerance":1e-9},{"id":1,"outgoing_halfedge":3,"position":[1.05,1.3,0.8],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[0.6,2.1,0.8],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[1.05,2.1,0.8],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[0.6,1.3,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.05,1.3,2.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":7,"position":[0.6,2.1,2.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[1.05,2.1,2.0],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_vertical_arc_extrusion_batch"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.0]}],"intersections":[],"pcurves":[{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,2.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[1.5,0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.5,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,-2.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.8369701987210297e-16,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,-1.8369701987210297e-16,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[1.5,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"}]},"id":"arc-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.000000001,"lo":-2.000000001},{"hi":2.000000001,"lo":-2.000000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.000000001,"lo":-2.000000001},{"hi":2.000000001,"lo":-2.000000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.5707963272948966,"lo":-5e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.5707963274615633,"lo":-6.666666666666667e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"arc-host","entity":"arc-host","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[2.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[0.0,2.0,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[9.184850993605148e-17,1.5,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[1.5,0.0,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[2.0,0.0,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[0.0,2.0,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[9.184850993605148e-17,1.5,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[1.5,0.0,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[1.8369701987210297e-16,-1.0,0.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.1,1.019803902718557,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.786057109949175,0.9,0.5]},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.05,1.70220445305492,0.8]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.05,1.3,0.8]},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.6,1.374772708486752,0.8]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[0.6,1.9078784028338913,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[0.748331477354788,1.3,2.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.05,1.3,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[1.1999999999999997,0.9,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[1.5612494995995996,1.25,2.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[1.1,1.25,2.0]},{"direction":[-1.8369701987210297e-16,1.0,0.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.0},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.5},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,2.0,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.8]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[9.184850993605148e-17,1.5,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.9078784028338913,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.7022044530549203,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.7022044530549203,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5612494995995996,1.2499999999999998,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.05,1.7022044530549203,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.05,1.7022044530549203,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.7860571099491753,0.8999999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.0,1.1102230246251565e-16,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.786057109949175,0.8999999999999999,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.2000000000000002,0.8999999999999998,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.0198039027185568,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.7483314773547882,1.3,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1,1.0198039027185568,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5999999999999999,1.374772708486752,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1,1.25,0.8]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.05,1.3,0.8]}],"intersections":[],"pcurves":[{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.5,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.8369701987210297e-16,1.0],"kind":"Line2","origin":[0.0,-2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1,1.019803902718557]},{"direction":[1.0,0.0],"kind":"Line2","origin":[1.1,1.25]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.786057109949175,0.9]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.05,1.70220445305492]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.05,1.3]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6,1.374772708486752]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6,-1.9078784028338913]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[0.748331477354788,-1.3]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.05,-1.3]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[1.5,-0.0],"axis_b":[0.0,-1.5],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,-0.0],"kind":"Line2","origin":[1.1999999999999997,-0.9]},{"axis_a":[2.0,-0.0],"axis_b":[0.0,-2.0],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.5612494995995996,-1.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1,-1.25]},{"direction":[-1.8369701987210297e-16,1.0],"kind":"Line2","origin":[9.184850993605148e-17,1.5]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.0,0.0],"axis_b":[0.0,2.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.5,0.0],"axis_b":[0.0,1.5],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.266103672779499,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.5707963267948963,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981137,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981137,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370315,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981134,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981134,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981134,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0180812136981134,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.46676533904729633,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370317,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.551115123125783e-17,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.46676533904729633,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.7475843496690207,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.7475843496690207,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,0.8]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.5707963267948966,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.1592794807274087,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4612494995995995,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4612494995995995,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4612494995995995,0.30000000000000004]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.23019609728144297,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.2301960972814432,0.30000000000000004]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.2301960972814432,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5860571099491754,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5860571099491754,0.30000000000000004]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5860571099491754,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.440892098500626e-16,0.30000000000000004]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.440892098500626e-16,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.5331056943471393,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.5331056943471393,1.2]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.30166852264521204,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.30166852264521204,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.220446049250313e-16,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.40220445305492003,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.40220445305492025,1.2]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.2]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0180812136981137,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.2661036727794994,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.46676533904729633,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6751315329370317,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.7475843496690207,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.6435011087932843,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.1592794807274087,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.048481504988848,2.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.8],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[9.184850993605148e-17,1.5,0.0],"x":[-1.8369701987210297e-16,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,1.8369701987210297e-16,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[2.0,0.0,0.0],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[1.5612494995995996,1.25,0.5],"x":[-1.0,0.0,0.0],"y":[0.0,0.0,1.0],"z":[0.0,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[1.1,1.25,0.5],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.1999999999999997,0.9,0.5],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.6,1.9078784028338913,0.8],"x":[0.0,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.748331477354788,1.3,0.8],"x":[1.0,0.0,0.0],"y":[-0.0,0.0,1.0],"z":[0.0,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[1.05,1.3,0.8],"x":[0.0,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.5}]},"id":"batch-vertical-arc.arc-host","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.1592794807274087}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":134},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.0484815049888478}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":128},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.048481504988848,"lo":0.7475843496690207}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":118},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932843}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":114},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.6435011087932843,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":104},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":94},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.46676533904729633,"lo":5.551115123125783e-17}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":84},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":0.6751315329370315,"lo":0.4667653390472962}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":80},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":1.0180812136981134,"lo":0.6751315329370315}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":70},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.2661036727794992,"lo":1.0180812136981134}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.2661036727794992}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":54},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":44},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":0.23019609728144297,"lo":0.0}},"halfedge":12,"id":12,"tolerance":1e-9,"twin_halfedge":150},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":0.4612494995995995,"lo":0.0}},"halfedge":13,"id":13,"tolerance":1e-9,"twin_halfedge":144},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":0.6751315329370317,"lo":0.46676533904729633}},"halfedge":14,"id":14,"tolerance":1e-9,"twin_halfedge":82},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.5860571099491754,"lo":0.0}},"halfedge":15,"id":15,"tolerance":1e-9,"twin_halfedge":156},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932844}},"halfedge":16,"id":16,"tolerance":1e-9,"twin_halfedge":116},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":1.2661036727794994,"lo":1.0180812136981137}},"halfedge":17,"id":17,"tolerance":1e-9,"twin_halfedge":67},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":0.40220445305492003,"lo":0.0}},"halfedge":18,"id":18,"tolerance":1e-9,"twin_halfedge":170},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.30166852264521204,"lo":0.0}},"halfedge":19,"id":19,"tolerance":1e-9,"twin_halfedge":166},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.048481504988848}},"halfedge":20,"id":20,"tolerance":1e-9,"twin_halfedge":131},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":0.5331056943471393,"lo":0.0}},"halfedge":21,"id":21,"tolerance":1e-9,"twin_halfedge":162},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":0.5331056943471393,"lo":0.0}},"halfedge":22,"id":22,"tolerance":1e-9,"twin_halfedge":164},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":1.1592794807274085,"lo":1.048481504988848}},"halfedge":23,"id":23,"tolerance":1e-9,"twin_halfedge":186},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":0.30166852264521204,"lo":0.0}},"halfedge":24,"id":24,"tolerance":1e-9,"twin_halfedge":168},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":0.40220445305492003,"lo":0.0}},"halfedge":25,"id":25,"tolerance":1e-9,"twin_halfedge":172},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.2661036727794992,"lo":1.0180812136981134}},"halfedge":26,"id":26,"tolerance":1e-9,"twin_halfedge":174},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":0.7475843496690205,"lo":0.6435011087932843}},"halfedge":27,"id":27,"tolerance":1e-9,"twin_halfedge":182},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":0.5860571099491754,"lo":0.0}},"halfedge":28,"id":28,"tolerance":1e-9,"twin_halfedge":159},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":0.6751315329370315,"lo":0.4667653390472962}},"halfedge":29,"id":29,"tolerance":1e-9,"twin_halfedge":178},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":0.4612494995995995,"lo":0.0}},"halfedge":30,"id":30,"tolerance":1e-9,"twin_halfedge":147},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":0.23019609728144297,"lo":0.0}},"halfedge":31,"id":31,"tolerance":1e-9,"twin_halfedge":153},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":32,"id":32,"tolerance":1e-9,"twin_halfedge":49},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":1.5707963267948963,"lo":1.266103672779499}},"halfedge":33,"id":33,"tolerance":1e-9,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.2661036727794994,"lo":1.0180812136981137}},"halfedge":34,"id":34,"tolerance":1e-9,"twin_halfedge":176},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":1.0180812136981134,"lo":0.6751315329370315}},"halfedge":35,"id":35,"tolerance":1e-9,"twin_halfedge":75},{"chart_seam":false,"geometry":{"curve":36,"kind":"Curve","range":{"hi":0.6751315329370317,"lo":0.46676533904729633}},"halfedge":36,"id":36,"tolerance":1e-9,"twin_halfedge":180},{"chart_seam":false,"geometry":{"curve":37,"kind":"Curve","range":{"hi":0.46676533904729633,"lo":5.551115123125783e-17}},"halfedge":37,"id":37,"tolerance":1e-9,"twin_halfedge":89},{"chart_seam":false,"geometry":{"curve":38,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":38,"id":38,"tolerance":1e-9,"twin_halfedge":99},{"chart_seam":false,"geometry":{"curve":39,"kind":"Curve","range":{"hi":0.6435011087932843,"lo":0.0}},"halfedge":39,"id":39,"tolerance":1e-9,"twin_halfedge":109},{"chart_seam":false,"geometry":{"curve":40,"kind":"Curve","range":{"hi":0.7475843496690207,"lo":0.6435011087932843}},"halfedge":40,"id":40,"tolerance":1e-9,"twin_halfedge":184},{"chart_seam":false,"geometry":{"curve":41,"kind":"Curve","range":{"hi":1.048481504988848,"lo":0.7475843496690207}},"halfedge":41,"id":41,"tolerance":1e-9,"twin_halfedge":123},{"chart_seam":false,"geometry":{"curve":42,"kind":"Curve","range":{"hi":1.1592794807274087,"lo":1.048481504988848}},"halfedge":42,"id":42,"tolerance":1e-9,"twin_halfedge":188},{"chart_seam":false,"geometry":{"curve":43,"kind":"Curve","range":{"hi":1.5707963267948966,"lo":1.1592794807274087}},"halfedge":43,"id":43,"tolerance":1e-9,"twin_halfedge":139},{"chart_seam":false,"geometry":{"curve":44,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":45,"id":44,"tolerance":1e-9,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":45,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":46,"id":45,"tolerance":1e-9,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":46,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":47,"id":46,"tolerance":1e-9,"twin_halfedge":61},{"chart_seam":false,"geometry":{"curve":47,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":48,"id":47,"tolerance":1e-9,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":48,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":50,"id":48,"tolerance":1e-9,"twin_halfedge":138},{"chart_seam":false,"geometry":{"curve":49,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":51,"id":49,"tolerance":1e-9,"twin_halfedge":137},{"chart_seam":false,"geometry":{"curve":50,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":52,"id":50,"tolerance":1e-9,"twin_halfedge":136},{"chart_seam":false,"geometry":{"curve":51,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":53,"id":51,"tolerance":1e-9,"twin_halfedge":135},{"chart_seam":false,"geometry":{"curve":52,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":55,"id":52,"tolerance":1e-9,"twin_halfedge":69},{"chart_seam":false,"geometry":{"curve":53,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":56,"id":53,"tolerance":1e-9,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":54,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":57,"id":54,"tolerance":1e-9,"twin_halfedge":165},{"chart_seam":false,"geometry":{"curve":55,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":58,"id":55,"tolerance":1e-9,"twin_halfedge":177},{"chart_seam":false,"geometry":{"curve":56,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":65,"id":56,"tolerance":1e-9,"twin_halfedge":79},{"chart_seam":false,"geometry":{"curve":57,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":66,"id":57,"tolerance":1e-9,"twin_halfedge":78},{"chart_seam":false,"geometry":{"curve":58,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":71,"id":58,"tolerance":1e-9,"twin_halfedge":83},{"chart_seam":false,"geometry":{"curve":59,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":72,"id":59,"tolerance":1e-9,"twin_halfedge":149},{"chart_seam":false,"geometry":{"curve":60,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":73,"id":60,"tolerance":1e-9,"twin_halfedge":148},{"chart_seam":false,"geometry":{"curve":61,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":74,"id":61,"tolerance":1e-9,"twin_halfedge":181},{"chart_seam":false,"geometry":{"curve":62,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":76,"id":62,"tolerance":1e-9,"twin_halfedge":175},{"chart_seam":false,"geometry":{"curve":63,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":77,"id":63,"tolerance":1e-9,"twin_halfedge":171},{"chart_seam":false,"geometry":{"curve":64,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":81,"id":64,"tolerance":1e-9,"twin_halfedge":93},{"chart_seam":false,"geometry":{"curve":65,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":85,"id":65,"tolerance":1e-9,"twin_halfedge":103},{"chart_seam":false,"geometry":{"curve":66,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":86,"id":66,"tolerance":1e-9,"twin_halfedge":102},{"chart_seam":false,"geometry":{"curve":67,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":87,"id":67,"tolerance":1e-9,"twin_halfedge":101},{"chart_seam":false,"geometry":{"curve":68,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":88,"id":68,"tolerance":1e-9,"twin_halfedge":100},{"chart_seam":false,"geometry":{"curve":69,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":90,"id":69,"tolerance":1e-9,"twin_halfedge":179},{"chart_seam":false,"geometry":{"curve":70,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":91,"id":70,"tolerance":1e-9,"twin_halfedge":158},{"chart_seam":false,"geometry":{"curve":71,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":92,"id":71,"tolerance":1e-9,"twin_halfedge":157},{"chart_seam":false,"geometry":{"curve":72,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":95,"id":72,"tolerance":1e-9,"twin_halfedge":113},{"chart_seam":false,"geometry":{"curve":73,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":96,"id":73,"tolerance":1e-9,"twin_halfedge":112},{"chart_seam":false,"geometry":{"curve":74,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":97,"id":74,"tolerance":1e-9,"twin_halfedge":111},{"chart_seam":false,"geometry":{"curve":75,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":98,"id":75,"tolerance":1e-9,"twin_halfedge":110},{"chart_seam":false,"geometry":{"curve":76,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":105,"id":76,"tolerance":1e-9,"twin_halfedge":117},{"chart_seam":false,"geometry":{"curve":77,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":106,"id":77,"tolerance":1e-9,"twin_halfedge":161},{"chart_seam":false,"geometry":{"curve":78,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":107,"id":78,"tolerance":1e-9,"twin_halfedge":160},{"chart_seam":false,"geometry":{"curve":79,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":108,"id":79,"tolerance":1e-9,"twin_halfedge":185},{"chart_seam":false,"geometry":{"curve":80,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":115,"id":80,"tolerance":1e-9,"twin_halfedge":127},{"chart_seam":false,"geometry":{"curve":81,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":119,"id":81,"tolerance":1e-9,"twin_halfedge":133},{"chart_seam":false,"geometry":{"curve":82,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":120,"id":82,"tolerance":1e-9,"twin_halfedge":132},{"chart_seam":false,"geometry":{"curve":83,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":121,"id":83,"tolerance":1e-9,"twin_halfedge":169},{"chart_seam":false,"geometry":{"curve":84,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":122,"id":84,"tolerance":1e-9,"twin_halfedge":189},{"chart_seam":false,"geometry":{"curve":85,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":124,"id":85,"tolerance":1e-9,"twin_halfedge":183},{"chart_seam":false,"geometry":{"curve":86,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":125,"id":86,"tolerance":1e-9,"twin_halfedge":152},{"chart_seam":false,"geometry":{"curve":87,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":126,"id":87,"tolerance":1e-9,"twin_halfedge":151},{"chart_seam":false,"geometry":{"curve":88,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":129,"id":88,"tolerance":1e-9,"twin_halfedge":143},{"chart_seam":false,"geometry":{"curve":89,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":130,"id":89,"tolerance":1e-9,"twin_halfedge":142},{"chart_seam":false,"geometry":{"curve":90,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":140,"id":90,"tolerance":1e-9,"twin_halfedge":187},{"chart_seam":false,"geometry":{"curve":91,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":141,"id":91,"tolerance":1e-9,"twin_halfedge":163},{"chart_seam":false,"geometry":{"curve":92,"kind":"Curve","range":{"hi":0.30000000000000004,"lo":0.0}},"halfedge":145,"id":92,"tolerance":1e-9,"twin_halfedge":155},{"chart_seam":false,"geometry":{"curve":93,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":146,"id":93,"tolerance":1e-9,"twin_halfedge":154},{"chart_seam":false,"geometry":{"curve":94,"kind":"Curve","range":{"hi":1.2,"lo":0.0}},"halfedge":167,"id":94,"tolerance":1e-9,"twin_halfedge":173}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.000000001,"lo":-1e-9},{"hi":1e-9,"lo":-2.000000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.7860571109491754,"lo":1.099999999},{"hi":1.250000001,"lo":0.8999999989999998}]}},{"id":2,"key":"upper-cap-2","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0500000010000001,"lo":0.5999999989999999},{"hi":1.9078784038338914,"lo":1.299999999}]}},{"id":3,"key":"lower-cap-3","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":1.0500000010000001,"lo":0.5999999989999999},{"hi":-1.299999999,"lo":-1.9078784038338914}]}},{"id":4,"key":"lower-cap-4","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":1.7860571109491754,"lo":1.099999999},{"hi":-0.8999999989999998,"lo":-1.250000001}]}},{"id":5,"key":"upper-cap-5","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":2.000000001,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-plane-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-cylinder-7","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":1.5707963272948964,"lo":1.266103672279499},{"hi":3.000000001,"lo":-1e-9}]}},{"id":8,"key":"vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":1.2661036732794995,"lo":1.0180812131981136},{"hi":0.800000001,"lo":-1e-9}]}},{"id":9,"key":"vertical-cylinder-9","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":1.0180812141981135,"lo":0.6751315324370315},{"hi":3.000000001,"lo":-1e-9}]}},{"id":10,"key":"vertical-cylinder-10","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":0.6751315334370317,"lo":0.46676533854729635},{"hi":0.500000001,"lo":-1e-9}]}},{"id":11,"key":"vertical-cylinder-11","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.4667653395472963,"lo":-4.999999444888488e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":12,"key":"vertical-plane-12","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":0.500000001,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":13,"key":"vertical-cylinder-13","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":0.643501109459951,"lo":-6.666666666666667e-10},{"hi":3.000000001,"lo":-1e-9}]}},{"id":14,"key":"vertical-cylinder-14","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":14,"trim":{"chart":0,"holes":[],"outer":14,"uv_bounds":[{"hi":0.7475843503356874,"lo":0.6435011081266175},{"hi":0.500000001,"lo":-1e-9}]}},{"id":15,"key":"vertical-cylinder-15","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":15,"trim":{"chart":0,"holes":[],"outer":15,"uv_bounds":[{"hi":1.0484815056555148,"lo":0.7475843490023539},{"hi":3.000000001,"lo":-1e-9}]}},{"id":16,"key":"vertical-cylinder-16","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":16,"trim":{"chart":0,"holes":[],"outer":16,"uv_bounds":[{"hi":1.1592794813940754,"lo":1.0484815043221813},{"hi":0.800000001,"lo":-1e-9}]}},{"id":17,"key":"vertical-cylinder-17","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":17,"trim":{"chart":0,"holes":[],"outer":17,"uv_bounds":[{"hi":1.5707963274615633,"lo":1.159279480060742},{"hi":3.000000001,"lo":-1e-9}]}},{"id":18,"key":"vertical-plane-18","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":5,"key":"back"}]},"sense":"Reverse","shell_ref":0,"surface":18,"trim":{"chart":0,"holes":[],"outer":18,"uv_bounds":[{"hi":0.4612495005995995,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":19,"key":"vertical-plane-19","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":19,"trim":{"chart":0,"holes":[],"outer":19,"uv_bounds":[{"hi":0.2301960982814432,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":20,"key":"vertical-plane-20","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"opening","entity":"opening","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":20,"trim":{"chart":0,"holes":[],"outer":20,"uv_bounds":[{"hi":0.5860571109491753,"lo":-1e-9},{"hi":1.500000001,"lo":-1e-9}]}},{"id":21,"key":"vertical-plane-21","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":21,"trim":{"chart":0,"holes":[],"outer":21,"uv_bounds":[{"hi":0.5331056953471393,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":22,"key":"vertical-plane-22","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":22,"trim":{"chart":0,"holes":[],"outer":22,"uv_bounds":[{"hi":0.30166852364521207,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":23,"key":"vertical-plane-23","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"second-opening","entity":"second-opening","face":3,"key":"right"}]},"sense":"Reverse","shell_ref":0,"surface":23,"trim":{"chart":0,"holes":[],"outer":23,"uv_bounds":[{"hi":0.40220445405492006,"lo":-1e-9},{"hi":1.200000001,"lo":-1e-9}]}},{"id":24,"key":"vertical-cylinder-24","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":24,"trim":{"chart":0,"holes":[],"outer":24,"uv_bounds":[{"hi":1.2661036732794995,"lo":1.0180812131981136},{"hi":3.000000001,"lo":1.999999999}]}},{"id":25,"key":"vertical-cylinder-25","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":25,"trim":{"chart":0,"holes":[],"outer":25,"uv_bounds":[{"hi":0.6751315334370317,"lo":0.46676533854729635},{"hi":3.000000001,"lo":1.999999999}]}},{"id":26,"key":"vertical-cylinder-26","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":26,"trim":{"chart":0,"holes":[],"outer":26,"uv_bounds":[{"hi":0.7475843503356874,"lo":0.6435011081266175},{"hi":3.000000001,"lo":1.999999999}]}},{"id":27,"key":"vertical-cylinder-27","provenance":{"reversed":false,"role":"Split","sources":[{"body":"arc-host","entity":"arc-host","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":27,"trim":{"chart":0,"holes":[],"outer":27,"uv_bounds":[{"hi":1.1592794813940754,"lo":1.0484815043221813},{"hi":3.000000001,"lo":1.999999999}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":11,"prev":1,"to":0,"twin":134,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":128,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":118,"wire_ref":null},{"edge":3,"face":0,"from":4,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":2,"prev":4,"to":3,"twin":114,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":0,"next":3,"prev":5,"to":4,"twin":104,"wire_ref":null},{"edge":5,"face":0,"from":6,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":0,"next":4,"prev":6,"to":5,"twin":94,"wire_ref":null},{"edge":6,"face":0,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":0,"next":5,"prev":7,"to":6,"twin":84,"wire_ref":null},{"edge":7,"face":0,"from":8,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":0,"next":6,"prev":8,"to":7,"twin":80,"wire_ref":null},{"edge":8,"face":0,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":0,"next":7,"prev":9,"to":8,"twin":70,"wire_ref":null},{"edge":9,"face":0,"from":10,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":0,"next":8,"prev":10,"to":9,"twin":64,"wire_ref":null},{"edge":10,"face":0,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":0,"next":9,"prev":11,"to":10,"twin":54,"wire_ref":null},{"edge":11,"face":0,"from":0,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":0,"next":10,"prev":0,"to":11,"twin":44,"wire_ref":null},{"edge":12,"face":1,"from":13,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":1,"next":16,"prev":13,"to":12,"twin":150,"wire_ref":null},{"edge":13,"face":1,"from":14,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":1,"next":12,"prev":14,"to":13,"twin":144,"wire_ref":null},{"edge":14,"face":1,"from":15,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":1,"next":13,"prev":15,"to":14,"twin":82,"wire_ref":null},{"edge":15,"face":1,"from":16,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":1,"next":14,"prev":16,"to":15,"twin":156,"wire_ref":null},{"edge":16,"face":1,"from":12,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":1,"next":15,"prev":12,"to":16,"twin":116,"wire_ref":null},{"edge":17,"face":2,"from":18,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":2,"next":21,"prev":18,"to":17,"twin":67,"wire_ref":null},{"edge":18,"face":2,"from":19,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":2,"next":17,"prev":19,"to":18,"twin":170,"wire_ref":null},{"edge":19,"face":2,"from":20,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":2,"next":18,"prev":20,"to":19,"twin":166,"wire_ref":null},{"edge":20,"face":2,"from":21,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":2,"next":19,"prev":21,"to":20,"twin":131,"wire_ref":null},{"edge":21,"face":2,"from":17,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":2,"next":20,"prev":17,"to":21,"twin":162,"wire_ref":null},{"edge":22,"face":3,"from":23,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":3,"next":26,"prev":23,"to":22,"twin":164,"wire_ref":null},{"edge":23,"face":3,"from":24,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":3,"next":22,"prev":24,"to":23,"twin":186,"wire_ref":null},{"edge":24,"face":3,"from":25,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":3,"next":23,"prev":25,"to":24,"twin":168,"wire_ref":null},{"edge":25,"face":3,"from":26,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":3,"next":24,"prev":26,"to":25,"twin":172,"wire_ref":null},{"edge":26,"face":3,"from":22,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":3,"next":25,"prev":22,"to":26,"twin":174,"wire_ref":null},{"edge":27,"face":4,"from":28,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":4,"next":31,"prev":28,"to":27,"twin":182,"wire_ref":null},{"edge":28,"face":4,"from":29,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":4,"next":27,"prev":29,"to":28,"twin":159,"wire_ref":null},{"edge":29,"face":4,"from":30,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":4,"next":28,"prev":30,"to":29,"twin":178,"wire_ref":null},{"edge":30,"face":4,"from":31,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":4,"next":29,"prev":31,"to":30,"twin":147,"wire_ref":null},{"edge":31,"face":4,"from":27,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":4,"next":30,"prev":27,"to":31,"twin":153,"wire_ref":null},{"edge":32,"face":5,"from":33,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":5,"next":43,"prev":33,"to":32,"twin":49,"wire_ref":null},{"edge":33,"face":5,"from":34,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":5,"next":32,"prev":34,"to":33,"twin":59,"wire_ref":null},{"edge":34,"face":5,"from":35,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":5,"next":33,"prev":35,"to":34,"twin":176,"wire_ref":null},{"edge":35,"face":5,"from":36,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":5,"next":34,"prev":36,"to":35,"twin":75,"wire_ref":null},{"edge":36,"face":5,"from":37,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Forward"},"id":36,"loop_ref":5,"next":35,"prev":37,"to":36,"twin":180,"wire_ref":null},{"edge":37,"face":5,"from":38,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Forward"},"id":37,"loop_ref":5,"next":36,"prev":38,"to":37,"twin":89,"wire_ref":null},{"edge":38,"face":5,"from":39,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Reverse"},"id":38,"loop_ref":5,"next":37,"prev":39,"to":38,"twin":99,"wire_ref":null},{"edge":39,"face":5,"from":40,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Reverse"},"id":39,"loop_ref":5,"next":38,"prev":40,"to":39,"twin":109,"wire_ref":null},{"edge":40,"face":5,"from":41,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Reverse"},"id":40,"loop_ref":5,"next":39,"prev":41,"to":40,"twin":184,"wire_ref":null},{"edge":41,"face":5,"from":42,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Reverse"},"id":41,"loop_ref":5,"next":40,"prev":42,"to":41,"twin":123,"wire_ref":null},{"edge":42,"face":5,"from":43,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Reverse"},"id":42,"loop_ref":5,"next":41,"prev":43,"to":42,"twin":188,"wire_ref":null},{"edge":43,"face":5,"from":32,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Reverse"},"id":43,"loop_ref":5,"next":42,"prev":32,"to":43,"twin":139,"wire_ref":null},{"edge":11,"face":6,"from":11,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Forward"},"id":44,"loop_ref":6,"next":53,"prev":45,"to":0,"twin":11,"wire_ref":null},{"edge":44,"face":6,"from":44,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Reverse"},"id":45,"loop_ref":6,"next":44,"prev":46,"to":11,"twin":63,"wire_ref":null},{"edge":45,"face":6,"from":45,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Reverse"},"id":46,"loop_ref":6,"next":45,"prev":47,"to":44,"twin":62,"wire_ref":null},{"edge":46,"face":6,"from":46,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Reverse"},"id":47,"loop_ref":6,"next":46,"prev":48,"to":45,"twin":61,"wire_ref":null},{"edge":47,"face":6,"from":33,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Reverse"},"id":48,"loop_ref":6,"next":47,"prev":49,"to":46,"twin":60,"wire_ref":null},{"edge":32,"face":6,"from":32,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Forward"},"id":49,"loop_ref":6,"next":48,"prev":50,"to":33,"twin":32,"wire_ref":null},{"edge":48,"face":6,"from":47,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Reverse"},"id":50,"loop_ref":6,"next":49,"prev":51,"to":32,"twin":138,"wire_ref":null},{"edge":49,"face":6,"from":48,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Reverse"},"id":51,"loop_ref":6,"next":50,"prev":52,"to":47,"twin":137,"wire_ref":null},{"edge":50,"face":6,"from":49,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Reverse"},"id":52,"loop_ref":6,"next":51,"prev":53,"to":48,"twin":136,"wire_ref":null},{"edge":51,"face":6,"from":0,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Reverse"},"id":53,"loop_ref":6,"next":52,"prev":44,"to":49,"twin":135,"wire_ref":null},{"edge":10,"face":7,"from":10,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Forward"},"id":54,"loop_ref":7,"next":63,"prev":55,"to":11,"twin":10,"wire_ref":null},{"edge":52,"face":7,"from":50,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Reverse"},"id":55,"loop_ref":7,"next":54,"prev":56,"to":10,"twin":69,"wire_ref":null},{"edge":53,"face":7,"from":17,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Reverse"},"id":56,"loop_ref":7,"next":55,"prev":57,"to":50,"twin":68,"wire_ref":null},{"edge":54,"face":7,"from":22,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Reverse"},"id":57,"loop_ref":7,"next":56,"prev":58,"to":17,"twin":165,"wire_ref":null},{"edge":55,"face":7,"from":34,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Reverse"},"id":58,"loop_ref":7,"next":57,"prev":59,"to":22,"twin":177,"wire_ref":null},{"edge":33,"face":7,"from":33,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Reverse"},"id":59,"loop_ref":7,"next":58,"prev":60,"to":34,"twin":33,"wire_ref":null},{"edge":47,"face":7,"from":46,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Forward"},"id":60,"loop_ref":7,"next":59,"prev":61,"to":33,"twin":48,"wire_ref":null},{"edge":46,"face":7,"from":45,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Forward"},"id":61,"loop_ref":7,"next":60,"prev":62,"to":46,"twin":47,"wire_ref":null},{"edge":45,"face":7,"from":44,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Forward"},"id":62,"loop_ref":7,"next":61,"prev":63,"to":45,"twin":46,"wire_ref":null},{"edge":44,"face":7,"from":11,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Forward"},"id":63,"loop_ref":7,"next":62,"prev":54,"to":44,"twin":45,"wire_ref":null},{"edge":9,"face":8,"from":9,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Forward"},"id":64,"loop_ref":8,"next":69,"prev":65,"to":10,"twin":9,"wire_ref":null},{"edge":56,"face":8,"from":51,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Reverse"},"id":65,"loop_ref":8,"next":64,"prev":66,"to":9,"twin":79,"wire_ref":null},{"edge":57,"face":8,"from":18,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Reverse"},"id":66,"loop_ref":8,"next":65,"prev":67,"to":51,"twin":78,"wire_ref":null},{"edge":17,"face":8,"from":17,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Reverse"},"id":67,"loop_ref":8,"next":66,"prev":68,"to":18,"twin":17,"wire_ref":null},{"edge":53,"face":8,"from":50,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Forward"},"id":68,"loop_ref":8,"next":67,"prev":69,"to":17,"twin":56,"wire_ref":null},{"edge":52,"face":8,"from":10,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Forward"},"id":69,"loop_ref":8,"next":68,"prev":64,"to":50,"twin":55,"wire_ref":null},{"edge":8,"face":9,"from":8,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Forward"},"id":70,"loop_ref":9,"next":79,"prev":71,"to":9,"twin":8,"wire_ref":null},{"edge":58,"face":9,"from":14,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Reverse"},"id":71,"loop_ref":9,"next":70,"prev":72,"to":8,"twin":83,"wire_ref":null},{"edge":59,"face":9,"from":52,"geometry_use":{"pcurve":72,"periodic_lift":[0,0],"sense":"Reverse"},"id":72,"loop_ref":9,"next":71,"prev":73,"to":14,"twin":149,"wire_ref":null},{"edge":60,"face":9,"from":30,"geometry_use":{"pcurve":73,"periodic_lift":[0,0],"sense":"Reverse"},"id":73,"loop_ref":9,"next":72,"prev":74,"to":52,"twin":148,"wire_ref":null},{"edge":61,"face":9,"from":36,"geometry_use":{"pcurve":74,"periodic_lift":[0,0],"sense":"Reverse"},"id":74,"loop_ref":9,"next":73,"prev":75,"to":30,"twin":181,"wire_ref":null},{"edge":35,"face":9,"from":35,"geometry_use":{"pcurve":75,"periodic_lift":[0,0],"sense":"Reverse"},"id":75,"loop_ref":9,"next":74,"prev":76,"to":36,"twin":35,"wire_ref":null},{"edge":62,"face":9,"from":26,"geometry_use":{"pcurve":76,"periodic_lift":[0,0],"sense":"Reverse"},"id":76,"loop_ref":9,"next":75,"prev":77,"to":35,"twin":175,"wire_ref":null},{"edge":63,"face":9,"from":18,"geometry_use":{"pcurve":77,"periodic_lift":[0,0],"sense":"Reverse"},"id":77,"loop_ref":9,"next":76,"prev":78,"to":26,"twin":171,"wire_ref":null},{"edge":57,"face":9,"from":51,"geometry_use":{"pcurve":78,"periodic_lift":[0,0],"sense":"Forward"},"id":78,"loop_ref":9,"next":77,"prev":79,"to":18,"twin":66,"wire_ref":null},{"edge":56,"face":9,"from":9,"geometry_use":{"pcurve":79,"periodic_lift":[0,0],"sense":"Forward"},"id":79,"loop_ref":9,"next":78,"prev":70,"to":51,"twin":65,"wire_ref":null},{"edge":7,"face":10,"from":7,"geometry_use":{"pcurve":80,"periodic_lift":[0,0],"sense":"Forward"},"id":80,"loop_ref":10,"next":83,"prev":81,"to":8,"twin":7,"wire_ref":null},{"edge":64,"face":10,"from":15,"geometry_use":{"pcurve":81,"periodic_lift":[0,0],"sense":"Reverse"},"id":81,"loop_ref":10,"next":80,"prev":82,"to":7,"twin":93,"wire_ref":null},{"edge":14,"face":10,"from":14,"geometry_use":{"pcurve":82,"periodic_lift":[0,0],"sense":"Reverse"},"id":82,"loop_ref":10,"next":81,"prev":83,"to":15,"twin":14,"wire_ref":null},{"edge":58,"face":10,"from":8,"geometry_use":{"pcurve":83,"periodic_lift":[0,0],"sense":"Forward"},"id":83,"loop_ref":10,"next":82,"prev":80,"to":14,"twin":71,"wire_ref":null},{"edge":6,"face":11,"from":6,"geometry_use":{"pcurve":84,"periodic_lift":[0,0],"sense":"Forward"},"id":84,"loop_ref":11,"next":93,"prev":85,"to":7,"twin":6,"wire_ref":null},{"edge":65,"face":11,"from":53,"geometry_use":{"pcurve":85,"periodic_lift":[0,0],"sense":"Reverse"},"id":85,"loop_ref":11,"next":84,"prev":86,"to":6,"twin":103,"wire_ref":null},{"edge":66,"face":11,"from":54,"geometry_use":{"pcurve":86,"periodic_lift":[0,0],"sense":"Reverse"},"id":86,"loop_ref":11,"next":85,"prev":87,"to":53,"twin":102,"wire_ref":null},{"edge":67,"face":11,"from":55,"geometry_use":{"pcurve":87,"periodic_lift":[0,0],"sense":"Reverse"},"id":87,"loop_ref":11,"next":86,"prev":88,"to":54,"twin":101,"wire_ref":null},{"edge":68,"face":11,"from":38,"geometry_use":{"pcurve":88,"periodic_lift":[0,0],"sense":"Reverse"},"id":88,"loop_ref":11,"next":87,"prev":89,"to":55,"twin":100,"wire_ref":null},{"edge":37,"face":11,"from":37,"geometry_use":{"pcurve":89,"periodic_lift":[0,0],"sense":"Reverse"},"id":89,"loop_ref":11,"next":88,"prev":90,"to":38,"twin":37,"wire_ref":null},{"edge":69,"face":11,"from":29,"geometry_use":{"pcurve":90,"periodic_lift":[0,0],"sense":"Reverse"},"id":90,"loop_ref":11,"next":89,"prev":91,"to":37,"twin":179,"wire_ref":null},{"edge":70,"face":11,"from":56,"geometry_use":{"pcurve":91,"periodic_lift":[0,0],"sense":"Reverse"},"id":91,"loop_ref":11,"next":90,"prev":92,"to":29,"twin":158,"wire_ref":null},{"edge":71,"face":11,"from":15,"geometry_use":{"pcurve":92,"periodic_lift":[0,0],"sense":"Reverse"},"id":92,"loop_ref":11,"next":91,"prev":93,"to":56,"twin":157,"wire_ref":null},{"edge":64,"face":11,"from":7,"geometry_use":{"pcurve":93,"periodic_lift":[0,0],"sense":"Forward"},"id":93,"loop_ref":11,"next":92,"prev":84,"to":15,"twin":81,"wire_ref":null},{"edge":5,"face":12,"from":5,"geometry_use":{"pcurve":94,"periodic_lift":[0,0],"sense":"Forward"},"id":94,"loop_ref":12,"next":103,"prev":95,"to":6,"twin":5,"wire_ref":null},{"edge":72,"face":12,"from":57,"geometry_use":{"pcurve":95,"periodic_lift":[0,0],"sense":"Reverse"},"id":95,"loop_ref":12,"next":94,"prev":96,"to":5,"twin":113,"wire_ref":null},{"edge":73,"face":12,"from":58,"geometry_use":{"pcurve":96,"periodic_lift":[0,0],"sense":"Reverse"},"id":96,"loop_ref":12,"next":95,"prev":97,"to":57,"twin":112,"wire_ref":null},{"edge":74,"face":12,"from":59,"geometry_use":{"pcurve":97,"periodic_lift":[0,0],"sense":"Reverse"},"id":97,"loop_ref":12,"next":96,"prev":98,"to":58,"twin":111,"wire_ref":null},{"edge":75,"face":12,"from":39,"geometry_use":{"pcurve":98,"periodic_lift":[0,0],"sense":"Reverse"},"id":98,"loop_ref":12,"next":97,"prev":99,"to":59,"twin":110,"wire_ref":null},{"edge":38,"face":12,"from":38,"geometry_use":{"pcurve":99,"periodic_lift":[0,0],"sense":"Forward"},"id":99,"loop_ref":12,"next":98,"prev":100,"to":39,"twin":38,"wire_ref":null},{"edge":68,"face":12,"from":55,"geometry_use":{"pcurve":100,"periodic_lift":[0,0],"sense":"Forward"},"id":100,"loop_ref":12,"next":99,"prev":101,"to":38,"twin":88,"wire_ref":null},{"edge":67,"face":12,"from":54,"geometry_use":{"pcurve":101,"periodic_lift":[0,0],"sense":"Forward"},"id":101,"loop_ref":12,"next":100,"prev":102,"to":55,"twin":87,"wire_ref":null},{"edge":66,"face":12,"from":53,"geometry_use":{"pcurve":102,"periodic_lift":[0,0],"sense":"Forward"},"id":102,"loop_ref":12,"next":101,"prev":103,"to":54,"twin":86,"wire_ref":null},{"edge":65,"face":12,"from":6,"geometry_use":{"pcurve":103,"periodic_lift":[0,0],"sense":"Forward"},"id":103,"loop_ref":12,"next":102,"prev":94,"to":53,"twin":85,"wire_ref":null},{"edge":4,"face":13,"from":4,"geometry_use":{"pcurve":104,"periodic_lift":[0,0],"sense":"Reverse"},"id":104,"loop_ref":13,"next":113,"prev":105,"to":5,"twin":4,"wire_ref":null},{"edge":76,"face":13,"from":16,"geometry_use":{"pcurve":105,"periodic_lift":[0,0],"sense":"Reverse"},"id":105,"loop_ref":13,"next":104,"prev":106,"to":4,"twin":117,"wire_ref":null},{"edge":77,"face":13,"from":60,"geometry_use":{"pcurve":106,"periodic_lift":[0,0],"sense":"Reverse"},"id":106,"loop_ref":13,"next":105,"prev":107,"to":16,"twin":161,"wire_ref":null},{"edge":78,"face":13,"from":28,"geometry_use":{"pcurve":107,"periodic_lift":[0,0],"sense":"Reverse"},"id":107,"loop_ref":13,"next":106,"prev":108,"to":60,"twin":160,"wire_ref":null},{"edge":79,"face":13,"from":40,"geometry_use":{"pcurve":108,"periodic_lift":[0,0],"sense":"Reverse"},"id":108,"loop_ref":13,"next":107,"prev":109,"to":28,"twin":185,"wire_ref":null},{"edge":39,"face":13,"from":39,"geometry_use":{"pcurve":109,"periodic_lift":[0,0],"sense":"Forward"},"id":109,"loop_ref":13,"next":108,"prev":110,"to":40,"twin":39,"wire_ref":null},{"edge":75,"face":13,"from":59,"geometry_use":{"pcurve":110,"periodic_lift":[0,0],"sense":"Forward"},"id":110,"loop_ref":13,"next":109,"prev":111,"to":39,"twin":98,"wire_ref":null},{"edge":74,"face":13,"from":58,"geometry_use":{"pcurve":111,"periodic_lift":[0,0],"sense":"Forward"},"id":111,"loop_ref":13,"next":110,"prev":112,"to":59,"twin":97,"wire_ref":null},{"edge":73,"face":13,"from":57,"geometry_use":{"pcurve":112,"periodic_lift":[0,0],"sense":"Forward"},"id":112,"loop_ref":13,"next":111,"prev":113,"to":58,"twin":96,"wire_ref":null},{"edge":72,"face":13,"from":5,"geometry_use":{"pcurve":113,"periodic_lift":[0,0],"sense":"Forward"},"id":113,"loop_ref":13,"next":112,"prev":104,"to":57,"twin":95,"wire_ref":null},{"edge":3,"face":14,"from":3,"geometry_use":{"pcurve":114,"periodic_lift":[0,0],"sense":"Reverse"},"id":114,"loop_ref":14,"next":117,"prev":115,"to":4,"twin":3,"wire_ref":null},{"edge":80,"face":14,"from":12,"geometry_use":{"pcurve":115,"periodic_lift":[0,0],"sense":"Reverse"},"id":115,"loop_ref":14,"next":114,"prev":116,"to":3,"twin":127,"wire_ref":null},{"edge":16,"face":14,"from":16,"geometry_use":{"pcurve":116,"periodic_lift":[0,0],"sense":"Forward"},"id":116,"loop_ref":14,"next":115,"prev":117,"to":12,"twin":16,"wire_ref":null},{"edge":76,"face":14,"from":4,"geometry_use":{"pcurve":117,"periodic_lift":[0,0],"sense":"Forward"},"id":117,"loop_ref":14,"next":116,"prev":114,"to":16,"twin":105,"wire_ref":null},{"edge":2,"face":15,"from":2,"geometry_use":{"pcurve":118,"periodic_lift":[0,0],"sense":"Reverse"},"id":118,"loop_ref":15,"next":127,"prev":119,"to":3,"twin":2,"wire_ref":null},{"edge":81,"face":15,"from":61,"geometry_use":{"pcurve":119,"periodic_lift":[0,0],"sense":"Reverse"},"id":119,"loop_ref":15,"next":118,"prev":120,"to":2,"twin":133,"wire_ref":null},{"edge":82,"face":15,"from":20,"geometry_use":{"pcurve":120,"periodic_lift":[0,0],"sense":"Reverse"},"id":120,"loop_ref":15,"next":119,"prev":121,"to":61,"twin":132,"wire_ref":null},{"edge":83,"face":15,"from":24,"geometry_use":{"pcurve":121,"periodic_lift":[0,0],"sense":"Reverse"},"id":121,"loop_ref":15,"next":120,"prev":122,"to":20,"twin":169,"wire_ref":null},{"edge":84,"face":15,"from":42,"geometry_use":{"pcurve":122,"periodic_lift":[0,0],"sense":"Reverse"},"id":122,"loop_ref":15,"next":121,"prev":123,"to":24,"twin":189,"wire_ref":null},{"edge":41,"face":15,"from":41,"geometry_use":{"pcurve":123,"periodic_lift":[0,0],"sense":"Forward"},"id":123,"loop_ref":15,"next":122,"prev":124,"to":42,"twin":41,"wire_ref":null},{"edge":85,"face":15,"from":27,"geometry_use":{"pcurve":124,"periodic_lift":[0,0],"sense":"Reverse"},"id":124,"loop_ref":15,"next":123,"prev":125,"to":41,"twin":183,"wire_ref":null},{"edge":86,"face":15,"from":62,"geometry_use":{"pcurve":125,"periodic_lift":[0,0],"sense":"Reverse"},"id":125,"loop_ref":15,"next":124,"prev":126,"to":27,"twin":152,"wire_ref":null},{"edge":87,"face":15,"from":12,"geometry_use":{"pcurve":126,"periodic_lift":[0,0],"sense":"Reverse"},"id":126,"loop_ref":15,"next":125,"prev":127,"to":62,"twin":151,"wire_ref":null},{"edge":80,"face":15,"from":3,"geometry_use":{"pcurve":127,"periodic_lift":[0,0],"sense":"Forward"},"id":127,"loop_ref":15,"next":126,"prev":118,"to":12,"twin":115,"wire_ref":null},{"edge":1,"face":16,"from":1,"geometry_use":{"pcurve":128,"periodic_lift":[0,0],"sense":"Reverse"},"id":128,"loop_ref":16,"next":133,"prev":129,"to":2,"twin":1,"wire_ref":null},{"edge":88,"face":16,"from":63,"geometry_use":{"pcurve":129,"periodic_lift":[0,0],"sense":"Reverse"},"id":129,"loop_ref":16,"next":128,"prev":130,"to":1,"twin":143,"wire_ref":null},{"edge":89,"face":16,"from":21,"geometry_use":{"pcurve":130,"periodic_lift":[0,0],"sense":"Reverse"},"id":130,"loop_ref":16,"next":129,"prev":131,"to":63,"twin":142,"wire_ref":null},{"edge":20,"face":16,"from":20,"geometry_use":{"pcurve":131,"periodic_lift":[0,0],"sense":"Forward"},"id":131,"loop_ref":16,"next":130,"prev":132,"to":21,"twin":20,"wire_ref":null},{"edge":82,"face":16,"from":61,"geometry_use":{"pcurve":132,"periodic_lift":[0,0],"sense":"Forward"},"id":132,"loop_ref":16,"next":131,"prev":133,"to":20,"twin":120,"wire_ref":null},{"edge":81,"face":16,"from":2,"geometry_use":{"pcurve":133,"periodic_lift":[0,0],"sense":"Forward"},"id":133,"loop_ref":16,"next":132,"prev":128,"to":61,"twin":119,"wire_ref":null},{"edge":0,"face":17,"from":0,"geometry_use":{"pcurve":134,"periodic_lift":[0,0],"sense":"Reverse"},"id":134,"loop_ref":17,"next":143,"prev":135,"to":1,"twin":0,"wire_ref":null},{"edge":51,"face":17,"from":49,"geometry_use":{"pcurve":135,"periodic_lift":[0,0],"sense":"Forward"},"id":135,"loop_ref":17,"next":134,"prev":136,"to":0,"twin":53,"wire_ref":null},{"edge":50,"face":17,"from":48,"geometry_use":{"pcurve":136,"periodic_lift":[0,0],"sense":"Forward"},"id":136,"loop_ref":17,"next":135,"prev":137,"to":49,"twin":52,"wire_ref":null},{"edge":49,"face":17,"from":47,"geometry_use":{"pcurve":137,"periodic_lift":[0,0],"sense":"Forward"},"id":137,"loop_ref":17,"next":136,"prev":138,"to":48,"twin":51,"wire_ref":null},{"edge":48,"face":17,"from":32,"geometry_use":{"pcurve":138,"periodic_lift":[0,0],"sense":"Forward"},"id":138,"loop_ref":17,"next":137,"prev":139,"to":47,"twin":50,"wire_ref":null},{"edge":43,"face":17,"from":43,"geometry_use":{"pcurve":139,"periodic_lift":[0,0],"sense":"Forward"},"id":139,"loop_ref":17,"next":138,"prev":140,"to":32,"twin":43,"wire_ref":null},{"edge":90,"face":17,"from":23,"geometry_use":{"pcurve":140,"periodic_lift":[0,0],"sense":"Reverse"},"id":140,"loop_ref":17,"next":139,"prev":141,"to":43,"twin":187,"wire_ref":null},{"edge":91,"face":17,"from":21,"geometry_use":{"pcurve":141,"periodic_lift":[0,0],"sense":"Reverse"},"id":141,"loop_ref":17,"next":140,"prev":142,"to":23,"twin":163,"wire_ref":null},{"edge":89,"face":17,"from":63,"geometry_use":{"pcurve":142,"periodic_lift":[0,0],"sense":"Forward"},"id":142,"loop_ref":17,"next":141,"prev":143,"to":21,"twin":130,"wire_ref":null},{"edge":88,"face":17,"from":1,"geometry_use":{"pcurve":143,"periodic_lift":[0,0],"sense":"Forward"},"id":143,"loop_ref":17,"next":142,"prev":134,"to":63,"twin":129,"wire_ref":null},{"edge":13,"face":18,"from":13,"geometry_use":{"pcurve":144,"periodic_lift":[0,0],"sense":"Forward"},"id":144,"loop_ref":18,"next":149,"prev":145,"to":14,"twin":13,"wire_ref":null},{"edge":92,"face":18,"from":64,"geometry_use":{"pcurve":145,"periodic_lift":[0,0],"sense":"Reverse"},"id":145,"loop_ref":18,"next":144,"prev":146,"to":13,"twin":155,"wire_ref":null},{"edge":93,"face":18,"from":31,"geometry_use":{"pcurve":146,"periodic_lift":[0,0],"sense":"Reverse"},"id":146,"loop_ref":18,"next":145,"prev":147,"to":64,"twin":154,"wire_ref":null},{"edge":30,"face":18,"from":30,"geometry_use":{"pcurve":147,"periodic_lift":[0,0],"sense":"Forward"},"id":147,"loop_ref":18,"next":146,"prev":148,"to":31,"twin":30,"wire_ref":null},{"edge":60,"face":18,"from":52,"geometry_use":{"pcurve":148,"periodic_lift":[0,0],"sense":"Forward"},"id":148,"loop_ref":18,"next":147,"prev":149,"to":30,"twin":73,"wire_ref":null},{"edge":59,"face":18,"from":14,"geometry_use":{"pcurve":149,"periodic_lift":[0,0],"sense":"Forward"},"id":149,"loop_ref":18,"next":148,"prev":144,"to":52,"twin":72,"wire_ref":null},{"edge":12,"face":19,"from":12,"geometry_use":{"pcurve":150,"periodic_lift":[0,0],"sense":"Forward"},"id":150,"loop_ref":19,"next":155,"prev":151,"to":13,"twin":12,"wire_ref":null},{"edge":87,"face":19,"from":62,"geometry_use":{"pcurve":151,"periodic_lift":[0,0],"sense":"Forward"},"id":151,"loop_ref":19,"next":150,"prev":152,"to":12,"twin":126,"wire_ref":null},{"edge":86,"face":19,"from":27,"geometry_use":{"pcurve":152,"periodic_lift":[0,0],"sense":"Forward"},"id":152,"loop_ref":19,"next":151,"prev":153,"to":62,"twin":125,"wire_ref":null},{"edge":31,"face":19,"from":31,"geometry_use":{"pcurve":153,"periodic_lift":[0,0],"sense":"Forward"},"id":153,"loop_ref":19,"next":152,"prev":154,"to":27,"twin":31,"wire_ref":null},{"edge":93,"face":19,"from":64,"geometry_use":{"pcurve":154,"periodic_lift":[0,0],"sense":"Forward"},"id":154,"loop_ref":19,"next":153,"prev":155,"to":31,"twin":146,"wire_ref":null},{"edge":92,"face":19,"from":13,"geometry_use":{"pcurve":155,"periodic_lift":[0,0],"sense":"Forward"},"id":155,"loop_ref":19,"next":154,"prev":150,"to":64,"twin":145,"wire_ref":null},{"edge":15,"face":20,"from":15,"geometry_use":{"pcurve":156,"periodic_lift":[0,0],"sense":"Forward"},"id":156,"loop_ref":20,"next":161,"prev":157,"to":16,"twin":15,"wire_ref":null},{"edge":71,"face":20,"from":56,"geometry_use":{"pcurve":157,"periodic_lift":[0,0],"sense":"Forward"},"id":157,"loop_ref":20,"next":156,"prev":158,"to":15,"twin":92,"wire_ref":null},{"edge":70,"face":20,"from":29,"geometry_use":{"pcurve":158,"periodic_lift":[0,0],"sense":"Forward"},"id":158,"loop_ref":20,"next":157,"prev":159,"to":56,"twin":91,"wire_ref":null},{"edge":28,"face":20,"from":28,"geometry_use":{"pcurve":159,"periodic_lift":[0,0],"sense":"Forward"},"id":159,"loop_ref":20,"next":158,"prev":160,"to":29,"twin":28,"wire_ref":null},{"edge":78,"face":20,"from":60,"geometry_use":{"pcurve":160,"periodic_lift":[0,0],"sense":"Forward"},"id":160,"loop_ref":20,"next":159,"prev":161,"to":28,"twin":107,"wire_ref":null},{"edge":77,"face":20,"from":16,"geometry_use":{"pcurve":161,"periodic_lift":[0,0],"sense":"Forward"},"id":161,"loop_ref":20,"next":160,"prev":156,"to":60,"twin":106,"wire_ref":null},{"edge":21,"face":21,"from":21,"geometry_use":{"pcurve":162,"periodic_lift":[0,0],"sense":"Forward"},"id":162,"loop_ref":21,"next":165,"prev":163,"to":17,"twin":21,"wire_ref":null},{"edge":91,"face":21,"from":23,"geometry_use":{"pcurve":163,"periodic_lift":[0,0],"sense":"Forward"},"id":163,"loop_ref":21,"next":162,"prev":164,"to":21,"twin":141,"wire_ref":null},{"edge":22,"face":21,"from":22,"geometry_use":{"pcurve":164,"periodic_lift":[0,0],"sense":"Forward"},"id":164,"loop_ref":21,"next":163,"prev":165,"to":23,"twin":22,"wire_ref":null},{"edge":54,"face":21,"from":17,"geometry_use":{"pcurve":165,"periodic_lift":[0,0],"sense":"Forward"},"id":165,"loop_ref":21,"next":164,"prev":162,"to":22,"twin":57,"wire_ref":null},{"edge":19,"face":22,"from":19,"geometry_use":{"pcurve":166,"periodic_lift":[0,0],"sense":"Forward"},"id":166,"loop_ref":22,"next":169,"prev":167,"to":20,"twin":19,"wire_ref":null},{"edge":94,"face":22,"from":25,"geometry_use":{"pcurve":167,"periodic_lift":[0,0],"sense":"Reverse"},"id":167,"loop_ref":22,"next":166,"prev":168,"to":19,"twin":173,"wire_ref":null},{"edge":24,"face":22,"from":24,"geometry_use":{"pcurve":168,"periodic_lift":[0,0],"sense":"Forward"},"id":168,"loop_ref":22,"next":167,"prev":169,"to":25,"twin":24,"wire_ref":null},{"edge":83,"face":22,"from":20,"geometry_use":{"pcurve":169,"periodic_lift":[0,0],"sense":"Forward"},"id":169,"loop_ref":22,"next":168,"prev":166,"to":24,"twin":121,"wire_ref":null},{"edge":18,"face":23,"from":18,"geometry_use":{"pcurve":170,"periodic_lift":[0,0],"sense":"Forward"},"id":170,"loop_ref":23,"next":173,"prev":171,"to":19,"twin":18,"wire_ref":null},{"edge":63,"face":23,"from":26,"geometry_use":{"pcurve":171,"periodic_lift":[0,0],"sense":"Forward"},"id":171,"loop_ref":23,"next":170,"prev":172,"to":18,"twin":77,"wire_ref":null},{"edge":25,"face":23,"from":25,"geometry_use":{"pcurve":172,"periodic_lift":[0,0],"sense":"Forward"},"id":172,"loop_ref":23,"next":171,"prev":173,"to":26,"twin":25,"wire_ref":null},{"edge":94,"face":23,"from":19,"geometry_use":{"pcurve":173,"periodic_lift":[0,0],"sense":"Forward"},"id":173,"loop_ref":23,"next":172,"prev":170,"to":25,"twin":167,"wire_ref":null},{"edge":26,"face":24,"from":26,"geometry_use":{"pcurve":174,"periodic_lift":[0,0],"sense":"Forward"},"id":174,"loop_ref":24,"next":177,"prev":175,"to":22,"twin":26,"wire_ref":null},{"edge":62,"face":24,"from":35,"geometry_use":{"pcurve":175,"periodic_lift":[0,0],"sense":"Forward"},"id":175,"loop_ref":24,"next":174,"prev":176,"to":26,"twin":76,"wire_ref":null},{"edge":34,"face":24,"from":34,"geometry_use":{"pcurve":176,"periodic_lift":[0,0],"sense":"Reverse"},"id":176,"loop_ref":24,"next":175,"prev":177,"to":35,"twin":34,"wire_ref":null},{"edge":55,"face":24,"from":22,"geometry_use":{"pcurve":177,"periodic_lift":[0,0],"sense":"Forward"},"id":177,"loop_ref":24,"next":176,"prev":174,"to":34,"twin":58,"wire_ref":null},{"edge":29,"face":25,"from":29,"geometry_use":{"pcurve":178,"periodic_lift":[0,0],"sense":"Forward"},"id":178,"loop_ref":25,"next":181,"prev":179,"to":30,"twin":29,"wire_ref":null},{"edge":69,"face":25,"from":37,"geometry_use":{"pcurve":179,"periodic_lift":[0,0],"sense":"Forward"},"id":179,"loop_ref":25,"next":178,"prev":180,"to":29,"twin":90,"wire_ref":null},{"edge":36,"face":25,"from":36,"geometry_use":{"pcurve":180,"periodic_lift":[0,0],"sense":"Reverse"},"id":180,"loop_ref":25,"next":179,"prev":181,"to":37,"twin":36,"wire_ref":null},{"edge":61,"face":25,"from":30,"geometry_use":{"pcurve":181,"periodic_lift":[0,0],"sense":"Forward"},"id":181,"loop_ref":25,"next":180,"prev":178,"to":36,"twin":74,"wire_ref":null},{"edge":27,"face":26,"from":27,"geometry_use":{"pcurve":182,"periodic_lift":[0,0],"sense":"Reverse"},"id":182,"loop_ref":26,"next":185,"prev":183,"to":28,"twin":27,"wire_ref":null},{"edge":85,"face":26,"from":41,"geometry_use":{"pcurve":183,"periodic_lift":[0,0],"sense":"Forward"},"id":183,"loop_ref":26,"next":182,"prev":184,"to":27,"twin":124,"wire_ref":null},{"edge":40,"face":26,"from":40,"geometry_use":{"pcurve":184,"periodic_lift":[0,0],"sense":"Forward"},"id":184,"loop_ref":26,"next":183,"prev":185,"to":41,"twin":40,"wire_ref":null},{"edge":79,"face":26,"from":28,"geometry_use":{"pcurve":185,"periodic_lift":[0,0],"sense":"Forward"},"id":185,"loop_ref":26,"next":184,"prev":182,"to":40,"twin":108,"wire_ref":null},{"edge":23,"face":27,"from":23,"geometry_use":{"pcurve":186,"periodic_lift":[0,0],"sense":"Reverse"},"id":186,"loop_ref":27,"next":189,"prev":187,"to":24,"twin":23,"wire_ref":null},{"edge":90,"face":27,"from":43,"geometry_use":{"pcurve":187,"periodic_lift":[0,0],"sense":"Forward"},"id":187,"loop_ref":27,"next":186,"prev":188,"to":23,"twin":140,"wire_ref":null},{"edge":42,"face":27,"from":42,"geometry_use":{"pcurve":188,"periodic_lift":[0,0],"sense":"Forward"},"id":188,"loop_ref":27,"next":187,"prev":189,"to":43,"twin":42,"wire_ref":null},{"edge":84,"face":27,"from":24,"geometry_use":{"pcurve":189,"periodic_lift":[0,0],"sense":"Forward"},"id":189,"loop_ref":27,"next":188,"prev":186,"to":42,"twin":122,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":12},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":17},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":22},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":27},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":32},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":44},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":54},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":64},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":70},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":80},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":84},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":94},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":104},{"face_ref":14,"id":14,"is_hole":false,"start_halfedge":114},{"face_ref":15,"id":15,"is_hole":false,"start_halfedge":118},{"face_ref":16,"id":16,"is_hole":false,"start_halfedge":128},{"face_ref":17,"id":17,"is_hole":false,"start_halfedge":134},{"face_ref":18,"id":18,"is_hole":false,"start_halfedge":144},{"face_ref":19,"id":19,"is_hole":false,"start_halfedge":150},{"face_ref":20,"id":20,"is_hole":false,"start_halfedge":156},{"face_ref":21,"id":21,"is_hole":false,"start_halfedge":162},{"face_ref":22,"id":22,"is_hole":false,"start_halfedge":166},{"face_ref":23,"id":23,"is_hole":false,"start_halfedge":170},{"face_ref":24,"id":24,"is_hole":false,"start_halfedge":174},{"face_ref":25,"id":25,"is_hole":false,"start_halfedge":178},{"face_ref":26,"id":26,"is_hole":false,"start_halfedge":182},{"face_ref":27,"id":27,"is_hole":false,"start_halfedge":186}],"shells":[{"faces":[0,17,16,15,14,13,12,11,10,9,8,7,6,5,27,21,2,22,26,19,1,20,25,18,24,23,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":11,"position":[9.184850993605148e-17,1.5,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":0,"position":[0.5999999999999999,1.374772708486752,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[0.7483314773547882,1.3,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[1.1,1.0198039027185568,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":3,"position":[1.2000000000000002,0.8999999999999998,0.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":4,"position":[1.5,0.0,0.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":5,"position":[2.0,0.0,0.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[1.786057109949175,0.8999999999999999,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":7,"position":[1.5612494995995996,1.2499999999999998,0.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":8,"position":[1.05,1.7022044530549203,0.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":9,"position":[0.5999999999999999,1.9078784028338913,0.0],"tolerance":1e-9},{"id":11,"outgoing_halfedge":10,"position":[1.2246467991473532e-16,2.0,0.0],"tolerance":1e-9},{"id":12,"outgoing_halfedge":16,"position":[1.1,1.019803902718557,0.5],"tolerance":1e-9},{"id":13,"outgoing_halfedge":12,"position":[1.1,1.25,0.5],"tolerance":1e-9},{"id":14,"outgoing_halfedge":13,"position":[1.5612494995995996,1.25,0.5],"tolerance":1e-9},{"id":15,"outgoing_halfedge":14,"position":[1.7860571099491753,0.8999999999999998,0.5],"tolerance":1e-9},{"id":16,"outgoing_halfedge":15,"position":[1.1999999999999997,0.9,0.5],"tolerance":1e-9},{"id":17,"outgoing_halfedge":21,"position":[0.5999999999999999,1.9078784028338913,0.8],"tolerance":1e-9},{"id":18,"outgoing_halfedge":17,"position":[1.05,1.7022044530549203,0.8],"tolerance":1e-9},{"id":19,"outgoing_halfedge":18,"position":[1.05,1.3,0.8],"tolerance":1e-9},{"id":20,"outgoing_halfedge":19,"position":[0.748331477354788,1.3,0.8],"tolerance":1e-9},{"id":21,"outgoing_halfedge":20,"position":[0.6000000000000001,1.374772708486752,0.8],"tolerance":1e-9},{"id":22,"outgoing_halfedge":26,"position":[0.6,1.9078784028338913,2.0],"tolerance":1e-9},{"id":23,"outgoing_halfedge":22,"position":[0.6,1.374772708486752,2.0],"tolerance":1e-9},{"id":24,"outgoing_halfedge":23,"position":[0.7483314773547882,1.3,2.0],"tolerance":1e-9},{"id":25,"outgoing_halfedge":24,"position":[1.05,1.3,2.0],"tolerance":1e-9},{"id":26,"outgoing_halfedge":25,"position":[1.05,1.70220445305492,2.0],"tolerance":1e-9},{"id":27,"outgoing_halfedge":31,"position":[1.1,1.0198039027185568,2.0],"tolerance":1e-9},{"id":28,"outgoing_halfedge":27,"position":[1.2000000000000002,0.8999999999999999,2.0],"tolerance":1e-9},{"id":29,"outgoing_halfedge":28,"position":[1.786057109949175,0.9,2.0],"tolerance":1e-9},{"id":30,"outgoing_halfedge":29,"position":[1.5612494995995996,1.2499999999999998,2.0],"tolerance":1e-9},{"id":31,"outgoing_halfedge":30,"position":[1.1,1.25,2.0],"tolerance":1e-9},{"id":32,"outgoing_halfedge":43,"position":[9.184850993605148e-17,1.5,3.0],"tolerance":1e-9},{"id":33,"outgoing_halfedge":32,"position":[0.0,2.0,3.0],"tolerance":1e-9},{"id":34,"outgoing_halfedge":33,"position":[0.5999999999999999,1.9078784028338913,3.0],"tolerance":1e-9},{"id":35,"outgoing_halfedge":34,"position":[1.05,1.7022044530549203,3.0],"tolerance":1e-9},{"id":36,"outgoing_halfedge":35,"position":[1.5612494995995996,1.2499999999999998,3.0],"tolerance":1e-9},{"id":37,"outgoing_halfedge":36,"position":[1.7860571099491753,0.8999999999999998,3.0],"tolerance":1e-9},{"id":38,"outgoing_halfedge":37,"position":[2.0,1.1102230246251565e-16,3.0],"tolerance":1e-9},{"id":39,"outgoing_halfedge":38,"position":[1.5,0.0,3.0],"tolerance":1e-9},{"id":40,"outgoing_halfedge":39,"position":[1.2000000000000002,0.8999999999999998,3.0],"tolerance":1e-9},{"id":41,"outgoing_halfedge":40,"position":[1.1,1.0198039027185568,3.0],"tolerance":1e-9},{"id":42,"outgoing_halfedge":41,"position":[0.7483314773547882,1.3,3.0],"tolerance":1e-9},{"id":43,"outgoing_halfedge":42,"position":[0.5999999999999999,1.374772708486752,3.0],"tolerance":1e-9},{"id":44,"outgoing_halfedge":45,"position":[0.0,2.0,0.5],"tolerance":1e-9},{"id":45,"outgoing_halfedge":46,"position":[0.0,2.0,0.8],"tolerance":1e-9},{"id":46,"outgoing_halfedge":47,"position":[0.0,2.0,2.0],"tolerance":1e-9},{"id":47,"outgoing_halfedge":50,"position":[9.184850993605148e-17,1.5,2.0],"tolerance":1e-9},{"id":48,"outgoing_halfedge":51,"position":[9.184850993605148e-17,1.5,0.8],"tolerance":1e-9},{"id":49,"outgoing_halfedge":52,"position":[9.184850993605148e-17,1.5,0.5],"tolerance":1e-9},{"id":50,"outgoing_halfedge":55,"position":[0.5999999999999999,1.9078784028338913,0.5],"tolerance":1e-9},{"id":51,"outgoing_halfedge":65,"position":[1.05,1.7022044530549203,0.5],"tolerance":1e-9},{"id":52,"outgoing_halfedge":72,"position":[1.5612494995995996,1.2499999999999998,0.8],"tolerance":1e-9},{"id":53,"outgoing_halfedge":85,"position":[2.0,1.1102230246251565e-16,0.5],"tolerance":1e-9},{"id":54,"outgoing_halfedge":86,"position":[2.0,1.1102230246251565e-16,0.8],"tolerance":1e-9},{"id":55,"outgoing_halfedge":87,"position":[2.0,1.1102230246251565e-16,2.0],"tolerance":1e-9},{"id":56,"outgoing_halfedge":91,"position":[1.786057109949175,0.8999999999999999,0.8],"tolerance":1e-9},{"id":57,"outgoing_halfedge":95,"position":[1.5,0.0,0.5],"tolerance":1e-9},{"id":58,"outgoing_halfedge":96,"position":[1.5,0.0,0.8],"tolerance":1e-9},{"id":59,"outgoing_halfedge":97,"position":[1.5,0.0,2.0],"tolerance":1e-9},{"id":60,"outgoing_halfedge":106,"position":[1.2000000000000002,0.8999999999999998,0.8],"tolerance":1e-9},{"id":61,"outgoing_halfedge":119,"position":[0.7483314773547882,1.3,0.5],"tolerance":1e-9},{"id":62,"outgoing_halfedge":125,"position":[1.1,1.0198039027185568,0.8],"tolerance":1e-9},{"id":63,"outgoing_halfedge":129,"position":[0.5999999999999999,1.374772708486752,0.5],"tolerance":1e-9},{"id":64,"outgoing_halfedge":145,"position":[1.1,1.25,0.8],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.wide-opening.json b/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.wide-opening.json index 208c5dda..81b2eb6f 100644 --- a/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.wide-opening.json +++ b/main/opengeometry/tests/fixtures/cases/batch-matrix/vertical-arc.wide-opening.json @@ -1 +1 @@ -{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.5646424733950354,-0.8253356149096783,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.5646424733950354,-0.8253356149096783,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.3778406937858983,0.9258706227758774,0.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,0.0]},{"direction":[0.3778406937858983,0.9258706227758774,0.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,0.0]},{"direction":[-0.9808786552620674,-0.19462030636929495,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.9808786552620674,-0.19462030636929495,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]}],"intersections":[],"pcurves":[{"direction":[0.5646424733950354,-0.8253356149096783],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.3778406937858983,0.9258706227758774],"kind":"Line2","origin":[1.5336147919652325,-2.2416785257946072]},{"direction":[-0.9808786552620674,-0.19462030636929495],"kind":"Line2","origin":[2.664146049424873,0.5286045501857572]},{"direction":[-0.9808786552620674,0.19462030636929495],"kind":"Line2","origin":[2.664146049424873,-0.5286045501857572]},{"direction":[0.3778406937858983,-0.9258706227758774],"kind":"Line2","origin":[1.5336147919652325,2.2416785257946072]},{"direction":[0.5646424733950354,0.8253356149096783],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886975,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.7160811738869746,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.5646424733950354,-0.8253356149096783,0.0],"y":[0.0,0.0,1.0],"z":[-0.8253356149096783,-0.5646424733950354,0.0]},"kind":"Plane"},{"frame":{"origin":[1.5336147919652325,-2.2416785257946072,0.0],"x":[0.3778406937858983,0.9258706227758774,0.0],"y":[-0.0,0.0,1.0],"z":[0.9258706227758774,-0.3778406937858983,0.0]},"kind":"Plane"},{"frame":{"origin":[2.664146049424873,0.5286045501857572,0.0],"x":[-0.9808786552620675,-0.194620306369295,0.0],"y":[0.0,0.0,1.0],"z":[-0.19462030636929498,0.9808786552620675,0.0]},"kind":"Plane"}]},"id":"sector-0","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":0.5286045511857572,"lo":-2.2416785267946073}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":2.2416785267946073,"lo":-0.5286045511857572}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.992084432488608,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[1.5336147919652325,-2.2416785257946072,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[2.664146049424873,0.5286045501857572,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[1.5336147919652325,-2.2416785257946072,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[2.664146049424873,0.5286045501857572,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.9808786552620674,0.19462030636929495,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.9808786552620674,0.19462030636929495,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.20675714629088357,-0.9783922947660872,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[-0.20675714629088357,-0.9783922947660872,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]}],"intersections":[],"pcurves":[{"direction":[0.9808786552620674,0.19462030636929495],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446],"kind":"Line2","origin":[2.664146049424873,0.5286045501857572]},{"direction":[-0.20675714629088357,-0.9783922947660872],"kind":"Line2","origin":[0.561569192607264,2.657392892490245]},{"direction":[-0.20675714629088357,0.9783922947660872],"kind":"Line2","origin":[0.561569192607264,-2.657392892490245]},{"direction":[-0.7027130767735538,-0.7114733527908446],"kind":"Line2","origin":[2.664146049424873,-0.5286045501857572]},{"direction":[0.9808786552620674,-0.19462030636929495],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.7160811738869746,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886974,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.9808786552620675,0.194620306369295,0.0],"y":[-0.0,0.0,1.0],"z":[0.19462030636929498,-0.9808786552620675,0.0]},"kind":"Plane"},{"frame":{"origin":[2.664146049424873,0.5286045501857572,0.0],"x":[-0.7027130767735538,0.7114733527908446,0.0],"y":[0.0,0.0,1.0],"z":[0.7114733527908446,0.7027130767735538,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.561569192607264,2.657392892490245,0.0],"x":[-0.20675714629088357,-0.9783922947660872,0.0],"y":[0.0,0.0,1.0],"z":[-0.9783922947660872,0.20675714629088357,0.0]},"kind":"Plane"}]},"id":"sector-1","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.992084431488608,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.992084431488608,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":2.657392893490245,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":1e-9,"lo":-2.657392893490245}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.9920844324886082,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[2.664146049424873,0.5286045501857572,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[0.561569192607264,2.657392892490245,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[2.664146049424873,0.5286045501857572,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[0.561569192607264,2.657392892490245,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.20675714629088357,0.9783922947660872,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.20675714629088357,0.9783922947660872,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[0.8182771110644104,-0.5748239465332692,0.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,0.0]},{"direction":[0.8182771110644104,-0.5748239465332692,0.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,0.0]}],"intersections":[],"pcurves":[{"direction":[0.20675714629088357,0.9783922947660872],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277],"kind":"Line2","origin":[0.561569192607264,2.657392892490245]},{"direction":[0.8182771110644104,-0.5748239465332692],"kind":"Line2","origin":[-2.222507056384666,1.5612684994784252]},{"direction":[0.8182771110644104,0.5748239465332692],"kind":"Line2","origin":[-2.222507056384666,-1.5612684994784252]},{"direction":[-0.9304805104068569,0.3663413978149277],"kind":"Line2","origin":[0.561569192607264,-2.657392892490245]},{"direction":[0.20675714629088357,-0.9783922947660872],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886974,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886975,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.20675714629088357,0.9783922947660872,0.0],"y":[-0.0,0.0,1.0],"z":[0.9783922947660872,-0.20675714629088357,0.0]},"kind":"Plane"},{"frame":{"origin":[0.561569192607264,2.657392892490245,0.0],"x":[-0.930480510406857,-0.36634139781492775,0.0],"y":[0.0,0.0,1.0],"z":[-0.36634139781492775,0.930480510406857,0.0]},"kind":"Plane"},{"frame":{"origin":[-2.222507056384666,1.5612684994784252,0.0],"x":[0.8182771110644104,-0.5748239465332692,0.0],"y":[0.0,0.0,1.0],"z":[-0.5748239465332692,-0.8182771110644104,0.0]},"kind":"Plane"}]},"id":"sector-2","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.561569193607264,"lo":-2.222507057384666},{"hi":2.657392893490245,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.561569193607264,"lo":-2.222507057384666},{"hi":1e-9,"lo":-2.657392893490245}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.992084432488608,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[0.561569192607264,2.657392892490245,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[-2.222507056384666,1.5612684994784252,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[0.561569192607264,2.657392892490245,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[-2.222507056384666,1.5612684994784252,2.0],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_vertical_arc_extrusion_batch"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,0.0]},{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,0.0]},{"direction":[6.123233995736772e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,0.0]},{"direction":[6.123233995736772e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,0.0]}],"intersections":[],"pcurves":[{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,-1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,2.571758278209442e-16]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[6.123233995736772e-17,-1.0],"kind":"Line2","origin":[1.1634144591899854e-16,-1.9]},{"direction":[6.123233995736772e-17,1.0],"kind":"Line2","origin":[1.1634144591899854e-16,1.9]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,-2.571758278209442e-16]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[-2.1,2.571758278209442e-16,0.0],"x":[1.0,-1.2246467991473544e-16,0.0],"y":[0.0,0.0,1.0],"z":[-1.2246467991473544e-16,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[1.1634144591899854e-16,-1.9,0.0],"x":[6.123233995736772e-17,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,-6.123233995736772e-17,0.0]},"kind":"Plane"}]},"id":"wide-arc","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":3.1415926540659838,"lo":-1.570796327271087},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592654116109,"lo":-1.5707963273212124},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[1.285879139104721e-16,-2.1,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[-2.1,2.571758278209442e-16,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[-1.9,2.326828918379971e-16,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[1.1634144591899854e-16,-1.9,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[1.285879139104721e-16,-2.1,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[-2.1,2.571758278209442e-16,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[-1.9,2.326828918379971e-16,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[1.1634144591899854e-16,-1.9,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[-0.8182771110644103,0.5748239465332692,0.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132112,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[6.123233995736766e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899857e-16,-1.9000000000000001,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[-0.5646424733950348,0.8253356149096787,0.0],"kind":"Line","origin":[1.1857491941295741,-1.7332047913103246,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.8182771110644099,-0.5748239465332697,0.0],"kind":"Line","origin":[-1.7183819332352617,1.207130287719865,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.5646424733950345,-0.8253356149096789,0.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[-6.123233995736766e-17,1.0,0.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[-1.0,1.2246467991473544e-16,0.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.718381933235262,1.2071302877198653,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.718381933235262,1.2071302877198653,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132112,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132114,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1857491941295741,-1.7332047913103246,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.185749194129574,-1.7332047913103248,3.0]}],"intersections":[],"pcurves":[{"direction":[1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,-2.571758278209442e-16]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-0.8182771110644103,-0.5748239465332692],"kind":"Line2","origin":[-1.5547265110223796,-1.0921654984132112]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[6.123233995736766e-17,1.0],"kind":"Line2","origin":[1.1634144591899857e-16,1.9000000000000001]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-0.5646424733950348,-0.8253356149096787],"kind":"Line2","origin":[1.1857491941295741,1.7332047913103246]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.8182771110644099,0.5748239465332697],"kind":"Line2","origin":[-1.7183819332352617,-1.207130287719865]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.5646424733950345,0.8253356149096789],"kind":"Line2","origin":[1.0728206994505671,1.5681376683283887]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-6.123233995736766e-17,1.0],"kind":"Line2","origin":[1.285879139104721e-16,-2.1]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-1.9,2.326828918379971e-16]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,2.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.20000000000000007,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-3.0933057395492006e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.529203673205103,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[4.71238898038469,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[4.71238898038469,2.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.2000000000000001,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.2000000000000001,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.71238898038469,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.71238898038469,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.312388980384689,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.19999999999999996,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.312388980384689,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[8.81238898038469,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[8.81238898038469,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,2.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[-1.7183819332352617,1.207130287719865,0.0],"x":[0.8182771110644104,-0.5748239465332693,0.0],"y":[0.0,0.0,1.0],"z":[-0.5748239465332693,-0.8182771110644104,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[-1.9,2.326828918379971e-16,0.0],"x":[-1.0,1.2246467991473544e-16,0.0],"y":[0.0,0.0,1.0],"z":[1.2246467991473544e-16,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[1.0728206994505671,-1.5681376683283887,0.0],"x":[0.5646424733950348,-0.8253356149096787,0.0],"y":[0.0,0.0,1.0],"z":[-0.8253356149096787,-0.5646424733950348,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[1.285879139104721e-16,-2.1,0.0],"x":[-6.123233995736766e-17,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,6.123233995736766e-17,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9}]},"id":"batch-vertical-arc.wide-opening","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.20000000000000007,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.19999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.2000000000000001,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":42},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.19999999999999987,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.31238898038469}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.1999999999999998,"lo":0.0}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":12,"id":12,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":13,"id":13,"tolerance":1e-9,"twin_halfedge":66},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":14,"id":14,"tolerance":1e-9,"twin_halfedge":55},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.19999999999999996,"lo":0.0}},"halfedge":15,"id":15,"tolerance":1e-9,"twin_halfedge":61},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":16,"id":16,"tolerance":1e-9,"twin_halfedge":45},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":17,"id":17,"tolerance":1e-9,"twin_halfedge":70},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":18,"id":18,"tolerance":1e-9,"twin_halfedge":33},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":19,"id":19,"tolerance":1e-9,"twin_halfedge":39},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":21,"id":20,"tolerance":1e-9,"twin_halfedge":29},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":22,"id":21,"tolerance":1e-9,"twin_halfedge":67},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":24,"id":22,"tolerance":1e-9,"twin_halfedge":38},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":25,"id":23,"tolerance":1e-9,"twin_halfedge":37},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":27,"id":24,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":31,"id":25,"tolerance":1e-9,"twin_halfedge":41},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":32,"id":26,"tolerance":1e-9,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":34,"id":27,"tolerance":1e-9,"twin_halfedge":69},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":43,"id":28,"tolerance":1e-9,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":44,"id":29,"tolerance":1e-9,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":46,"id":30,"tolerance":1e-9,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":47,"id":31,"tolerance":1e-9,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":49,"id":32,"tolerance":1e-9,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":53,"id":33,"tolerance":1e-9,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":54,"id":34,"tolerance":1e-9,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":56,"id":35,"tolerance":1e-9,"twin_halfedge":65}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":-1.5547265100223795,"lo":-2.100000001},{"hi":9.999997673171082e-10,"lo":-1.2071302887198654}]}},{"id":1,"key":"lower-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.1857491951295742,"lo":-9.999998836585542e-10},{"hi":2.100000001,"lo":1.5681376673283887}]}},{"id":2,"key":"lower-cap-2","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-0","entity":"sector-0","face":0,"key":"top"},{"body":"sector-1","entity":"sector-1","face":0,"key":"top"},{"body":"sector-2","entity":"sector-2","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.100000001,"lo":-1.718381934235262},{"hi":1.7332047923103255,"lo":-2.100000001}]}},{"id":3,"key":"upper-cap-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":4,"key":"vertical-cylinder-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.1415926540659838,"lo":2.5292036727289124},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-2","entity":"sector-2","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.20000000100000007,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.141592654116109,"lo":2.529203672678787},{"hi":3.000000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-plane-7","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":8,"key":"vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":5.312388980911005,"lo":4.712388979858374},{"hi":3.000000001,"lo":-1e-9}]}},{"id":9,"key":"vertical-plane-9","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-0","entity":"sector-0","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":0.2000000010000001,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":10,"key":"vertical-cylinder-10","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.31238898086088,"lo":4.712388979908499},{"hi":3.000000001,"lo":-1e-9}]}},{"id":11,"key":"vertical-plane-11","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.20000000099999996,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":12,"key":"vertical-cylinder-12","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":8.812388980860879,"lo":5.312388979908499},{"hi":3.000000001,"lo":1.999999999}]}},{"id":13,"key":"vertical-cylinder-13","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":8.812388980911004,"lo":5.312388979858373},{"hi":3.000000001,"lo":1.999999999}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":1,"twin":36,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":2,"twin":30,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":3,"twin":26,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":20,"wire_ref":null},{"edge":4,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":58,"wire_ref":null},{"edge":5,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":6,"twin":52,"wire_ref":null},{"edge":6,"face":1,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":7,"twin":48,"wire_ref":null},{"edge":7,"face":1,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":42,"wire_ref":null},{"edge":8,"face":2,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":9,"twin":28,"wire_ref":null},{"edge":9,"face":2,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":10,"twin":68,"wire_ref":null},{"edge":10,"face":2,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":11,"twin":50,"wire_ref":null},{"edge":11,"face":2,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":8,"twin":64,"wire_ref":null},{"edge":12,"face":3,"from":12,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":19,"to":13,"twin":23,"wire_ref":null},{"edge":13,"face":3,"from":13,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":14,"twin":66,"wire_ref":null},{"edge":14,"face":3,"from":14,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":15,"twin":55,"wire_ref":null},{"edge":15,"face":3,"from":15,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":3,"next":16,"prev":14,"to":16,"twin":61,"wire_ref":null},{"edge":16,"face":3,"from":16,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":3,"next":17,"prev":15,"to":17,"twin":45,"wire_ref":null},{"edge":17,"face":3,"from":17,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":3,"next":18,"prev":16,"to":18,"twin":70,"wire_ref":null},{"edge":18,"face":3,"from":18,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":3,"next":19,"prev":17,"to":19,"twin":33,"wire_ref":null},{"edge":19,"face":3,"from":19,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":3,"next":12,"prev":18,"to":12,"twin":39,"wire_ref":null},{"edge":3,"face":4,"from":0,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":4,"next":21,"prev":25,"to":3,"twin":3,"wire_ref":null},{"edge":20,"face":4,"from":3,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":4,"next":22,"prev":20,"to":8,"twin":29,"wire_ref":null},{"edge":21,"face":4,"from":8,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":4,"next":23,"prev":21,"to":13,"twin":67,"wire_ref":null},{"edge":12,"face":4,"from":13,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":4,"next":24,"prev":22,"to":12,"twin":12,"wire_ref":null},{"edge":22,"face":4,"from":12,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":4,"next":25,"prev":23,"to":20,"twin":38,"wire_ref":null},{"edge":23,"face":4,"from":20,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":4,"next":20,"prev":24,"to":0,"twin":37,"wire_ref":null},{"edge":2,"face":5,"from":3,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":5,"next":27,"prev":29,"to":2,"twin":2,"wire_ref":null},{"edge":24,"face":5,"from":2,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":5,"next":28,"prev":26,"to":9,"twin":35,"wire_ref":null},{"edge":8,"face":5,"from":9,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":5,"next":29,"prev":27,"to":8,"twin":8,"wire_ref":null},{"edge":20,"face":5,"from":8,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":5,"next":26,"prev":28,"to":3,"twin":21,"wire_ref":null},{"edge":1,"face":6,"from":2,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":6,"next":31,"prev":35,"to":1,"twin":1,"wire_ref":null},{"edge":25,"face":6,"from":1,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":6,"next":32,"prev":30,"to":21,"twin":41,"wire_ref":null},{"edge":26,"face":6,"from":21,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":6,"next":33,"prev":31,"to":19,"twin":40,"wire_ref":null},{"edge":18,"face":6,"from":19,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":6,"next":34,"prev":32,"to":18,"twin":18,"wire_ref":null},{"edge":27,"face":6,"from":18,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":6,"next":35,"prev":33,"to":9,"twin":69,"wire_ref":null},{"edge":24,"face":6,"from":9,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":6,"next":30,"prev":34,"to":2,"twin":27,"wire_ref":null},{"edge":0,"face":7,"from":1,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Reverse"},"id":36,"loop_ref":7,"next":37,"prev":41,"to":0,"twin":0,"wire_ref":null},{"edge":23,"face":7,"from":0,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Reverse"},"id":37,"loop_ref":7,"next":38,"prev":36,"to":20,"twin":25,"wire_ref":null},{"edge":22,"face":7,"from":20,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Reverse"},"id":38,"loop_ref":7,"next":39,"prev":37,"to":12,"twin":24,"wire_ref":null},{"edge":19,"face":7,"from":12,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Reverse"},"id":39,"loop_ref":7,"next":40,"prev":38,"to":19,"twin":19,"wire_ref":null},{"edge":26,"face":7,"from":19,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Reverse"},"id":40,"loop_ref":7,"next":41,"prev":39,"to":21,"twin":32,"wire_ref":null},{"edge":25,"face":7,"from":21,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Reverse"},"id":41,"loop_ref":7,"next":36,"prev":40,"to":1,"twin":31,"wire_ref":null},{"edge":7,"face":8,"from":4,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Forward"},"id":42,"loop_ref":8,"next":43,"prev":47,"to":7,"twin":7,"wire_ref":null},{"edge":28,"face":8,"from":7,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Forward"},"id":43,"loop_ref":8,"next":44,"prev":42,"to":10,"twin":51,"wire_ref":null},{"edge":29,"face":8,"from":10,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Forward"},"id":44,"loop_ref":8,"next":45,"prev":43,"to":17,"twin":71,"wire_ref":null},{"edge":16,"face":8,"from":17,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Reverse"},"id":45,"loop_ref":8,"next":46,"prev":44,"to":16,"twin":16,"wire_ref":null},{"edge":30,"face":8,"from":16,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Forward"},"id":46,"loop_ref":8,"next":47,"prev":45,"to":22,"twin":60,"wire_ref":null},{"edge":31,"face":8,"from":22,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Forward"},"id":47,"loop_ref":8,"next":42,"prev":46,"to":4,"twin":59,"wire_ref":null},{"edge":6,"face":9,"from":7,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Reverse"},"id":48,"loop_ref":9,"next":49,"prev":51,"to":6,"twin":6,"wire_ref":null},{"edge":32,"face":9,"from":6,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Forward"},"id":49,"loop_ref":9,"next":50,"prev":48,"to":11,"twin":57,"wire_ref":null},{"edge":10,"face":9,"from":11,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Reverse"},"id":50,"loop_ref":9,"next":51,"prev":49,"to":10,"twin":10,"wire_ref":null},{"edge":28,"face":9,"from":10,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Reverse"},"id":51,"loop_ref":9,"next":48,"prev":50,"to":7,"twin":43,"wire_ref":null},{"edge":5,"face":10,"from":6,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Reverse"},"id":52,"loop_ref":10,"next":53,"prev":57,"to":5,"twin":5,"wire_ref":null},{"edge":33,"face":10,"from":5,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Forward"},"id":53,"loop_ref":10,"next":54,"prev":52,"to":23,"twin":63,"wire_ref":null},{"edge":34,"face":10,"from":23,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Forward"},"id":54,"loop_ref":10,"next":55,"prev":53,"to":15,"twin":62,"wire_ref":null},{"edge":14,"face":10,"from":15,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Forward"},"id":55,"loop_ref":10,"next":56,"prev":54,"to":14,"twin":14,"wire_ref":null},{"edge":35,"face":10,"from":14,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Forward"},"id":56,"loop_ref":10,"next":57,"prev":55,"to":11,"twin":65,"wire_ref":null},{"edge":32,"face":10,"from":11,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Reverse"},"id":57,"loop_ref":10,"next":52,"prev":56,"to":6,"twin":49,"wire_ref":null},{"edge":4,"face":11,"from":5,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Reverse"},"id":58,"loop_ref":11,"next":59,"prev":63,"to":4,"twin":4,"wire_ref":null},{"edge":31,"face":11,"from":4,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Reverse"},"id":59,"loop_ref":11,"next":60,"prev":58,"to":22,"twin":47,"wire_ref":null},{"edge":30,"face":11,"from":22,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Reverse"},"id":60,"loop_ref":11,"next":61,"prev":59,"to":16,"twin":46,"wire_ref":null},{"edge":15,"face":11,"from":16,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Reverse"},"id":61,"loop_ref":11,"next":62,"prev":60,"to":15,"twin":15,"wire_ref":null},{"edge":34,"face":11,"from":15,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Reverse"},"id":62,"loop_ref":11,"next":63,"prev":61,"to":23,"twin":54,"wire_ref":null},{"edge":33,"face":11,"from":23,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Reverse"},"id":63,"loop_ref":11,"next":58,"prev":62,"to":5,"twin":53,"wire_ref":null},{"edge":11,"face":12,"from":8,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Reverse"},"id":64,"loop_ref":12,"next":65,"prev":67,"to":11,"twin":11,"wire_ref":null},{"edge":35,"face":12,"from":11,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Reverse"},"id":65,"loop_ref":12,"next":66,"prev":64,"to":14,"twin":56,"wire_ref":null},{"edge":13,"face":12,"from":14,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Forward"},"id":66,"loop_ref":12,"next":67,"prev":65,"to":13,"twin":13,"wire_ref":null},{"edge":21,"face":12,"from":13,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Reverse"},"id":67,"loop_ref":12,"next":64,"prev":66,"to":8,"twin":22,"wire_ref":null},{"edge":9,"face":13,"from":10,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Forward"},"id":68,"loop_ref":13,"next":69,"prev":71,"to":9,"twin":9,"wire_ref":null},{"edge":27,"face":13,"from":9,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Reverse"},"id":69,"loop_ref":13,"next":70,"prev":68,"to":18,"twin":34,"wire_ref":null},{"edge":17,"face":13,"from":18,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Reverse"},"id":70,"loop_ref":13,"next":71,"prev":69,"to":17,"twin":17,"wire_ref":null},{"edge":29,"face":13,"from":17,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Reverse"},"id":71,"loop_ref":13,"next":68,"prev":70,"to":10,"twin":44,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":26},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":30},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":36},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":42},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":48},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":52},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":58},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":64},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":68}],"shells":[{"faces":[0,7,6,5,4,3,13,2,12,10,11,8,9,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[-2.1,2.571758278209442e-16,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":1,"position":[-1.9,2.326828918379971e-16,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":2,"position":[-1.5547265110223796,1.0921654984132114,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":3,"position":[-1.7183819332352617,1.207130287719865,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":4,"position":[1.1634144591899857e-16,-1.9000000000000001,0.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":5,"position":[1.285879139104721e-16,-2.1,0.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":6,"position":[1.185749194129574,-1.7332047913103248,0.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":7,"position":[1.0728206994505671,-1.5681376683283887,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":8,"position":[-1.7183819332352617,1.207130287719865,2.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":9,"position":[-1.5547265110223798,1.0921654984132112,2.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":10,"position":[1.0728206994505667,-1.568137668328389,2.0],"tolerance":1e-9},{"id":11,"outgoing_halfedge":11,"position":[1.185749194129574,-1.7332047913103243,2.0],"tolerance":1e-9},{"id":12,"outgoing_halfedge":12,"position":[-2.1,2.571758278209442e-16,3.0],"tolerance":1e-9},{"id":13,"outgoing_halfedge":13,"position":[-1.718381933235262,1.2071302877198653,3.0],"tolerance":1e-9},{"id":14,"outgoing_halfedge":14,"position":[1.185749194129573,-1.7332047913103255,3.0],"tolerance":1e-9},{"id":15,"outgoing_halfedge":15,"position":[1.285879139104721e-16,-2.1,3.0],"tolerance":1e-9},{"id":16,"outgoing_halfedge":16,"position":[1.1634144591899857e-16,-1.9000000000000001,3.0],"tolerance":1e-9},{"id":17,"outgoing_halfedge":17,"position":[1.0728206994505667,-1.568137668328389,3.0],"tolerance":1e-9},{"id":18,"outgoing_halfedge":18,"position":[-1.5547265110223796,1.0921654984132114,3.0],"tolerance":1e-9},{"id":19,"outgoing_halfedge":19,"position":[-1.9,2.326828918379971e-16,3.0],"tolerance":1e-9},{"id":20,"outgoing_halfedge":25,"position":[-2.1,2.571758278209442e-16,2.0],"tolerance":1e-9},{"id":21,"outgoing_halfedge":32,"position":[-1.9,2.326828918379971e-16,2.0],"tolerance":1e-9},{"id":22,"outgoing_halfedge":47,"position":[1.1634144591899854e-16,-1.9,2.0],"tolerance":1e-9},{"id":23,"outgoing_halfedge":54,"position":[1.285879139104721e-16,-2.1,2.0],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file +{"cutters":[{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.5646424733950354,-0.8253356149096783,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.5646424733950354,-0.8253356149096783,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.3778406937858983,0.9258706227758774,0.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,0.0]},{"direction":[0.3778406937858983,0.9258706227758774,0.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.5336147919652325,-2.2416785257946072,0.0]},{"direction":[-0.9808786552620674,-0.19462030636929495,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.9808786552620674,-0.19462030636929495,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]}],"intersections":[],"pcurves":[{"direction":[0.5646424733950354,-0.8253356149096783],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.3778406937858983,0.9258706227758774],"kind":"Line2","origin":[1.5336147919652325,-2.2416785257946072]},{"direction":[-0.9808786552620674,-0.19462030636929495],"kind":"Line2","origin":[2.664146049424873,0.5286045501857572]},{"direction":[-0.9808786552620674,0.19462030636929495],"kind":"Line2","origin":[2.664146049424873,-0.5286045501857572]},{"direction":[0.3778406937858983,-0.9258706227758774],"kind":"Line2","origin":[1.5336147919652325,2.2416785257946072]},{"direction":[0.5646424733950354,0.8253356149096783],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886975,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.7160811738869746,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.5646424733950354,-0.8253356149096783,0.0],"y":[0.0,0.0,1.0],"z":[-0.8253356149096783,-0.5646424733950354,0.0]},"kind":"Plane"},{"frame":{"origin":[1.5336147919652325,-2.2416785257946072,0.0],"x":[0.3778406937858983,0.9258706227758774,0.0],"y":[-0.0,0.0,1.0],"z":[0.9258706227758774,-0.3778406937858983,0.0]},"kind":"Plane"},{"frame":{"origin":[2.664146049424873,0.5286045501857572,0.0],"x":[-0.9808786552620675,-0.194620306369295,0.0],"y":[0.0,0.0,1.0],"z":[-0.19462030636929498,0.9808786552620675,0.0]},"kind":"Plane"}]},"id":"sector-0","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":0.5286045511857572,"lo":-2.2416785267946073}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":2.2416785267946073,"lo":-0.5286045511857572}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.992084432488608,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-0","entity":"sector-0","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[1.5336147919652325,-2.2416785257946072,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[2.664146049424873,0.5286045501857572,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[1.5336147919652325,-2.2416785257946072,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[2.664146049424873,0.5286045501857572,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.9808786552620674,0.19462030636929495,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.9808786552620674,0.19462030636929495,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446,0.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[2.664146049424873,0.5286045501857572,0.0]},{"direction":[-0.20675714629088357,-0.9783922947660872,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[-0.20675714629088357,-0.9783922947660872,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]}],"intersections":[],"pcurves":[{"direction":[0.9808786552620674,0.19462030636929495],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-0.7027130767735538,0.7114733527908446],"kind":"Line2","origin":[2.664146049424873,0.5286045501857572]},{"direction":[-0.20675714629088357,-0.9783922947660872],"kind":"Line2","origin":[0.561569192607264,2.657392892490245]},{"direction":[-0.20675714629088357,0.9783922947660872],"kind":"Line2","origin":[0.561569192607264,-2.657392892490245]},{"direction":[-0.7027130767735538,-0.7114733527908446],"kind":"Line2","origin":[2.664146049424873,-0.5286045501857572]},{"direction":[0.9808786552620674,-0.19462030636929495],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.7160811738869746,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886974,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.9808786552620675,0.194620306369295,0.0],"y":[-0.0,0.0,1.0],"z":[0.19462030636929498,-0.9808786552620675,0.0]},"kind":"Plane"},{"frame":{"origin":[2.664146049424873,0.5286045501857572,0.0],"x":[-0.7027130767735538,0.7114733527908446,0.0],"y":[0.0,0.0,1.0],"z":[0.7114733527908446,0.7027130767735538,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.561569192607264,2.657392892490245,0.0],"x":[-0.20675714629088357,-0.9783922947660872,0.0],"y":[0.0,0.0,1.0],"z":[-0.9783922947660872,0.20675714629088357,0.0]},"kind":"Plane"}]},"id":"sector-1","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.992084431488608,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.992084431488608,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":2.657392893490245,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.6641460504248733,"lo":-1e-9},{"hi":1e-9,"lo":-2.657392893490245}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.9920844324886082,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-1","entity":"sector-1","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[2.664146049424873,0.5286045501857572,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[0.561569192607264,2.657392892490245,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[2.664146049424873,0.5286045501857572,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[0.561569192607264,2.657392892490245,2.0],"tolerance":1e-9}],"wires":[]}},{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[0.20675714629088357,0.9783922947660872,0.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[0.20675714629088357,0.9783922947660872,0.0],"kind":"Line","origin":[0.0,0.0,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.0,0.0,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277,0.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.561569192607264,2.657392892490245,0.0]},{"direction":[0.8182771110644104,-0.5748239465332692,0.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,0.0]},{"direction":[0.8182771110644104,-0.5748239465332692,0.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.222507056384666,1.5612684994784252,0.0]}],"intersections":[],"pcurves":[{"direction":[0.20675714629088357,0.9783922947660872],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-0.9304805104068569,-0.3663413978149277],"kind":"Line2","origin":[0.561569192607264,2.657392892490245]},{"direction":[0.8182771110644104,-0.5748239465332692],"kind":"Line2","origin":[-2.222507056384666,1.5612684994784252]},{"direction":[0.8182771110644104,0.5748239465332692],"kind":"Line2","origin":[-2.222507056384666,-1.5612684994784252]},{"direction":[-0.9304805104068569,0.3663413978149277],"kind":"Line2","origin":[0.561569192607264,-2.657392892490245]},{"direction":[0.20675714629088357,-0.9783922947660872],"kind":"Line2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886974,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.992084431488608,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.716081173886975,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[0.20675714629088357,0.9783922947660872,0.0],"y":[-0.0,0.0,1.0],"z":[0.9783922947660872,-0.20675714629088357,0.0]},"kind":"Plane"},{"frame":{"origin":[0.561569192607264,2.657392892490245,0.0],"x":[-0.930480510406857,-0.36634139781492775,0.0],"y":[0.0,0.0,1.0],"z":[-0.36634139781492775,0.930480510406857,0.0]},"kind":"Plane"},{"frame":{"origin":[-2.222507056384666,1.5612684994784252,0.0],"x":[0.8182771110644104,-0.5748239465332692,0.0],"y":[0.0,0.0,1.0],"z":[-0.5748239465332692,-0.8182771110644104,0.0]},"kind":"Plane"}]},"id":"sector-2","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":5,"id":0,"tolerance":1e-9,"twin_halfedge":6},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":9,"id":2,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":4,"id":3,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.9920844314886077,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":7,"id":5,"tolerance":1e-9,"twin_halfedge":13},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":3,"id":6,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":2.7160811738869746,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":11,"id":8,"tolerance":1e-9,"twin_halfedge":17}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":0.561569193607264,"lo":-2.222507057384666},{"hi":2.657392893490245,"lo":-1e-9}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.561569193607264,"lo":-2.222507057384666},{"hi":1e-9,"lo":-2.657392893490245}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.992084432488608,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"sector-2","entity":"sector-2","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":2.7160811748869746,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":3,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":2,"to":4,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":5,"twin":12,"wire_ref":null},{"edge":7,"face":0,"from":5,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":0,"prev":1,"to":3,"twin":16,"wire_ref":null},{"edge":6,"face":1,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":4,"prev":5,"to":2,"twin":14,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":1,"twin":10,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":3,"prev":4,"to":0,"twin":6,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":9,"to":1,"twin":5,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":8,"prev":6,"to":4,"twin":13,"wire_ref":null},{"edge":1,"face":2,"from":4,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":9,"prev":7,"to":3,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":3,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":2,"next":6,"prev":8,"to":0,"twin":15,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":13,"to":2,"twin":4,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":12,"prev":10,"to":5,"twin":17,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":3,"next":13,"prev":11,"to":4,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":4,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":3,"next":10,"prev":12,"to":1,"twin":7,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":17,"to":0,"twin":3,"wire_ref":null},{"edge":2,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":16,"prev":14,"to":3,"twin":9,"wire_ref":null},{"edge":7,"face":4,"from":3,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":15,"to":5,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":4,"next":14,"prev":16,"to":2,"twin":11,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":3},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":10},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":14}],"shells":[{"faces":[0,1,2,3,4],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[0.0,0.0,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":5,"position":[0.561569192607264,2.657392892490245,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":4,"position":[-2.222507056384666,1.5612684994784252,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":0,"position":[0.0,0.0,2.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":1,"position":[0.561569192607264,2.657392892490245,2.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":2,"position":[-2.222507056384666,1.5612684994784252,2.0],"tolerance":1e-9}],"wires":[]}}],"handlers":["subtract_planar_cutters","subtract_vertical_arc_extrusion_batch"],"host":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,0.0]},{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,0.0]},{"direction":[6.123233995736772e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,0.0]},{"direction":[6.123233995736772e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,0.0]}],"intersections":[],"pcurves":[{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,-1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,2.571758278209442e-16]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[6.123233995736772e-17,-1.0],"kind":"Line2","origin":[1.1634144591899854e-16,-1.9]},{"direction":[6.123233995736772e-17,1.0],"kind":"Line2","origin":[1.1634144591899854e-16,1.9]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,-2.571758278209442e-16]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-1.5707963267948966,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[-2.1,2.571758278209442e-16,0.0],"x":[1.0,-1.2246467991473544e-16,0.0],"y":[0.0,0.0,1.0],"z":[-1.2246467991473544e-16,-1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[1.1634144591899854e-16,-1.9,0.0],"x":[6.123233995736772e-17,-1.0,0.0],"y":[0.0,0.0,1.0],"z":[-1.0,-6.123233995736772e-17,0.0]},"kind":"Plane"}]},"id":"wide-arc","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":7,"id":0,"tolerance":1e-9,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":0,"id":1,"tolerance":1e-9,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-9,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-9,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-9,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-9,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":5,"id":6,"tolerance":1e-9,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.141592653589793,"lo":-1.5707963267948966}},"halfedge":2,"id":7,"tolerance":1e-9,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-9,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-9,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-9,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":3.1415926540659838,"lo":-1.570796327271087},{"hi":3.000000001,"lo":-1e-9}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592654116109,"lo":-1.5707963273212124},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"wide-arc","entity":"wide-arc","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[1.285879139104721e-16,-2.1,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":7,"position":[-2.1,2.571758278209442e-16,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":6,"position":[-1.9,2.326828918379971e-16,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":5,"position":[1.1634144591899854e-16,-1.9,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":0,"position":[1.285879139104721e-16,-2.1,3.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":1,"position":[-2.1,2.571758278209442e-16,3.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":2,"position":[-1.9,2.326828918379971e-16,3.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":3,"position":[1.1634144591899854e-16,-1.9,3.0],"tolerance":1e-9}],"wires":[]}},"result":{"brep":{"accuracy":{"exchange":0.00001,"geometric":1e-9,"intersection":1e-10,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,-1.2246467991473544e-16,0.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[-0.8182771110644103,0.5748239465332692,0.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132112,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[6.123233995736766e-17,-1.0,0.0],"kind":"Line","origin":[1.1634144591899857e-16,-1.9000000000000001,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[-0.5646424733950348,0.8253356149096787,0.0],"kind":"Line","origin":[1.1857491941295741,-1.7332047913103246,0.0]},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.8182771110644099,-0.5748239465332697,0.0],"kind":"Line","origin":[-1.7183819332352617,1.207130287719865,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[0.5646424733950345,-0.8253356149096789,0.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,2.0]},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":2.1},{"direction":[-6.123233995736766e-17,1.0,0.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,3.0]},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":1.9},{"direction":[-1.0,1.2246467991473544e-16,0.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.718381933235262,1.2071302877198653,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.718381933235262,1.2071302877198653,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-2.1,2.571758278209442e-16,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132112,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-1.9,2.326828918379971e-16,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-1.5547265110223796,1.0921654984132114,3.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.0728206994505671,-1.5681376683283887,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,3.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.1634144591899854e-16,-1.9,2.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.1857491941295741,-1.7332047913103246,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,0.0]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[1.285879139104721e-16,-2.1,2.0]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[1.185749194129574,-1.7332047913103248,3.0]}],"intersections":[],"pcurves":[{"direction":[1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-2.1,-2.571758278209442e-16]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-0.8182771110644103,-0.5748239465332692],"kind":"Line2","origin":[-1.5547265110223796,-1.0921654984132112]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[6.123233995736766e-17,1.0],"kind":"Line2","origin":[1.1634144591899857e-16,1.9000000000000001]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[-0.5646424733950348,-0.8253356149096787],"kind":"Line2","origin":[1.1857491941295741,1.7332047913103246]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.8182771110644099,0.5748239465332697],"kind":"Line2","origin":[-1.7183819332352617,-1.207130287719865]},{"axis_a":[1.9,-0.0],"axis_b":[0.0,-1.9],"kind":"Conic2","origin":[0.0,-0.0]},{"direction":[0.5646424733950345,0.8253356149096789],"kind":"Line2","origin":[1.0728206994505671,1.5681376683283887]},{"axis_a":[2.1,-0.0],"axis_b":[0.0,-2.1],"kind":"Conic2","origin":[0.0,-0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[2.1,0.0],"axis_b":[0.0,2.1],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-6.123233995736766e-17,1.0],"kind":"Line2","origin":[1.285879139104721e-16,-2.1]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.9,0.0],"axis_b":[0.0,1.9],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[-1.0,1.2246467991473544e-16],"kind":"Line2","origin":[-1.9,2.326828918379971e-16]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,2.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.20000000000000007,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.20000000000000007,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-3.0933057395492006e-16,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.141592653589793,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.529203673205103,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.529203673205103,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.20000000000000018,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[4.71238898038469,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[4.71238898038469,2.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.2000000000000001,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.2000000000000001,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.71238898038469,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.71238898038469,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.312388980384689,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.19999999999999996,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.20000000000000018,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[5.312388980384689,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[8.81238898038469,2.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[8.81238898038469,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[5.312388980384689,2.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,2.0],"x":[1.0,0.0,0.0],"y":[-0.0,-1.0,-0.0],"z":[-0.0,-0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,3.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[-1.7183819332352617,1.207130287719865,0.0],"x":[0.8182771110644104,-0.5748239465332693,0.0],"y":[0.0,0.0,1.0],"z":[-0.5748239465332693,-0.8182771110644104,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[-1.9,2.326828918379971e-16,0.0],"x":[-1.0,1.2246467991473544e-16,0.0],"y":[0.0,0.0,1.0],"z":[1.2246467991473544e-16,1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9},{"frame":{"origin":[1.0728206994505671,-1.5681376683283887,0.0],"x":[0.5646424733950348,-0.8253356149096787,0.0],"y":[0.0,0.0,1.0],"z":[-0.8253356149096787,-0.5646424733950348,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[1.285879139104721e-16,-2.1,0.0],"x":[-6.123233995736766e-17,1.0,0.0],"y":[0.0,0.0,1.0],"z":[1.0,6.123233995736766e-17,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":2.1},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Cylinder","radius":1.9}]},"id":"batch-vertical-arc.wide-opening","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-9,"twin_halfedge":36},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":1,"id":1,"tolerance":1e-9,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":0.20000000000000007,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-9,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":3,"id":3,"tolerance":1e-9,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.19999999999999996,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-9,"twin_halfedge":58},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":5,"id":5,"tolerance":1e-9,"twin_halfedge":52},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":0.2000000000000001,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-9,"twin_halfedge":48},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":7,"id":7,"tolerance":1e-9,"twin_halfedge":42},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.19999999999999987,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-9,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.31238898038469}},"halfedge":9,"id":9,"tolerance":1e-9,"twin_halfedge":68},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.1999999999999998,"lo":0.0}},"halfedge":10,"id":10,"tolerance":1e-9,"twin_halfedge":50},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":11,"id":11,"tolerance":1e-9,"twin_halfedge":64},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":12,"id":12,"tolerance":1e-9,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":13,"id":13,"tolerance":1e-9,"twin_halfedge":66},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":14,"id":14,"tolerance":1e-9,"twin_halfedge":55},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":0.19999999999999996,"lo":0.0}},"halfedge":15,"id":15,"tolerance":1e-9,"twin_halfedge":61},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":5.312388980384689,"lo":4.71238898038469}},"halfedge":16,"id":16,"tolerance":1e-9,"twin_halfedge":45},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":8.81238898038469,"lo":5.312388980384689}},"halfedge":17,"id":17,"tolerance":1e-9,"twin_halfedge":70},{"chart_seam":false,"geometry":{"curve":18,"kind":"Curve","range":{"hi":3.141592653589793,"lo":2.529203673205103}},"halfedge":18,"id":18,"tolerance":1e-9,"twin_halfedge":33},{"chart_seam":false,"geometry":{"curve":19,"kind":"Curve","range":{"hi":0.20000000000000018,"lo":0.0}},"halfedge":19,"id":19,"tolerance":1e-9,"twin_halfedge":39},{"chart_seam":false,"geometry":{"curve":20,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":21,"id":20,"tolerance":1e-9,"twin_halfedge":29},{"chart_seam":false,"geometry":{"curve":21,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":22,"id":21,"tolerance":1e-9,"twin_halfedge":67},{"chart_seam":false,"geometry":{"curve":22,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":24,"id":22,"tolerance":1e-9,"twin_halfedge":38},{"chart_seam":false,"geometry":{"curve":23,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":25,"id":23,"tolerance":1e-9,"twin_halfedge":37},{"chart_seam":false,"geometry":{"curve":24,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":27,"id":24,"tolerance":1e-9,"twin_halfedge":35},{"chart_seam":false,"geometry":{"curve":25,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":31,"id":25,"tolerance":1e-9,"twin_halfedge":41},{"chart_seam":false,"geometry":{"curve":26,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":32,"id":26,"tolerance":1e-9,"twin_halfedge":40},{"chart_seam":false,"geometry":{"curve":27,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":34,"id":27,"tolerance":1e-9,"twin_halfedge":69},{"chart_seam":false,"geometry":{"curve":28,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":43,"id":28,"tolerance":1e-9,"twin_halfedge":51},{"chart_seam":false,"geometry":{"curve":29,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":44,"id":29,"tolerance":1e-9,"twin_halfedge":71},{"chart_seam":false,"geometry":{"curve":30,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":46,"id":30,"tolerance":1e-9,"twin_halfedge":60},{"chart_seam":false,"geometry":{"curve":31,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":47,"id":31,"tolerance":1e-9,"twin_halfedge":59},{"chart_seam":false,"geometry":{"curve":32,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":49,"id":32,"tolerance":1e-9,"twin_halfedge":57},{"chart_seam":false,"geometry":{"curve":33,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":53,"id":33,"tolerance":1e-9,"twin_halfedge":63},{"chart_seam":false,"geometry":{"curve":34,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":54,"id":34,"tolerance":1e-9,"twin_halfedge":62},{"chart_seam":false,"geometry":{"curve":35,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":56,"id":35,"tolerance":1e-9,"twin_halfedge":65}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":-1.5547265100223795,"lo":-2.100000001},{"hi":9.999997673171082e-10,"lo":-1.2071302887198654}]}},{"id":1,"key":"lower-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.1857491951295742,"lo":-9.999998836585542e-10},{"hi":2.100000001,"lo":1.5681376673283887}]}},{"id":2,"key":"lower-cap-2","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-0","entity":"sector-0","face":0,"key":"top"},{"body":"sector-1","entity":"sector-1","face":0,"key":"top"},{"body":"sector-2","entity":"sector-2","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":2.100000001,"lo":-1.718381934235262},{"hi":1.7332047923103255,"lo":-2.100000001}]}},{"id":3,"key":"upper-cap-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":2.100000001,"lo":-2.100000001},{"hi":2.100000001,"lo":-2.100000001}]}},{"id":4,"key":"vertical-cylinder-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.1415926540659838,"lo":2.5292036727289124},{"hi":3.000000001,"lo":-1e-9}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-2","entity":"sector-2","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.20000000100000007,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":3.141592654116109,"lo":2.529203672678787},{"hi":3.000000001,"lo":-1e-9}]}},{"id":7,"key":"vertical-plane-7","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":3,"key":"side-0-1"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":0.20000000100000018,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":8,"key":"vertical-cylinder-8","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":8,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":5.312388980911005,"lo":4.712388979858374},{"hi":3.000000001,"lo":-1e-9}]}},{"id":9,"key":"vertical-plane-9","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"sector-0","entity":"sector-0","face":2,"key":"side-0-0"}]},"sense":"Reverse","shell_ref":0,"surface":9,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":0.2000000010000001,"lo":-1e-9},{"hi":2.000000001,"lo":-1e-9}]}},{"id":10,"key":"vertical-cylinder-10","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":10,"trim":{"chart":0,"holes":[],"outer":10,"uv_bounds":[{"hi":5.31238898086088,"lo":4.712388979908499},{"hi":3.000000001,"lo":-1e-9}]}},{"id":11,"key":"vertical-plane-11","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":5,"key":"side-0-3"}]},"sense":"Reverse","shell_ref":0,"surface":11,"trim":{"chart":0,"holes":[],"outer":11,"uv_bounds":[{"hi":0.20000000099999996,"lo":-1e-9},{"hi":3.000000001,"lo":-1e-9}]}},{"id":12,"key":"vertical-cylinder-12","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":12,"trim":{"chart":0,"holes":[],"outer":12,"uv_bounds":[{"hi":8.812388980860879,"lo":5.312388979908499},{"hi":3.000000001,"lo":1.999999999}]}},{"id":13,"key":"vertical-cylinder-13","provenance":{"reversed":false,"role":"Split","sources":[{"body":"wide-arc","entity":"wide-arc","face":4,"key":"side-0-2"}]},"sense":"Reverse","shell_ref":0,"surface":13,"trim":{"chart":0,"holes":[],"outer":13,"uv_bounds":[{"hi":8.812388980911004,"lo":5.312388979858373},{"hi":3.000000001,"lo":1.999999999}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":3,"prev":1,"to":0,"twin":36,"wire_ref":null},{"edge":1,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":0,"prev":2,"to":1,"twin":30,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":26,"wire_ref":null},{"edge":3,"face":0,"from":0,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":20,"wire_ref":null},{"edge":4,"face":1,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":4,"twin":58,"wire_ref":null},{"edge":5,"face":1,"from":6,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":5,"twin":52,"wire_ref":null},{"edge":6,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":6,"twin":48,"wire_ref":null},{"edge":7,"face":1,"from":4,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":42,"wire_ref":null},{"edge":8,"face":2,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":11,"prev":9,"to":8,"twin":28,"wire_ref":null},{"edge":9,"face":2,"from":10,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":8,"prev":10,"to":9,"twin":68,"wire_ref":null},{"edge":10,"face":2,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":9,"prev":11,"to":10,"twin":50,"wire_ref":null},{"edge":11,"face":2,"from":8,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":10,"prev":8,"to":11,"twin":64,"wire_ref":null},{"edge":12,"face":3,"from":13,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":19,"prev":13,"to":12,"twin":23,"wire_ref":null},{"edge":13,"face":3,"from":14,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":12,"prev":14,"to":13,"twin":66,"wire_ref":null},{"edge":14,"face":3,"from":15,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":3,"next":13,"prev":15,"to":14,"twin":55,"wire_ref":null},{"edge":15,"face":3,"from":16,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":14,"prev":16,"to":15,"twin":61,"wire_ref":null},{"edge":16,"face":3,"from":17,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":3,"next":15,"prev":17,"to":16,"twin":45,"wire_ref":null},{"edge":17,"face":3,"from":18,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":3,"next":16,"prev":18,"to":17,"twin":70,"wire_ref":null},{"edge":18,"face":3,"from":19,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":3,"next":17,"prev":19,"to":18,"twin":33,"wire_ref":null},{"edge":19,"face":3,"from":12,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":3,"next":18,"prev":12,"to":19,"twin":39,"wire_ref":null},{"edge":3,"face":4,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":4,"next":25,"prev":21,"to":0,"twin":3,"wire_ref":null},{"edge":20,"face":4,"from":8,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":4,"next":20,"prev":22,"to":3,"twin":29,"wire_ref":null},{"edge":21,"face":4,"from":13,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":4,"next":21,"prev":23,"to":8,"twin":67,"wire_ref":null},{"edge":12,"face":4,"from":12,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":4,"next":22,"prev":24,"to":13,"twin":12,"wire_ref":null},{"edge":22,"face":4,"from":20,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":4,"next":23,"prev":25,"to":12,"twin":38,"wire_ref":null},{"edge":23,"face":4,"from":0,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":4,"next":24,"prev":20,"to":20,"twin":37,"wire_ref":null},{"edge":2,"face":5,"from":2,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":5,"next":29,"prev":27,"to":3,"twin":2,"wire_ref":null},{"edge":24,"face":5,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":5,"next":26,"prev":28,"to":2,"twin":35,"wire_ref":null},{"edge":8,"face":5,"from":8,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":5,"next":27,"prev":29,"to":9,"twin":8,"wire_ref":null},{"edge":20,"face":5,"from":3,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":5,"next":28,"prev":26,"to":8,"twin":21,"wire_ref":null},{"edge":1,"face":6,"from":1,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":6,"next":35,"prev":31,"to":2,"twin":1,"wire_ref":null},{"edge":25,"face":6,"from":21,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":6,"next":30,"prev":32,"to":1,"twin":41,"wire_ref":null},{"edge":26,"face":6,"from":19,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":6,"next":31,"prev":33,"to":21,"twin":40,"wire_ref":null},{"edge":18,"face":6,"from":18,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":6,"next":32,"prev":34,"to":19,"twin":18,"wire_ref":null},{"edge":27,"face":6,"from":9,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":6,"next":33,"prev":35,"to":18,"twin":69,"wire_ref":null},{"edge":24,"face":6,"from":2,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":6,"next":34,"prev":30,"to":9,"twin":27,"wire_ref":null},{"edge":0,"face":7,"from":0,"geometry_use":{"pcurve":36,"periodic_lift":[0,0],"sense":"Forward"},"id":36,"loop_ref":7,"next":41,"prev":37,"to":1,"twin":0,"wire_ref":null},{"edge":23,"face":7,"from":20,"geometry_use":{"pcurve":37,"periodic_lift":[0,0],"sense":"Forward"},"id":37,"loop_ref":7,"next":36,"prev":38,"to":0,"twin":25,"wire_ref":null},{"edge":22,"face":7,"from":12,"geometry_use":{"pcurve":38,"periodic_lift":[0,0],"sense":"Forward"},"id":38,"loop_ref":7,"next":37,"prev":39,"to":20,"twin":24,"wire_ref":null},{"edge":19,"face":7,"from":19,"geometry_use":{"pcurve":39,"periodic_lift":[0,0],"sense":"Forward"},"id":39,"loop_ref":7,"next":38,"prev":40,"to":12,"twin":19,"wire_ref":null},{"edge":26,"face":7,"from":21,"geometry_use":{"pcurve":40,"periodic_lift":[0,0],"sense":"Forward"},"id":40,"loop_ref":7,"next":39,"prev":41,"to":19,"twin":32,"wire_ref":null},{"edge":25,"face":7,"from":1,"geometry_use":{"pcurve":41,"periodic_lift":[0,0],"sense":"Forward"},"id":41,"loop_ref":7,"next":40,"prev":36,"to":21,"twin":31,"wire_ref":null},{"edge":7,"face":8,"from":7,"geometry_use":{"pcurve":42,"periodic_lift":[0,0],"sense":"Reverse"},"id":42,"loop_ref":8,"next":47,"prev":43,"to":4,"twin":7,"wire_ref":null},{"edge":28,"face":8,"from":10,"geometry_use":{"pcurve":43,"periodic_lift":[0,0],"sense":"Reverse"},"id":43,"loop_ref":8,"next":42,"prev":44,"to":7,"twin":51,"wire_ref":null},{"edge":29,"face":8,"from":17,"geometry_use":{"pcurve":44,"periodic_lift":[0,0],"sense":"Reverse"},"id":44,"loop_ref":8,"next":43,"prev":45,"to":10,"twin":71,"wire_ref":null},{"edge":16,"face":8,"from":16,"geometry_use":{"pcurve":45,"periodic_lift":[0,0],"sense":"Forward"},"id":45,"loop_ref":8,"next":44,"prev":46,"to":17,"twin":16,"wire_ref":null},{"edge":30,"face":8,"from":22,"geometry_use":{"pcurve":46,"periodic_lift":[0,0],"sense":"Reverse"},"id":46,"loop_ref":8,"next":45,"prev":47,"to":16,"twin":60,"wire_ref":null},{"edge":31,"face":8,"from":4,"geometry_use":{"pcurve":47,"periodic_lift":[0,0],"sense":"Reverse"},"id":47,"loop_ref":8,"next":46,"prev":42,"to":22,"twin":59,"wire_ref":null},{"edge":6,"face":9,"from":6,"geometry_use":{"pcurve":48,"periodic_lift":[0,0],"sense":"Forward"},"id":48,"loop_ref":9,"next":51,"prev":49,"to":7,"twin":6,"wire_ref":null},{"edge":32,"face":9,"from":11,"geometry_use":{"pcurve":49,"periodic_lift":[0,0],"sense":"Reverse"},"id":49,"loop_ref":9,"next":48,"prev":50,"to":6,"twin":57,"wire_ref":null},{"edge":10,"face":9,"from":10,"geometry_use":{"pcurve":50,"periodic_lift":[0,0],"sense":"Forward"},"id":50,"loop_ref":9,"next":49,"prev":51,"to":11,"twin":10,"wire_ref":null},{"edge":28,"face":9,"from":7,"geometry_use":{"pcurve":51,"periodic_lift":[0,0],"sense":"Forward"},"id":51,"loop_ref":9,"next":50,"prev":48,"to":10,"twin":43,"wire_ref":null},{"edge":5,"face":10,"from":5,"geometry_use":{"pcurve":52,"periodic_lift":[0,0],"sense":"Forward"},"id":52,"loop_ref":10,"next":57,"prev":53,"to":6,"twin":5,"wire_ref":null},{"edge":33,"face":10,"from":23,"geometry_use":{"pcurve":53,"periodic_lift":[0,0],"sense":"Reverse"},"id":53,"loop_ref":10,"next":52,"prev":54,"to":5,"twin":63,"wire_ref":null},{"edge":34,"face":10,"from":15,"geometry_use":{"pcurve":54,"periodic_lift":[0,0],"sense":"Reverse"},"id":54,"loop_ref":10,"next":53,"prev":55,"to":23,"twin":62,"wire_ref":null},{"edge":14,"face":10,"from":14,"geometry_use":{"pcurve":55,"periodic_lift":[0,0],"sense":"Reverse"},"id":55,"loop_ref":10,"next":54,"prev":56,"to":15,"twin":14,"wire_ref":null},{"edge":35,"face":10,"from":11,"geometry_use":{"pcurve":56,"periodic_lift":[0,0],"sense":"Reverse"},"id":56,"loop_ref":10,"next":55,"prev":57,"to":14,"twin":65,"wire_ref":null},{"edge":32,"face":10,"from":6,"geometry_use":{"pcurve":57,"periodic_lift":[0,0],"sense":"Forward"},"id":57,"loop_ref":10,"next":56,"prev":52,"to":11,"twin":49,"wire_ref":null},{"edge":4,"face":11,"from":4,"geometry_use":{"pcurve":58,"periodic_lift":[0,0],"sense":"Forward"},"id":58,"loop_ref":11,"next":63,"prev":59,"to":5,"twin":4,"wire_ref":null},{"edge":31,"face":11,"from":22,"geometry_use":{"pcurve":59,"periodic_lift":[0,0],"sense":"Forward"},"id":59,"loop_ref":11,"next":58,"prev":60,"to":4,"twin":47,"wire_ref":null},{"edge":30,"face":11,"from":16,"geometry_use":{"pcurve":60,"periodic_lift":[0,0],"sense":"Forward"},"id":60,"loop_ref":11,"next":59,"prev":61,"to":22,"twin":46,"wire_ref":null},{"edge":15,"face":11,"from":15,"geometry_use":{"pcurve":61,"periodic_lift":[0,0],"sense":"Forward"},"id":61,"loop_ref":11,"next":60,"prev":62,"to":16,"twin":15,"wire_ref":null},{"edge":34,"face":11,"from":23,"geometry_use":{"pcurve":62,"periodic_lift":[0,0],"sense":"Forward"},"id":62,"loop_ref":11,"next":61,"prev":63,"to":15,"twin":54,"wire_ref":null},{"edge":33,"face":11,"from":5,"geometry_use":{"pcurve":63,"periodic_lift":[0,0],"sense":"Forward"},"id":63,"loop_ref":11,"next":62,"prev":58,"to":23,"twin":53,"wire_ref":null},{"edge":11,"face":12,"from":11,"geometry_use":{"pcurve":64,"periodic_lift":[0,0],"sense":"Forward"},"id":64,"loop_ref":12,"next":67,"prev":65,"to":8,"twin":11,"wire_ref":null},{"edge":35,"face":12,"from":14,"geometry_use":{"pcurve":65,"periodic_lift":[0,0],"sense":"Forward"},"id":65,"loop_ref":12,"next":64,"prev":66,"to":11,"twin":56,"wire_ref":null},{"edge":13,"face":12,"from":13,"geometry_use":{"pcurve":66,"periodic_lift":[0,0],"sense":"Reverse"},"id":66,"loop_ref":12,"next":65,"prev":67,"to":14,"twin":13,"wire_ref":null},{"edge":21,"face":12,"from":8,"geometry_use":{"pcurve":67,"periodic_lift":[0,0],"sense":"Forward"},"id":67,"loop_ref":12,"next":66,"prev":64,"to":13,"twin":22,"wire_ref":null},{"edge":9,"face":13,"from":9,"geometry_use":{"pcurve":68,"periodic_lift":[0,0],"sense":"Reverse"},"id":68,"loop_ref":13,"next":71,"prev":69,"to":10,"twin":9,"wire_ref":null},{"edge":27,"face":13,"from":18,"geometry_use":{"pcurve":69,"periodic_lift":[0,0],"sense":"Forward"},"id":69,"loop_ref":13,"next":68,"prev":70,"to":9,"twin":34,"wire_ref":null},{"edge":17,"face":13,"from":17,"geometry_use":{"pcurve":70,"periodic_lift":[0,0],"sense":"Forward"},"id":70,"loop_ref":13,"next":69,"prev":71,"to":18,"twin":17,"wire_ref":null},{"edge":29,"face":13,"from":10,"geometry_use":{"pcurve":71,"periodic_lift":[0,0],"sense":"Forward"},"id":71,"loop_ref":13,"next":70,"prev":68,"to":17,"twin":44,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":26},{"face_ref":6,"id":6,"is_hole":false,"start_halfedge":30},{"face_ref":7,"id":7,"is_hole":false,"start_halfedge":36},{"face_ref":8,"id":8,"is_hole":false,"start_halfedge":42},{"face_ref":9,"id":9,"is_hole":false,"start_halfedge":48},{"face_ref":10,"id":10,"is_hole":false,"start_halfedge":52},{"face_ref":11,"id":11,"is_hole":false,"start_halfedge":58},{"face_ref":12,"id":12,"is_hole":false,"start_halfedge":64},{"face_ref":13,"id":13,"is_hole":false,"start_halfedge":68}],"shells":[{"faces":[0,7,6,5,4,3,13,2,12,10,11,8,9,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":3,"position":[-2.1,2.571758278209442e-16,0.0],"tolerance":1e-9},{"id":1,"outgoing_halfedge":0,"position":[-1.9,2.326828918379971e-16,0.0],"tolerance":1e-9},{"id":2,"outgoing_halfedge":1,"position":[-1.5547265110223796,1.0921654984132114,0.0],"tolerance":1e-9},{"id":3,"outgoing_halfedge":2,"position":[-1.7183819332352617,1.207130287719865,0.0],"tolerance":1e-9},{"id":4,"outgoing_halfedge":7,"position":[1.1634144591899857e-16,-1.9000000000000001,0.0],"tolerance":1e-9},{"id":5,"outgoing_halfedge":4,"position":[1.285879139104721e-16,-2.1,0.0],"tolerance":1e-9},{"id":6,"outgoing_halfedge":5,"position":[1.185749194129574,-1.7332047913103248,0.0],"tolerance":1e-9},{"id":7,"outgoing_halfedge":6,"position":[1.0728206994505671,-1.5681376683283887,0.0],"tolerance":1e-9},{"id":8,"outgoing_halfedge":11,"position":[-1.7183819332352617,1.207130287719865,2.0],"tolerance":1e-9},{"id":9,"outgoing_halfedge":8,"position":[-1.5547265110223798,1.0921654984132112,2.0],"tolerance":1e-9},{"id":10,"outgoing_halfedge":9,"position":[1.0728206994505667,-1.568137668328389,2.0],"tolerance":1e-9},{"id":11,"outgoing_halfedge":10,"position":[1.185749194129574,-1.7332047913103243,2.0],"tolerance":1e-9},{"id":12,"outgoing_halfedge":19,"position":[-2.1,2.571758278209442e-16,3.0],"tolerance":1e-9},{"id":13,"outgoing_halfedge":12,"position":[-1.718381933235262,1.2071302877198653,3.0],"tolerance":1e-9},{"id":14,"outgoing_halfedge":13,"position":[1.185749194129573,-1.7332047913103255,3.0],"tolerance":1e-9},{"id":15,"outgoing_halfedge":14,"position":[1.285879139104721e-16,-2.1,3.0],"tolerance":1e-9},{"id":16,"outgoing_halfedge":15,"position":[1.1634144591899857e-16,-1.9000000000000001,3.0],"tolerance":1e-9},{"id":17,"outgoing_halfedge":16,"position":[1.0728206994505667,-1.568137668328389,3.0],"tolerance":1e-9},{"id":18,"outgoing_halfedge":17,"position":[-1.5547265110223796,1.0921654984132114,3.0],"tolerance":1e-9},{"id":19,"outgoing_halfedge":18,"position":[-1.9,2.326828918379971e-16,3.0],"tolerance":1e-9},{"id":20,"outgoing_halfedge":24,"position":[-2.1,2.571758278209442e-16,2.0],"tolerance":1e-9},{"id":21,"outgoing_halfedge":31,"position":[-1.9,2.326828918379971e-16,2.0],"tolerance":1e-9},{"id":22,"outgoing_halfedge":46,"position":[1.1634144591899854e-16,-1.9,2.0],"tolerance":1e-9},{"id":23,"outgoing_halfedge":53,"position":[1.285879139104721e-16,-2.1,2.0],"tolerance":1e-9}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/boolean-matrix/annular-first.json b/main/opengeometry/tests/fixtures/cases/boolean-matrix/annular-first.json index 7e17a078..ab7ebe57 100644 --- a/main/opengeometry/tests/fixtures/cases/boolean-matrix/annular-first.json +++ b/main/opengeometry/tests/fixtures/cases/boolean-matrix/annular-first.json @@ -1 +1 @@ -{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.3},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.3},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.3,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.3,0.0],"axis_b":[0.0,-0.3],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.3,0.0],"axis_b":[0.0,0.3],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.3},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-annular-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.3,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.3,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,3.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[-0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[1.0,-0.0,0.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,3.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,0.5],"x":[0.0,1.0,0.0],"y":[0.0,0.0,-1.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[-0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,0.5],"x":[1.0,0.0,0.0],"y":[-0.0,1.0,0.0],"z":[-0.0,-0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,-0.5],"x":[0.0,1.0,0.0],"y":[1.0,-0.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"}]},"id":"matrix-wall-cutter","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":0.8000000100000001,"lo":-1e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":1.00000001,"lo":-1e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":3.00000001,"lo":-1e-8},{"hi":1.00000001,"lo":-1e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":3.00000001,"lo":-1e-8},{"hi":0.8000000100000001,"lo":-1e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[-0.4,0.0,0.5],"tolerance":1e-8},{"id":1,"outgoing_halfedge":3,"position":[0.4,0.0,0.5],"tolerance":1e-8},{"id":2,"outgoing_halfedge":1,"position":[-0.4,0.0,-0.5],"tolerance":1e-8},{"id":3,"outgoing_halfedge":2,"position":[0.4,0.0,-0.5],"tolerance":1e-8},{"id":4,"outgoing_halfedge":4,"position":[-0.4,3.0,0.5],"tolerance":1e-8},{"id":5,"outgoing_halfedge":5,"position":[0.4,3.0,0.5],"tolerance":1e-8},{"id":6,"outgoing_halfedge":7,"position":[-0.4,3.0,-0.5],"tolerance":1e-8},{"id":7,"outgoing_halfedge":6,"position":[0.4,3.0,-0.5],"tolerance":1e-8}],"wires":[]}},"handlers":["subtract_vertical_arc_extrusion"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,3.0,0.5]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[0.4,3.0,-0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-0.4,3.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,3.0,-1.2246467991473532e-16]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]}],"intersections":[],"pcurves":[{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-0.4,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-0.4,-0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4,-0.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4,0.5]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-0.4,-0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4,-0.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-0.4,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[-0.4,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,-0.5],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,-0.5],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"matrix-annular-first","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":7,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-8,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":10,"id":10,"tolerance":1e-8,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":21,"id":14,"tolerance":1e-8,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":23,"id":15,"tolerance":1e-8,"twin_halfedge":33},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":25,"id":16,"tolerance":1e-8,"twin_halfedge":31},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":29,"id":17,"tolerance":1e-8,"twin_halfedge":35}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":2,"key":"vertical-cylinder-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592663589793,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"vertical-cylinder-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.283185317179586,"lo":3.141592643589793},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":3,"key":"right"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":6,"key":"vertical-plane-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":5,"key":"back"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":7,"key":"vertical-plane-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":1,"to":1,"twin":16,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":0,"prev":0,"to":0,"twin":12,"wire_ref":null},{"edge":2,"face":0,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":1,"next":3,"prev":5,"to":3,"twin":32,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":1,"next":4,"prev":2,"to":4,"twin":28,"wire_ref":null},{"edge":4,"face":0,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":3,"to":5,"twin":24,"wire_ref":null},{"edge":5,"face":0,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":2,"prev":4,"to":2,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":2,"next":7,"prev":7,"to":7,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":2,"next":6,"prev":6,"to":6,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":8,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":3,"next":9,"prev":11,"to":9,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":9,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":10,"prev":8,"to":10,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":10,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":3,"next":11,"prev":9,"to":11,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":11,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":3,"next":8,"prev":10,"to":8,"twin":34,"wire_ref":null},{"edge":1,"face":2,"from":0,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":4,"next":13,"prev":15,"to":1,"twin":1,"wire_ref":null},{"edge":12,"face":2,"from":1,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":4,"next":14,"prev":12,"to":7,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":4,"next":15,"prev":13,"to":6,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":6,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":4,"next":12,"prev":14,"to":0,"twin":17,"wire_ref":null},{"edge":0,"face":3,"from":1,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":5,"next":17,"prev":19,"to":0,"twin":0,"wire_ref":null},{"edge":13,"face":3,"from":0,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":5,"next":18,"prev":16,"to":6,"twin":15,"wire_ref":null},{"edge":7,"face":3,"from":6,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":5,"next":19,"prev":17,"to":7,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":7,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":5,"next":16,"prev":18,"to":1,"twin":13,"wire_ref":null},{"edge":5,"face":4,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":6,"next":21,"prev":23,"to":5,"twin":5,"wire_ref":null},{"edge":14,"face":4,"from":5,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":6,"next":22,"prev":20,"to":9,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":9,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":6,"next":23,"prev":21,"to":8,"twin":8,"wire_ref":null},{"edge":15,"face":4,"from":8,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":6,"next":20,"prev":22,"to":2,"twin":33,"wire_ref":null},{"edge":4,"face":5,"from":5,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":7,"next":25,"prev":27,"to":4,"twin":4,"wire_ref":null},{"edge":16,"face":5,"from":4,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":7,"next":26,"prev":24,"to":10,"twin":31,"wire_ref":null},{"edge":9,"face":5,"from":10,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":7,"next":27,"prev":25,"to":9,"twin":9,"wire_ref":null},{"edge":14,"face":5,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":7,"next":24,"prev":26,"to":5,"twin":21,"wire_ref":null},{"edge":3,"face":6,"from":4,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Reverse"},"id":28,"loop_ref":8,"next":29,"prev":31,"to":3,"twin":3,"wire_ref":null},{"edge":17,"face":6,"from":3,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Forward"},"id":29,"loop_ref":8,"next":30,"prev":28,"to":11,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":11,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Reverse"},"id":30,"loop_ref":8,"next":31,"prev":29,"to":10,"twin":10,"wire_ref":null},{"edge":16,"face":6,"from":10,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Reverse"},"id":31,"loop_ref":8,"next":28,"prev":30,"to":4,"twin":25,"wire_ref":null},{"edge":2,"face":7,"from":3,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Reverse"},"id":32,"loop_ref":9,"next":33,"prev":35,"to":2,"twin":2,"wire_ref":null},{"edge":15,"face":7,"from":2,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Reverse"},"id":33,"loop_ref":9,"next":34,"prev":32,"to":8,"twin":23,"wire_ref":null},{"edge":11,"face":7,"from":8,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Reverse"},"id":34,"loop_ref":9,"next":35,"prev":33,"to":11,"twin":11,"wire_ref":null},{"edge":17,"face":7,"from":11,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Reverse"},"id":35,"loop_ref":9,"next":32,"prev":34,"to":3,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":2},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":8},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,3,2,7,6,5,4,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[-1.0,0.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":1,"outgoing_halfedge":1,"position":[1.0,0.0,2.4492935982947064e-16],"tolerance":1e-8},{"id":2,"outgoing_halfedge":2,"position":[-0.4,0.0,0.5],"tolerance":1e-8},{"id":3,"outgoing_halfedge":3,"position":[-0.4,0.0,-0.5],"tolerance":1e-8},{"id":4,"outgoing_halfedge":4,"position":[0.4,0.0,-0.5],"tolerance":1e-8},{"id":5,"outgoing_halfedge":5,"position":[0.4,0.0,0.5],"tolerance":1e-8},{"id":6,"outgoing_halfedge":6,"position":[-1.0,3.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":7,"outgoing_halfedge":7,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":8,"outgoing_halfedge":8,"position":[-0.4,3.0,0.5],"tolerance":1e-8},{"id":9,"outgoing_halfedge":9,"position":[0.4,3.0,0.5],"tolerance":1e-8},{"id":10,"outgoing_halfedge":10,"position":[0.4,3.0,-0.5],"tolerance":1e-8},{"id":11,"outgoing_halfedge":11,"position":[-0.4,3.0,-0.5],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file +{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.3},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.3},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.3,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.3,0.0],"axis_b":[0.0,-0.3],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.3,0.0],"axis_b":[0.0,0.3],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.3},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-annular-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.3,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.3,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,3.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,-0.5]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[3.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.8]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[-0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[1.0,-0.0,0.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,3.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,0.5],"x":[0.0,1.0,0.0],"y":[0.0,0.0,-1.0],"z":[-1.0,-0.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[-0.0,1.0,0.0],"z":[1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,0.5],"x":[1.0,0.0,0.0],"y":[-0.0,1.0,0.0],"z":[-0.0,-0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,-0.5],"x":[0.0,1.0,0.0],"y":[1.0,-0.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"}]},"id":"matrix-wall-cutter","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":3,"id":0,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":8,"id":2,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":2,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":15,"id":4,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":1,"id":5,"tolerance":1e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":10,"id":6,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":7,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":4,"id":8,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":7,"id":9,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":5,"id":10,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":6,"id":11,"tolerance":1e-8,"twin_halfedge":21}],"faces":[{"id":0,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":0,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":0.8000000100000001,"lo":-1e-8}]}},{"id":1,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":1,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":1.00000001,"lo":-1e-8}]}},{"id":2,"key":"left","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":2,"key":"left"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":3.00000001,"lo":-1e-8},{"hi":1.00000001,"lo":-1e-8}]}},{"id":3,"key":"right","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":3,"key":"right"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"front","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":4,"key":"front"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"back","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":5,"key":"back"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":3.00000001,"lo":-1e-8},{"hi":0.8000000100000001,"lo":-1e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":2,"twin":11,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":3,"twin":23,"wire_ref":null},{"edge":3,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":16,"wire_ref":null},{"edge":8,"face":1,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":5,"twin":18,"wire_ref":null},{"edge":10,"face":1,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":7,"twin":14,"wire_ref":null},{"edge":11,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":6,"twin":21,"wire_ref":null},{"edge":9,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":4,"twin":9,"wire_ref":null},{"edge":2,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":4,"twin":19,"wire_ref":null},{"edge":9,"face":2,"from":4,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":6,"twin":7,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":2,"twin":20,"wire_ref":null},{"edge":1,"face":2,"from":2,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":0,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":3,"twin":2,"wire_ref":null},{"edge":7,"face":3,"from":3,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":7,"twin":22,"wire_ref":null},{"edge":10,"face":3,"from":7,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":5,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":17,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":1,"twin":3,"wire_ref":null},{"edge":4,"face":4,"from":1,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":5,"twin":15,"wire_ref":null},{"edge":8,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":4,"twin":4,"wire_ref":null},{"edge":2,"face":4,"from":4,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":0,"twin":8,"wire_ref":null},{"edge":6,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":6,"twin":10,"wire_ref":null},{"edge":11,"face":5,"from":6,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":7,"twin":6,"wire_ref":null},{"edge":7,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":3,"twin":13,"wire_ref":null},{"edge":5,"face":5,"from":3,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":2,"twin":1,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[-0.4,0.0,0.5],"tolerance":1e-8},{"id":1,"outgoing_halfedge":3,"position":[0.4,0.0,0.5],"tolerance":1e-8},{"id":2,"outgoing_halfedge":1,"position":[-0.4,0.0,-0.5],"tolerance":1e-8},{"id":3,"outgoing_halfedge":2,"position":[0.4,0.0,-0.5],"tolerance":1e-8},{"id":4,"outgoing_halfedge":4,"position":[-0.4,3.0,0.5],"tolerance":1e-8},{"id":5,"outgoing_halfedge":5,"position":[0.4,3.0,0.5],"tolerance":1e-8},{"id":6,"outgoing_halfedge":7,"position":[-0.4,3.0,-0.5],"tolerance":1e-8},{"id":7,"outgoing_halfedge":6,"position":[0.4,3.0,-0.5],"tolerance":1e-8}],"wires":[]}},"handlers":["subtract_vertical_arc_extrusion"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[-0.4,0.0,0.5]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.4,3.0,0.5]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[0.4,3.0,-0.5]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-0.4,3.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,3.0,-1.2246467991473532e-16]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.5]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-0.4,3.0,0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,-0.5]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-0.4,0.0,-0.5]}],"intersections":[],"pcurves":[{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-0.4,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-0.4,-0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4,-0.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4,0.5]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-0.4,-0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.4,-0.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.4,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-0.4,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.8,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[1.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[1.0,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[-0.4,0.0,0.5],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,0.5],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.4,0.0,-0.5],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-0.4,0.0,-0.5],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"matrix-annular-first","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-8,"twin_halfedge":32},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":3,"id":3,"tolerance":1e-8,"twin_halfedge":28},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":6,"id":6,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":7,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":8,"id":8,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":9,"id":9,"tolerance":1e-8,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.8,"lo":0.0}},"halfedge":10,"id":10,"tolerance":1e-8,"twin_halfedge":30},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":1.0,"lo":0.0}},"halfedge":11,"id":11,"tolerance":1e-8,"twin_halfedge":34},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":12,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":15,"id":13,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":14,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":21,"id":14,"tolerance":1e-8,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":15,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":23,"id":15,"tolerance":1e-8,"twin_halfedge":33},{"chart_seam":false,"geometry":{"curve":16,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":25,"id":16,"tolerance":1e-8,"twin_halfedge":31},{"chart_seam":false,"geometry":{"curve":17,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":29,"id":17,"tolerance":1e-8,"twin_halfedge":35}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[1],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":2,"key":"vertical-cylinder-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592663589793,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"vertical-cylinder-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-annular-host","entity":"matrix-annular-host","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.283185317179586,"lo":3.141592643589793},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"vertical-plane-4","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":4,"key":"front"}]},"sense":"Reverse","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"vertical-plane-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":3,"key":"right"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":6,"key":"vertical-plane-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":5,"key":"back"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":8,"uv_bounds":[{"hi":0.8000000100000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":7,"key":"vertical-plane-7","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-wall-cutter","entity":"matrix-wall-cutter","face":2,"key":"left"}]},"sense":"Reverse","shell_ref":0,"surface":7,"trim":{"chart":0,"holes":[],"outer":9,"uv_bounds":[{"hi":1.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":1,"prev":1,"to":0,"twin":16,"wire_ref":null},{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":0,"to":1,"twin":12,"wire_ref":null},{"edge":2,"face":0,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":1,"next":5,"prev":3,"to":2,"twin":32,"wire_ref":null},{"edge":3,"face":0,"from":4,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":2,"prev":4,"to":3,"twin":28,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":3,"prev":5,"to":4,"twin":24,"wire_ref":null},{"edge":5,"face":0,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":2,"to":5,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":2,"next":7,"prev":7,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":1,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":2,"next":6,"prev":6,"to":7,"twin":18,"wire_ref":null},{"edge":8,"face":1,"from":9,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":3,"next":11,"prev":9,"to":8,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":10,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":8,"prev":10,"to":9,"twin":26,"wire_ref":null},{"edge":10,"face":1,"from":11,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":3,"next":9,"prev":11,"to":10,"twin":30,"wire_ref":null},{"edge":11,"face":1,"from":8,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":3,"next":10,"prev":8,"to":11,"twin":34,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":4,"next":15,"prev":13,"to":0,"twin":1,"wire_ref":null},{"edge":12,"face":2,"from":7,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":4,"next":12,"prev":14,"to":1,"twin":19,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":4,"next":13,"prev":15,"to":7,"twin":6,"wire_ref":null},{"edge":13,"face":2,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":4,"next":14,"prev":12,"to":6,"twin":17,"wire_ref":null},{"edge":0,"face":3,"from":0,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":5,"next":19,"prev":17,"to":1,"twin":0,"wire_ref":null},{"edge":13,"face":3,"from":6,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":5,"next":16,"prev":18,"to":0,"twin":15,"wire_ref":null},{"edge":7,"face":3,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":5,"next":17,"prev":19,"to":6,"twin":7,"wire_ref":null},{"edge":12,"face":3,"from":1,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":5,"next":18,"prev":16,"to":7,"twin":13,"wire_ref":null},{"edge":5,"face":4,"from":5,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":6,"next":23,"prev":21,"to":2,"twin":5,"wire_ref":null},{"edge":14,"face":4,"from":9,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":6,"next":20,"prev":22,"to":5,"twin":27,"wire_ref":null},{"edge":8,"face":4,"from":8,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":6,"next":21,"prev":23,"to":9,"twin":8,"wire_ref":null},{"edge":15,"face":4,"from":2,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":6,"next":22,"prev":20,"to":8,"twin":33,"wire_ref":null},{"edge":4,"face":5,"from":4,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":7,"next":27,"prev":25,"to":5,"twin":4,"wire_ref":null},{"edge":16,"face":5,"from":10,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":7,"next":24,"prev":26,"to":4,"twin":31,"wire_ref":null},{"edge":9,"face":5,"from":9,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":7,"next":25,"prev":27,"to":10,"twin":9,"wire_ref":null},{"edge":14,"face":5,"from":5,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":7,"next":26,"prev":24,"to":9,"twin":21,"wire_ref":null},{"edge":3,"face":6,"from":3,"geometry_use":{"pcurve":28,"periodic_lift":[0,0],"sense":"Forward"},"id":28,"loop_ref":8,"next":31,"prev":29,"to":4,"twin":3,"wire_ref":null},{"edge":17,"face":6,"from":11,"geometry_use":{"pcurve":29,"periodic_lift":[0,0],"sense":"Reverse"},"id":29,"loop_ref":8,"next":28,"prev":30,"to":3,"twin":35,"wire_ref":null},{"edge":10,"face":6,"from":10,"geometry_use":{"pcurve":30,"periodic_lift":[0,0],"sense":"Forward"},"id":30,"loop_ref":8,"next":29,"prev":31,"to":11,"twin":10,"wire_ref":null},{"edge":16,"face":6,"from":4,"geometry_use":{"pcurve":31,"periodic_lift":[0,0],"sense":"Forward"},"id":31,"loop_ref":8,"next":30,"prev":28,"to":10,"twin":25,"wire_ref":null},{"edge":2,"face":7,"from":2,"geometry_use":{"pcurve":32,"periodic_lift":[0,0],"sense":"Forward"},"id":32,"loop_ref":9,"next":35,"prev":33,"to":3,"twin":2,"wire_ref":null},{"edge":15,"face":7,"from":8,"geometry_use":{"pcurve":33,"periodic_lift":[0,0],"sense":"Forward"},"id":33,"loop_ref":9,"next":32,"prev":34,"to":2,"twin":23,"wire_ref":null},{"edge":11,"face":7,"from":11,"geometry_use":{"pcurve":34,"periodic_lift":[0,0],"sense":"Forward"},"id":34,"loop_ref":9,"next":33,"prev":35,"to":8,"twin":11,"wire_ref":null},{"edge":17,"face":7,"from":3,"geometry_use":{"pcurve":35,"periodic_lift":[0,0],"sense":"Forward"},"id":35,"loop_ref":9,"next":34,"prev":32,"to":11,"twin":29,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":0,"id":1,"is_hole":true,"start_halfedge":2},{"face_ref":1,"id":2,"is_hole":false,"start_halfedge":6},{"face_ref":1,"id":3,"is_hole":true,"start_halfedge":8},{"face_ref":2,"id":4,"is_hole":false,"start_halfedge":12},{"face_ref":3,"id":5,"is_hole":false,"start_halfedge":16},{"face_ref":4,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":5,"id":7,"is_hole":false,"start_halfedge":24},{"face_ref":6,"id":8,"is_hole":false,"start_halfedge":28},{"face_ref":7,"id":9,"is_hole":false,"start_halfedge":32}],"shells":[{"faces":[0,3,2,7,6,5,4,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":1,"position":[-1.0,0.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":1,"outgoing_halfedge":0,"position":[1.0,0.0,2.4492935982947064e-16],"tolerance":1e-8},{"id":2,"outgoing_halfedge":5,"position":[-0.4,0.0,0.5],"tolerance":1e-8},{"id":3,"outgoing_halfedge":2,"position":[-0.4,0.0,-0.5],"tolerance":1e-8},{"id":4,"outgoing_halfedge":3,"position":[0.4,0.0,-0.5],"tolerance":1e-8},{"id":5,"outgoing_halfedge":4,"position":[0.4,0.0,0.5],"tolerance":1e-8},{"id":6,"outgoing_halfedge":7,"position":[-1.0,3.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":7,"outgoing_halfedge":6,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":8,"outgoing_halfedge":11,"position":[-0.4,3.0,0.5],"tolerance":1e-8},{"id":9,"outgoing_halfedge":8,"position":[0.4,3.0,0.5],"tolerance":1e-8},{"id":10,"outgoing_halfedge":9,"position":[0.4,3.0,-0.5],"tolerance":1e-8},{"id":11,"outgoing_halfedge":10,"position":[-0.4,3.0,-0.5],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-coaxial.json b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-coaxial.json index b2f1c0e6..0f55d53e 100644 --- a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-coaxial.json +++ b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-coaxial.json @@ -1 +1 @@ -{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-inner","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.4,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["boolean_cylinders"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-coaxial","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"matrix-cylinder-coaxial:annular:outer","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"matrix-cylinder-coaxial:annular:inner","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"matrix-cylinder-coaxial:annular:lower_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"matrix-cylinder-coaxial:annular:upper_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,3.0,0.0],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file +{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-inner","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.4,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["boolean_cylinders"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-coaxial","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"matrix-cylinder-coaxial:annular:outer","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"matrix-cylinder-coaxial:annular:inner","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-inner","entity":"matrix-cylinder-inner","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"matrix-cylinder-coaxial:annular:lower_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"matrix-cylinder-coaxial:annular:upper_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,3.0,0.0],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-offset.json b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-offset.json index 52910c83..aa4c69bf 100644 --- a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-offset.json +++ b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-offset.json @@ -1 +1 @@ -{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.75,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-offset","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.75,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.75,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["boolean_cylinders"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.75,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.35,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.35,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-offset","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.75,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.75,3.0,0.0],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file +{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.75,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-offset","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.75,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.75,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["boolean_cylinders"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.35,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.75,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.35,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.35,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.35,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-offset","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-offset","entity":"matrix-cylinder-offset","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.75,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.75,3.0,0.0],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-sliced.json b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-sliced.json index 612702b2..9dcc2ffd 100644 --- a/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-sliced.json +++ b/main/opengeometry/tests/fixtures/cases/boolean-matrix/cylinder-sliced.json @@ -1 +1 @@ -{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.5,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-shifted","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.4,0.5,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.4,3.5,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["prismatic_curved_boolean"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.5,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,3.0,-1.2246467991473532e-16]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,0.5,-1.2246467991473532e-16]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.5,9.797174393178826e-17]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-0.4,3.0,-4.898587196589413e-17]}],"intersections":[],"pcurves":[{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"matrix-cylinder-sliced","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.1415926535897936}},"halfedge":3,"id":3,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.1415926535897936}},"halfedge":6,"id":6,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-8,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":9,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":10,"id":9,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":12,"id":10,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":13,"id":11,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":21,"id":12,"tolerance":1e-8,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":23,"id":13,"tolerance":1e-8,"twin_halfedge":25}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.40000001,"lo":-0.40000001},{"hi":0.40000001,"lo":-0.40000001}]}},{"id":2,"key":"upper-cap-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":3,"key":"vertical-cylinder-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592663589793,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"vertical-cylinder-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.283185317179586,"lo":3.141592643589793},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"vertical-cylinder-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":6.2831853321795865,"lo":3.1415926285897933},{"hi":3.00000001,"lo":0.49999999}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":3.141592678589793,"lo":-2.5e-8},{"hi":3.00000001,"lo":0.49999999}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":1,"to":1,"twin":14,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":0,"prev":0,"to":0,"twin":8,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":1,"next":3,"prev":3,"to":3,"twin":24,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":1,"next":2,"prev":2,"to":2,"twin":20,"wire_ref":null},{"edge":4,"face":2,"from":4,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":2,"next":5,"prev":5,"to":5,"twin":11,"wire_ref":null},{"edge":5,"face":2,"from":5,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":2,"next":4,"prev":4,"to":4,"twin":17,"wire_ref":null},{"edge":6,"face":2,"from":6,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":3,"next":7,"prev":7,"to":7,"twin":22,"wire_ref":null},{"edge":7,"face":2,"from":7,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":3,"next":6,"prev":6,"to":6,"twin":26,"wire_ref":null},{"edge":1,"face":3,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":4,"next":9,"prev":13,"to":1,"twin":1,"wire_ref":null},{"edge":8,"face":3,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":4,"next":10,"prev":8,"to":8,"twin":19,"wire_ref":null},{"edge":9,"face":3,"from":8,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":11,"prev":9,"to":5,"twin":18,"wire_ref":null},{"edge":4,"face":3,"from":5,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":4,"next":12,"prev":10,"to":4,"twin":4,"wire_ref":null},{"edge":10,"face":3,"from":4,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":4,"next":13,"prev":11,"to":9,"twin":16,"wire_ref":null},{"edge":11,"face":3,"from":9,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":4,"next":8,"prev":12,"to":0,"twin":15,"wire_ref":null},{"edge":0,"face":4,"from":1,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":5,"next":15,"prev":19,"to":0,"twin":0,"wire_ref":null},{"edge":11,"face":4,"from":0,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":5,"next":16,"prev":14,"to":9,"twin":13,"wire_ref":null},{"edge":10,"face":4,"from":9,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Reverse"},"id":16,"loop_ref":5,"next":17,"prev":15,"to":4,"twin":12,"wire_ref":null},{"edge":5,"face":4,"from":4,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":5,"next":18,"prev":16,"to":5,"twin":5,"wire_ref":null},{"edge":9,"face":4,"from":5,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":5,"next":19,"prev":17,"to":8,"twin":10,"wire_ref":null},{"edge":8,"face":4,"from":8,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":5,"next":14,"prev":18,"to":1,"twin":9,"wire_ref":null},{"edge":3,"face":5,"from":2,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":6,"next":21,"prev":23,"to":3,"twin":3,"wire_ref":null},{"edge":12,"face":5,"from":3,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":6,"next":22,"prev":20,"to":7,"twin":27,"wire_ref":null},{"edge":6,"face":5,"from":7,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":6,"next":23,"prev":21,"to":6,"twin":6,"wire_ref":null},{"edge":13,"face":5,"from":6,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Forward"},"id":23,"loop_ref":6,"next":20,"prev":22,"to":2,"twin":25,"wire_ref":null},{"edge":2,"face":6,"from":3,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":7,"next":25,"prev":27,"to":2,"twin":2,"wire_ref":null},{"edge":13,"face":6,"from":2,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":7,"next":26,"prev":24,"to":6,"twin":23,"wire_ref":null},{"edge":7,"face":6,"from":6,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":7,"next":27,"prev":25,"to":7,"twin":7,"wire_ref":null},{"edge":12,"face":6,"from":7,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":7,"next":24,"prev":26,"to":3,"twin":21,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":2},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":6},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":8},{"face_ref":4,"id":5,"is_hole":false,"start_halfedge":14},{"face_ref":5,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":6,"id":7,"is_hole":false,"start_halfedge":24}],"shells":[{"faces":[0,4,3,2,5,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[-1.0,0.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":1,"outgoing_halfedge":1,"position":[1.0,0.0,2.4492935982947064e-16],"tolerance":1e-8},{"id":2,"outgoing_halfedge":2,"position":[-0.4,0.5,-4.898587196589413e-17],"tolerance":1e-8},{"id":3,"outgoing_halfedge":3,"position":[0.4,0.5,0.0],"tolerance":1e-8},{"id":4,"outgoing_halfedge":4,"position":[-1.0,3.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":5,"outgoing_halfedge":5,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":6,"outgoing_halfedge":6,"position":[-0.4,3.0,1.2864981197413094e-16],"tolerance":1e-8},{"id":7,"outgoing_halfedge":7,"position":[0.4,3.0,9.797174393178826e-17],"tolerance":1e-8},{"id":8,"outgoing_halfedge":10,"position":[1.0,0.5,0.0],"tolerance":1e-8},{"id":9,"outgoing_halfedge":13,"position":[-1.0,0.5,-1.2246467991473532e-16],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file +{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-host","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,3.0,0.0],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.5,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"matrix-cylinder-shifted","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":3.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.4,"lo":-0.4},{"hi":0.4,"lo":-0.4}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.4,0.5,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.4,3.5,0.0],"tolerance":1e-8}],"wires":[]}},"handlers":["prismatic_curved_boolean"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.5,0.0]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,3.0,-1.2246467991473532e-16]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-1.0,0.5,-1.2246467991473532e-16]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.5,9.797174393178826e-17]},{"direction":[0.0,-1.0,0.0],"kind":"Line","origin":[-0.4,3.0,-4.898587196589413e-17]}],"intersections":[],"pcurves":[{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.5]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[3.141592653589793,3.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.5]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.5,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4}]},"id":"matrix-cylinder-sliced","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":1,"id":1,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":2,"id":2,"tolerance":1e-8,"twin_halfedge":24},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.1415926535897936}},"halfedge":3,"id":3,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":4,"id":4,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.141592653589793}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":17},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":6.283185307179586,"lo":3.1415926535897936}},"halfedge":6,"id":6,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":3.141592653589793,"lo":0.0}},"halfedge":7,"id":7,"tolerance":1e-8,"twin_halfedge":26},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":9,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":10,"id":9,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":12,"id":10,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":13,"id":11,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":21,"id":12,"tolerance":1e-8,"twin_halfedge":27},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":2.5,"lo":0.0}},"halfedge":23,"id":13,"tolerance":1e-8,"twin_halfedge":25}],"faces":[{"id":0,"key":"lower-cap-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":1,"key":"upper-cap-1","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.40000001,"lo":-0.40000001},{"hi":0.40000001,"lo":-0.40000001}]}},{"id":2,"key":"upper-cap-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.00000001,"lo":-1.00000001},{"hi":1.00000001,"lo":-1.00000001}]}},{"id":3,"key":"vertical-cylinder-3","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":3.141592663589793,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"vertical-cylinder-4","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-cylinder-host","entity":"matrix-cylinder-host","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":6.283185317179586,"lo":3.141592643589793},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"vertical-cylinder-5","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":6,"uv_bounds":[{"hi":6.2831853321795865,"lo":3.1415926285897933},{"hi":3.00000001,"lo":0.49999999}]}},{"id":6,"key":"vertical-cylinder-6","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-cylinder-shifted","entity":"matrix-cylinder-shifted","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[],"outer":7,"uv_bounds":[{"hi":3.141592678589793,"lo":-2.5e-8},{"hi":3.00000001,"lo":0.49999999}]}}],"halfedges":[{"edge":0,"face":0,"from":1,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Reverse"},"id":0,"loop_ref":0,"next":1,"prev":1,"to":0,"twin":14,"wire_ref":null},{"edge":1,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Reverse"},"id":1,"loop_ref":0,"next":0,"prev":0,"to":1,"twin":8,"wire_ref":null},{"edge":2,"face":1,"from":3,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":1,"next":3,"prev":3,"to":2,"twin":24,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":1,"next":2,"prev":2,"to":3,"twin":20,"wire_ref":null},{"edge":4,"face":2,"from":5,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":2,"next":5,"prev":5,"to":4,"twin":11,"wire_ref":null},{"edge":5,"face":2,"from":4,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":4,"prev":4,"to":5,"twin":17,"wire_ref":null},{"edge":6,"face":2,"from":7,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":3,"next":7,"prev":7,"to":6,"twin":22,"wire_ref":null},{"edge":7,"face":2,"from":6,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":3,"next":6,"prev":6,"to":7,"twin":26,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":4,"next":13,"prev":9,"to":0,"twin":1,"wire_ref":null},{"edge":8,"face":3,"from":8,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":4,"next":8,"prev":10,"to":1,"twin":19,"wire_ref":null},{"edge":9,"face":3,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":4,"next":9,"prev":11,"to":8,"twin":18,"wire_ref":null},{"edge":4,"face":3,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":4,"next":10,"prev":12,"to":5,"twin":4,"wire_ref":null},{"edge":10,"face":3,"from":9,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Reverse"},"id":12,"loop_ref":4,"next":11,"prev":13,"to":4,"twin":16,"wire_ref":null},{"edge":11,"face":3,"from":0,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Reverse"},"id":13,"loop_ref":4,"next":12,"prev":8,"to":9,"twin":15,"wire_ref":null},{"edge":0,"face":4,"from":0,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Forward"},"id":14,"loop_ref":5,"next":19,"prev":15,"to":1,"twin":0,"wire_ref":null},{"edge":11,"face":4,"from":9,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Forward"},"id":15,"loop_ref":5,"next":14,"prev":16,"to":0,"twin":13,"wire_ref":null},{"edge":10,"face":4,"from":4,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":5,"next":15,"prev":17,"to":9,"twin":12,"wire_ref":null},{"edge":5,"face":4,"from":5,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Reverse"},"id":17,"loop_ref":5,"next":16,"prev":18,"to":4,"twin":5,"wire_ref":null},{"edge":9,"face":4,"from":8,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Forward"},"id":18,"loop_ref":5,"next":17,"prev":19,"to":5,"twin":10,"wire_ref":null},{"edge":8,"face":4,"from":1,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Forward"},"id":19,"loop_ref":5,"next":18,"prev":14,"to":8,"twin":9,"wire_ref":null},{"edge":3,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Reverse"},"id":20,"loop_ref":6,"next":23,"prev":21,"to":2,"twin":3,"wire_ref":null},{"edge":12,"face":5,"from":7,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Reverse"},"id":21,"loop_ref":6,"next":20,"prev":22,"to":3,"twin":27,"wire_ref":null},{"edge":6,"face":5,"from":6,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Forward"},"id":22,"loop_ref":6,"next":21,"prev":23,"to":7,"twin":6,"wire_ref":null},{"edge":13,"face":5,"from":2,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":6,"next":22,"prev":20,"to":6,"twin":25,"wire_ref":null},{"edge":2,"face":6,"from":2,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":7,"next":27,"prev":25,"to":3,"twin":2,"wire_ref":null},{"edge":13,"face":6,"from":6,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":7,"next":24,"prev":26,"to":2,"twin":23,"wire_ref":null},{"edge":7,"face":6,"from":7,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":7,"next":25,"prev":27,"to":6,"twin":7,"wire_ref":null},{"edge":12,"face":6,"from":3,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":7,"next":26,"prev":24,"to":7,"twin":21,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":2},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":6},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":8},{"face_ref":4,"id":5,"is_hole":false,"start_halfedge":14},{"face_ref":5,"id":6,"is_hole":false,"start_halfedge":20},{"face_ref":6,"id":7,"is_hole":false,"start_halfedge":24}],"shells":[{"faces":[0,4,3,2,5,6,1],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":1,"position":[-1.0,0.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":1,"outgoing_halfedge":0,"position":[1.0,0.0,2.4492935982947064e-16],"tolerance":1e-8},{"id":2,"outgoing_halfedge":3,"position":[-0.4,0.5,-4.898587196589413e-17],"tolerance":1e-8},{"id":3,"outgoing_halfedge":2,"position":[0.4,0.5,0.0],"tolerance":1e-8},{"id":4,"outgoing_halfedge":5,"position":[-1.0,3.0,-1.2246467991473532e-16],"tolerance":1e-8},{"id":5,"outgoing_halfedge":4,"position":[1.0,3.0,0.0],"tolerance":1e-8},{"id":6,"outgoing_halfedge":7,"position":[-0.4,3.0,1.2864981197413094e-16],"tolerance":1e-8},{"id":7,"outgoing_halfedge":6,"position":[0.4,3.0,9.797174393178826e-17],"tolerance":1e-8},{"id":8,"outgoing_halfedge":9,"position":[1.0,0.5,0.0],"tolerance":1e-8},{"id":9,"outgoing_halfedge":12,"position":[-1.0,0.5,-1.2246467991473532e-16],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/boolean-matrix/wall-round.json b/main/opengeometry/tests/fixtures/cases/boolean-matrix/wall-round.json index d8d36243..c8cae132 100644 --- a/main/opengeometry/tests/fixtures/cases/boolean-matrix/wall-round.json +++ b/main/opengeometry/tests/fixtures/cases/boolean-matrix/wall-round.json @@ -1 +1 @@ -{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,-0.25]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,0.25],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,-0.25],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,-0.25],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"matrix-wall","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[-2.0,0.0,0.25],"tolerance":1e-8},{"id":1,"outgoing_halfedge":7,"position":[2.0,0.0,0.25],"tolerance":1e-8},{"id":2,"outgoing_halfedge":6,"position":[2.0,0.0,-0.25],"tolerance":1e-8},{"id":3,"outgoing_halfedge":5,"position":[-2.0,0.0,-0.25],"tolerance":1e-8},{"id":4,"outgoing_halfedge":0,"position":[-2.0,3.0,0.25],"tolerance":1e-8},{"id":5,"outgoing_halfedge":1,"position":[2.0,3.0,0.25],"tolerance":1e-8},{"id":6,"outgoing_halfedge":2,"position":[2.0,3.0,-0.25],"tolerance":1e-8},{"id":7,"outgoing_halfedge":3,"position":[-2.0,3.0,-0.25],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[0.0,1.5,-1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5,1.5,1.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[-0.0,1.0,-0.0],"z":[-0.0,-0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,-1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"}]},"id":"matrix-round-cutter","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.5,1.5,1.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.5,1.5,-1.0],"tolerance":1e-8}],"wires":[]}},"handlers":["generic_two_sided_cutter_band_subtraction"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"frame":{"origin":[0.0,1.5,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[0.0,1.5,-0.25],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[2.0,1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.0,0.75]},{"axis_a":[-0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[2.0,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.25]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,0.25],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,-0.25],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,-0.25],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Cylinder","radius":0.5}]},"id":"matrix-wall-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":24,"id":12,"tolerance":1e-8,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":26,"id":13,"tolerance":1e-8,"twin_halfedge":27}],"faces":[{"id":0,"key":"matrix-wall:top","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":1,"key":"matrix-wall:bottom","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":2,"key":"matrix-wall:side-0-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[6],"outer":2,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"matrix-wall:side-0-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"matrix-wall:side-0-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[8],"outer":4,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"matrix-wall:side-0-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":6,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[9],"outer":7,"uv_bounds":[{"hi":6.2831915913648935,"lo":-6.2831915913648935},{"hi":1.250000001000001,"lo":0.749999998999999}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null},{"edge":12,"face":2,"from":8,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Forward"},"id":24,"loop_ref":6,"next":24,"prev":24,"to":8,"twin":25,"wire_ref":null},{"edge":12,"face":6,"from":8,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Reverse"},"id":25,"loop_ref":7,"next":25,"prev":25,"to":8,"twin":24,"wire_ref":null},{"edge":13,"face":4,"from":9,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Forward"},"id":26,"loop_ref":8,"next":26,"prev":26,"to":9,"twin":27,"wire_ref":null},{"edge":13,"face":6,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Reverse"},"id":27,"loop_ref":9,"next":27,"prev":27,"to":9,"twin":26,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20},{"face_ref":2,"id":6,"is_hole":true,"start_halfedge":24},{"face_ref":6,"id":7,"is_hole":false,"start_halfedge":25},{"face_ref":4,"id":8,"is_hole":true,"start_halfedge":26},{"face_ref":6,"id":9,"is_hole":true,"start_halfedge":27}],"shells":[{"faces":[0,1,2,3,4,5,6],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[-2.0,0.0,0.25],"tolerance":1e-8},{"id":1,"outgoing_halfedge":7,"position":[2.0,0.0,0.25],"tolerance":1e-8},{"id":2,"outgoing_halfedge":6,"position":[2.0,0.0,-0.25],"tolerance":1e-8},{"id":3,"outgoing_halfedge":5,"position":[-2.0,0.0,-0.25],"tolerance":1e-8},{"id":4,"outgoing_halfedge":0,"position":[-2.0,3.0,0.25],"tolerance":1e-8},{"id":5,"outgoing_halfedge":1,"position":[2.0,3.0,0.25],"tolerance":1e-8},{"id":6,"outgoing_halfedge":2,"position":[2.0,3.0,-0.25],"tolerance":1e-8},{"id":7,"outgoing_halfedge":3,"position":[-2.0,3.0,-0.25],"tolerance":1e-8},{"id":8,"outgoing_halfedge":24,"position":[0.5,1.5,0.25],"tolerance":1e-8},{"id":9,"outgoing_halfedge":26,"position":[0.5,1.5,-0.25],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file +{"a":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,-0.25]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,0.25],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,-0.25],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,-0.25],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"}]},"id":"matrix-wall","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-8,"twin_halfedge":23}],"faces":[{"id":0,"key":"top","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":1,"key":"bottom","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":2,"key":"side-0-0","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"side-0-1","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"side-0-2","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[],"outer":4,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"side-0-3","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20}],"shells":[{"faces":[0,1,2,3,4,5],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[-2.0,0.0,0.25],"tolerance":1e-8},{"id":1,"outgoing_halfedge":7,"position":[2.0,0.0,0.25],"tolerance":1e-8},{"id":2,"outgoing_halfedge":6,"position":[2.0,0.0,-0.25],"tolerance":1e-8},{"id":3,"outgoing_halfedge":5,"position":[-2.0,0.0,-0.25],"tolerance":1e-8},{"id":4,"outgoing_halfedge":0,"position":[-2.0,3.0,0.25],"tolerance":1e-8},{"id":5,"outgoing_halfedge":1,"position":[2.0,3.0,0.25],"tolerance":1e-8},{"id":6,"outgoing_halfedge":2,"position":[2.0,3.0,-0.25],"tolerance":1e-8},{"id":7,"outgoing_halfedge":3,"position":[-2.0,3.0,-0.25],"tolerance":1e-8}],"wires":[]}},"b":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[0.0,1.5,-1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[0.5,1.5,1.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Cylinder","radius":0.5},{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[-0.0,1.0,-0.0],"z":[-0.0,-0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,-1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"}]},"id":"matrix-round-cutter","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":4},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":5},{"chart_seam":true,"geometry":{"curve":2,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":2,"tolerance":1e-8,"twin_halfedge":3}],"faces":[{"id":0,"key":"lateral","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":0,"key":"lateral"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":1,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}},{"id":2,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":2,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[],"outer":2,"uv_bounds":[{"hi":0.5,"lo":-0.5},{"hi":0.5,"lo":-0.5}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":5,"wire_ref":null},{"edge":2,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":0,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":4,"prev":4,"to":0,"twin":0,"wire_ref":null},{"edge":1,"face":2,"from":1,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":2,"next":5,"prev":5,"to":1,"twin":2,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":5}],"shells":[{"faces":[0,1,2],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[0.5,1.5,1.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[0.5,1.5,-1.0],"tolerance":1e-8}],"wires":[]}},"handlers":["generic_two_sided_cutter_band_subtraction"],"operation":"subtraction","result":{"brep":{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[1.0,0.0,0.0],"kind":"Line","origin":[-2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[0.0,0.0,-1.0],"kind":"Line","origin":[2.0,3.0,0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[-1.0,0.0,0.0],"kind":"Line","origin":[2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"direction":[0.0,0.0,1.0],"kind":"Line","origin":[-2.0,3.0,-0.25]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[-2.0,0.0,-0.25]},{"frame":{"origin":[0.0,1.5,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Circle","radius":0.5},{"frame":{"origin":[0.0,1.5,-0.25],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Circle","radius":0.5}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[0.0,1.0],"kind":"Line2","origin":[-2.0,-0.25]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[2.0,-0.25]},{"direction":[0.0,-1.0],"kind":"Line2","origin":[2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[-2.0,0.25]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[4.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.5,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,3.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[0.5,0.0],"axis_b":[0.0,0.5],"kind":"Conic2","origin":[2.0,1.5]},{"direction":[-1.0,0.0],"kind":"Line2","origin":[0.0,0.75]},{"axis_a":[-0.5,0.0],"axis_b":[0.0,-0.5],"kind":"Conic2","origin":[2.0,1.5]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,1.25]}],"surfaces":[{"frame":{"origin":[0.0,3.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,0.25],"x":[1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,1.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,0.25],"x":[0.0,0.0,-1.0],"y":[0.0,1.0,0.0],"z":[1.0,-0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[2.0,0.0,-0.25],"x":[-1.0,0.0,0.0],"y":[0.0,1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Plane"},{"frame":{"origin":[-2.0,0.0,-0.25],"x":[0.0,0.0,1.0],"y":[0.0,1.0,-0.0],"z":[-1.0,0.0,0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,1.5,1.0],"x":[1.0,0.0,0.0],"y":[0.0,-1.0,0.0],"z":[0.0,0.0,-1.0]},"kind":"Cylinder","radius":0.5}]},"id":"matrix-wall-round","quality":{"kind":"Analytic"},"revision":1,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":7,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":0,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":11,"id":2,"tolerance":1e-8,"twin_halfedge":21},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":12},{"chart_seam":false,"geometry":{"curve":4,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":14},{"chart_seam":false,"geometry":{"curve":5,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":9,"id":5,"tolerance":1e-8,"twin_halfedge":15},{"chart_seam":false,"geometry":{"curve":6,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":5,"id":6,"tolerance":1e-8,"twin_halfedge":16},{"chart_seam":false,"geometry":{"curve":7,"kind":"Curve","range":{"hi":4.0,"lo":0.0}},"halfedge":2,"id":7,"tolerance":1e-8,"twin_halfedge":18},{"chart_seam":false,"geometry":{"curve":8,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":13,"id":8,"tolerance":1e-8,"twin_halfedge":19},{"chart_seam":false,"geometry":{"curve":9,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":4,"id":9,"tolerance":1e-8,"twin_halfedge":20},{"chart_seam":false,"geometry":{"curve":10,"kind":"Curve","range":{"hi":0.5,"lo":0.0}},"halfedge":3,"id":10,"tolerance":1e-8,"twin_halfedge":22},{"chart_seam":false,"geometry":{"curve":11,"kind":"Curve","range":{"hi":3.0,"lo":0.0}},"halfedge":17,"id":11,"tolerance":1e-8,"twin_halfedge":23},{"chart_seam":false,"geometry":{"curve":12,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":24,"id":12,"tolerance":1e-8,"twin_halfedge":25},{"chart_seam":false,"geometry":{"curve":13,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":26,"id":13,"tolerance":1e-8,"twin_halfedge":27}],"faces":[{"id":0,"key":"matrix-wall:top","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":0,"key":"top"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":1,"key":"matrix-wall:bottom","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":1,"key":"bottom"}]},"sense":"Forward","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":2.00000001,"lo":-2.00000001},{"hi":0.25000001,"lo":-0.25000001}]}},{"id":2,"key":"matrix-wall:side-0-0","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":2,"key":"side-0-0"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[6],"outer":2,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":3,"key":"matrix-wall:side-0-1","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":3,"key":"side-0-1"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[],"outer":3,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":4,"key":"matrix-wall:side-0-2","provenance":{"reversed":false,"role":"Split","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":4,"key":"side-0-2"}]},"sense":"Forward","shell_ref":0,"surface":4,"trim":{"chart":0,"holes":[8],"outer":4,"uv_bounds":[{"hi":4.00000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":5,"key":"matrix-wall:side-0-3","provenance":{"reversed":false,"role":"Preserved","sources":[{"body":"matrix-wall","entity":"matrix-wall","face":5,"key":"side-0-3"}]},"sense":"Forward","shell_ref":0,"surface":5,"trim":{"chart":0,"holes":[],"outer":5,"uv_bounds":[{"hi":0.50000001,"lo":-1e-8},{"hi":3.00000001,"lo":-1e-8}]}},{"id":6,"key":"lateral:through-cut","provenance":{"reversed":true,"role":"Cut","sources":[{"body":"matrix-round-cutter","entity":"matrix-round-cutter","face":0,"key":"lateral"}]},"sense":"Reverse","shell_ref":0,"surface":6,"trim":{"chart":0,"holes":[9],"outer":7,"uv_bounds":[{"hi":6.2831915913648935,"lo":-6.2831915913648935},{"hi":1.250000001000001,"lo":0.749999998999999}]}}],"halfedges":[{"edge":1,"face":0,"from":4,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":5,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":5,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":6,"twin":14,"wire_ref":null},{"edge":7,"face":0,"from":6,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Forward"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":7,"twin":18,"wire_ref":null},{"edge":10,"face":0,"from":7,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Forward"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":4,"twin":22,"wire_ref":null},{"edge":9,"face":1,"from":0,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":20,"wire_ref":null},{"edge":6,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":2,"twin":16,"wire_ref":null},{"edge":3,"face":1,"from":2,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":1,"twin":12,"wire_ref":null},{"edge":0,"face":1,"from":1,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":0,"twin":8,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Forward"},"id":8,"loop_ref":2,"next":9,"prev":11,"to":1,"twin":7,"wire_ref":null},{"edge":5,"face":2,"from":1,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":2,"next":10,"prev":8,"to":5,"twin":15,"wire_ref":null},{"edge":1,"face":2,"from":5,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Reverse"},"id":10,"loop_ref":2,"next":11,"prev":9,"to":4,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":4,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":2,"next":8,"prev":10,"to":0,"twin":21,"wire_ref":null},{"edge":3,"face":3,"from":1,"geometry_use":{"pcurve":12,"periodic_lift":[0,0],"sense":"Forward"},"id":12,"loop_ref":3,"next":13,"prev":15,"to":2,"twin":6,"wire_ref":null},{"edge":8,"face":3,"from":2,"geometry_use":{"pcurve":13,"periodic_lift":[0,0],"sense":"Forward"},"id":13,"loop_ref":3,"next":14,"prev":12,"to":6,"twin":19,"wire_ref":null},{"edge":4,"face":3,"from":6,"geometry_use":{"pcurve":14,"periodic_lift":[0,0],"sense":"Reverse"},"id":14,"loop_ref":3,"next":15,"prev":13,"to":5,"twin":1,"wire_ref":null},{"edge":5,"face":3,"from":5,"geometry_use":{"pcurve":15,"periodic_lift":[0,0],"sense":"Reverse"},"id":15,"loop_ref":3,"next":12,"prev":14,"to":1,"twin":9,"wire_ref":null},{"edge":6,"face":4,"from":2,"geometry_use":{"pcurve":16,"periodic_lift":[0,0],"sense":"Forward"},"id":16,"loop_ref":4,"next":17,"prev":19,"to":3,"twin":5,"wire_ref":null},{"edge":11,"face":4,"from":3,"geometry_use":{"pcurve":17,"periodic_lift":[0,0],"sense":"Forward"},"id":17,"loop_ref":4,"next":18,"prev":16,"to":7,"twin":23,"wire_ref":null},{"edge":7,"face":4,"from":7,"geometry_use":{"pcurve":18,"periodic_lift":[0,0],"sense":"Reverse"},"id":18,"loop_ref":4,"next":19,"prev":17,"to":6,"twin":2,"wire_ref":null},{"edge":8,"face":4,"from":6,"geometry_use":{"pcurve":19,"periodic_lift":[0,0],"sense":"Reverse"},"id":19,"loop_ref":4,"next":16,"prev":18,"to":2,"twin":13,"wire_ref":null},{"edge":9,"face":5,"from":3,"geometry_use":{"pcurve":20,"periodic_lift":[0,0],"sense":"Forward"},"id":20,"loop_ref":5,"next":21,"prev":23,"to":0,"twin":4,"wire_ref":null},{"edge":2,"face":5,"from":0,"geometry_use":{"pcurve":21,"periodic_lift":[0,0],"sense":"Forward"},"id":21,"loop_ref":5,"next":22,"prev":20,"to":4,"twin":11,"wire_ref":null},{"edge":10,"face":5,"from":4,"geometry_use":{"pcurve":22,"periodic_lift":[0,0],"sense":"Reverse"},"id":22,"loop_ref":5,"next":23,"prev":21,"to":7,"twin":3,"wire_ref":null},{"edge":11,"face":5,"from":7,"geometry_use":{"pcurve":23,"periodic_lift":[0,0],"sense":"Reverse"},"id":23,"loop_ref":5,"next":20,"prev":22,"to":3,"twin":17,"wire_ref":null},{"edge":12,"face":2,"from":8,"geometry_use":{"pcurve":24,"periodic_lift":[0,0],"sense":"Reverse"},"id":24,"loop_ref":6,"next":24,"prev":24,"to":8,"twin":25,"wire_ref":null},{"edge":12,"face":6,"from":8,"geometry_use":{"pcurve":25,"periodic_lift":[0,0],"sense":"Forward"},"id":25,"loop_ref":7,"next":25,"prev":25,"to":8,"twin":24,"wire_ref":null},{"edge":13,"face":4,"from":9,"geometry_use":{"pcurve":26,"periodic_lift":[0,0],"sense":"Reverse"},"id":26,"loop_ref":8,"next":26,"prev":26,"to":9,"twin":27,"wire_ref":null},{"edge":13,"face":6,"from":9,"geometry_use":{"pcurve":27,"periodic_lift":[0,0],"sense":"Forward"},"id":27,"loop_ref":9,"next":27,"prev":27,"to":9,"twin":26,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":3,"id":3,"is_hole":false,"start_halfedge":12},{"face_ref":4,"id":4,"is_hole":false,"start_halfedge":16},{"face_ref":5,"id":5,"is_hole":false,"start_halfedge":20},{"face_ref":2,"id":6,"is_hole":true,"start_halfedge":24},{"face_ref":6,"id":7,"is_hole":false,"start_halfedge":25},{"face_ref":4,"id":8,"is_hole":true,"start_halfedge":26},{"face_ref":6,"id":9,"is_hole":true,"start_halfedge":27}],"shells":[{"faces":[0,1,2,3,4,5,6],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":4,"position":[-2.0,0.0,0.25],"tolerance":1e-8},{"id":1,"outgoing_halfedge":7,"position":[2.0,0.0,0.25],"tolerance":1e-8},{"id":2,"outgoing_halfedge":6,"position":[2.0,0.0,-0.25],"tolerance":1e-8},{"id":3,"outgoing_halfedge":5,"position":[-2.0,0.0,-0.25],"tolerance":1e-8},{"id":4,"outgoing_halfedge":0,"position":[-2.0,3.0,0.25],"tolerance":1e-8},{"id":5,"outgoing_halfedge":1,"position":[2.0,3.0,0.25],"tolerance":1e-8},{"id":6,"outgoing_halfedge":2,"position":[2.0,3.0,-0.25],"tolerance":1e-8},{"id":7,"outgoing_halfedge":3,"position":[-2.0,3.0,-0.25],"tolerance":1e-8},{"id":8,"outgoing_halfedge":24,"position":[0.5,1.5,0.25],"tolerance":1e-8},{"id":9,"outgoing_halfedge":26,"position":[0.5,1.5,-0.25],"tolerance":1e-8}],"wires":[]}}}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.brep.json b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.brep.json index 200eedba..7eac7ce5 100644 --- a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.brep.json +++ b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.brep.json @@ -1 +1 @@ -{"schema_version":2,"id":"cylinder-with-hole","revision":0,"geometry":{"surfaces":[{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Plane","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]}},{"kind":"Plane","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]}}],"curves":[{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Line","origin":[1.0,0.0,0.0],"direction":[0.0,1.0,0.0]},{"kind":"Line","origin":[0.4,0.0,0.0],"direction":[0.0,1.0,0.0]}],"pcurves":[{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,0.4]}],"intersections":[]},"topology":{"vertices":[{"id":0,"position":[1.0,0.0,0.0],"outgoing_halfedge":0,"tolerance":1e-8},{"id":1,"position":[1.0,2.0,0.0],"outgoing_halfedge":2,"tolerance":1e-8},{"id":2,"position":[0.4,0.0,0.0],"outgoing_halfedge":4,"tolerance":1e-8},{"id":3,"position":[0.4,2.0,0.0],"outgoing_halfedge":6,"tolerance":1e-8}],"edges":[{"id":0,"geometry":{"kind":"Curve","curve":0,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":0,"twin_halfedge":8,"tolerance":1e-8,"chart_seam":false},{"id":1,"geometry":{"kind":"Curve","curve":1,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":2,"twin_halfedge":10,"tolerance":1e-8,"chart_seam":false},{"id":2,"geometry":{"kind":"Curve","curve":2,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":4,"twin_halfedge":9,"tolerance":1e-8,"chart_seam":false},{"id":3,"geometry":{"kind":"Curve","curve":3,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":6,"twin_halfedge":11,"tolerance":1e-8,"chart_seam":false},{"id":4,"geometry":{"kind":"Curve","curve":4,"range":{"lo":0.0,"hi":2.0}},"halfedge":1,"twin_halfedge":3,"tolerance":1e-8,"chart_seam":true},{"id":5,"geometry":{"kind":"Curve","curve":5,"range":{"lo":0.0,"hi":2.0}},"halfedge":5,"twin_halfedge":7,"tolerance":1e-8,"chart_seam":true}],"halfedges":[{"id":0,"from":0,"to":0,"twin":8,"next":1,"prev":3,"edge":0,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":0,"periodic_lift":[0,0]}},{"id":1,"from":0,"to":1,"twin":3,"next":2,"prev":0,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":1,"periodic_lift":[0,0]}},{"id":2,"from":1,"to":1,"twin":10,"next":3,"prev":1,"edge":1,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":2,"periodic_lift":[0,0]}},{"id":3,"from":1,"to":0,"twin":1,"next":0,"prev":2,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":3,"periodic_lift":[0,0]}},{"id":4,"from":2,"to":2,"twin":9,"next":5,"prev":7,"edge":2,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":4,"periodic_lift":[0,0]}},{"id":5,"from":2,"to":3,"twin":7,"next":6,"prev":4,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":5,"periodic_lift":[0,0]}},{"id":6,"from":3,"to":3,"twin":11,"next":7,"prev":5,"edge":3,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":6,"periodic_lift":[0,0]}},{"id":7,"from":3,"to":2,"twin":5,"next":4,"prev":6,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":7,"periodic_lift":[0,0]}},{"id":8,"from":0,"to":0,"twin":0,"next":8,"prev":8,"edge":0,"face":2,"loop_ref":2,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":8,"periodic_lift":[0,0]}},{"id":9,"from":2,"to":2,"twin":4,"next":9,"prev":9,"edge":2,"face":2,"loop_ref":3,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":9,"periodic_lift":[0,0]}},{"id":10,"from":1,"to":1,"twin":2,"next":10,"prev":10,"edge":1,"face":3,"loop_ref":4,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":10,"periodic_lift":[0,0]}},{"id":11,"from":3,"to":3,"twin":6,"next":11,"prev":11,"edge":3,"face":3,"loop_ref":5,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":11,"periodic_lift":[0,0]}}],"loops":[{"id":0,"start_halfedge":0,"face_ref":0,"is_hole":false},{"id":1,"start_halfedge":4,"face_ref":1,"is_hole":false},{"id":2,"start_halfedge":8,"face_ref":2,"is_hole":false},{"id":3,"start_halfedge":9,"face_ref":2,"is_hole":true},{"id":4,"start_halfedge":10,"face_ref":3,"is_hole":false},{"id":5,"start_halfedge":11,"face_ref":3,"is_hole":true}],"faces":[{"id":0,"key":"outer","surface":0,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":0,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"outer","face":0}],"role":"Authored","reversed":false}},{"id":1,"key":"inner","surface":1,"sense":"Reverse","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":1,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"inner","face":1}],"role":"Authored","reversed":false}},{"id":2,"key":"lower_cap","surface":2,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":2,"holes":[3]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"lower_cap","face":2}],"role":"Authored","reversed":false}},{"id":3,"key":"upper_cap","surface":3,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":4,"holes":[5]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"upper_cap","face":3}],"role":"Authored","reversed":false}}],"wires":[],"shells":[{"id":0,"faces":[0,1,2,3],"is_closed":true}]},"solids":[{"outer_shell":0,"cavity_shells":[]}],"accuracy":{"geometric":1e-8,"intersection":1e-9,"tessellation":0.01,"exchange":1e-6},"quality":{"kind":"Analytic"}} \ No newline at end of file +{"schema_version":2,"id":"cylinder-with-hole","revision":0,"geometry":{"surfaces":[{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Cylinder","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Plane","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]}},{"kind":"Plane","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]}}],"curves":[{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":1.0},{"kind":"Circle","frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Circle","frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"radius":0.4},{"kind":"Line","origin":[1.0,0.0,0.0],"direction":[0.0,1.0,0.0]},{"kind":"Line","origin":[0.4,0.0,0.0],"direction":[0.0,1.0,0.0]}],"pcurves":[{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[6.283185307179586,0.0],"direction":[0.0,1.0]},{"kind":"Line2","origin":[0.0,2.0],"direction":[1.0,0.0]},{"kind":"Line2","origin":[0.0,0.0],"direction":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[1.0,0.0],"axis_b":[0.0,1.0]},{"kind":"Conic2","origin":[0.0,0.0],"axis_a":[0.4,0.0],"axis_b":[0.0,0.4]}],"intersections":[]},"topology":{"vertices":[{"id":0,"position":[1.0,0.0,0.0],"outgoing_halfedge":0,"tolerance":1e-8},{"id":1,"position":[1.0,2.0,0.0],"outgoing_halfedge":2,"tolerance":1e-8},{"id":2,"position":[0.4,0.0,0.0],"outgoing_halfedge":4,"tolerance":1e-8},{"id":3,"position":[0.4,2.0,0.0],"outgoing_halfedge":6,"tolerance":1e-8}],"edges":[{"id":0,"geometry":{"kind":"Curve","curve":0,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":0,"twin_halfedge":8,"tolerance":1e-8,"chart_seam":false},{"id":1,"geometry":{"kind":"Curve","curve":1,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":2,"twin_halfedge":10,"tolerance":1e-8,"chart_seam":false},{"id":2,"geometry":{"kind":"Curve","curve":2,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":4,"twin_halfedge":9,"tolerance":1e-8,"chart_seam":false},{"id":3,"geometry":{"kind":"Curve","curve":3,"range":{"lo":0.0,"hi":6.283185307179586}},"halfedge":6,"twin_halfedge":11,"tolerance":1e-8,"chart_seam":false},{"id":4,"geometry":{"kind":"Curve","curve":4,"range":{"lo":0.0,"hi":2.0}},"halfedge":1,"twin_halfedge":3,"tolerance":1e-8,"chart_seam":true},{"id":5,"geometry":{"kind":"Curve","curve":5,"range":{"lo":0.0,"hi":2.0}},"halfedge":5,"twin_halfedge":7,"tolerance":1e-8,"chart_seam":true}],"halfedges":[{"id":0,"from":0,"to":0,"twin":8,"next":1,"prev":3,"edge":0,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":0,"periodic_lift":[0,0]}},{"id":1,"from":0,"to":1,"twin":3,"next":2,"prev":0,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":1,"periodic_lift":[0,0]}},{"id":2,"from":1,"to":1,"twin":10,"next":3,"prev":1,"edge":1,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":2,"periodic_lift":[0,0]}},{"id":3,"from":1,"to":0,"twin":1,"next":0,"prev":2,"edge":4,"face":0,"loop_ref":0,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":3,"periodic_lift":[0,0]}},{"id":4,"from":2,"to":2,"twin":9,"next":7,"prev":5,"edge":2,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":4,"periodic_lift":[0,0]}},{"id":5,"from":3,"to":2,"twin":7,"next":4,"prev":6,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":5,"periodic_lift":[0,0]}},{"id":6,"from":3,"to":3,"twin":11,"next":5,"prev":7,"edge":3,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":6,"periodic_lift":[0,0]}},{"id":7,"from":2,"to":3,"twin":5,"next":6,"prev":4,"edge":5,"face":1,"loop_ref":1,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":7,"periodic_lift":[0,0]}},{"id":8,"from":0,"to":0,"twin":0,"next":8,"prev":8,"edge":0,"face":2,"loop_ref":2,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":8,"periodic_lift":[0,0]}},{"id":9,"from":2,"to":2,"twin":4,"next":9,"prev":9,"edge":2,"face":2,"loop_ref":3,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":9,"periodic_lift":[0,0]}},{"id":10,"from":1,"to":1,"twin":2,"next":10,"prev":10,"edge":1,"face":3,"loop_ref":4,"wire_ref":null,"geometry_use":{"sense":"Forward","pcurve":10,"periodic_lift":[0,0]}},{"id":11,"from":3,"to":3,"twin":6,"next":11,"prev":11,"edge":3,"face":3,"loop_ref":5,"wire_ref":null,"geometry_use":{"sense":"Reverse","pcurve":11,"periodic_lift":[0,0]}}],"loops":[{"id":0,"start_halfedge":0,"face_ref":0,"is_hole":false},{"id":1,"start_halfedge":4,"face_ref":1,"is_hole":false},{"id":2,"start_halfedge":8,"face_ref":2,"is_hole":false},{"id":3,"start_halfedge":9,"face_ref":2,"is_hole":true},{"id":4,"start_halfedge":10,"face_ref":3,"is_hole":false},{"id":5,"start_halfedge":11,"face_ref":3,"is_hole":true}],"faces":[{"id":0,"key":"outer","surface":0,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":0,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"outer","face":0}],"role":"Authored","reversed":false}},{"id":1,"key":"inner","surface":1,"sense":"Reverse","trim":{"chart":0,"uv_bounds":[{"lo":0.0,"hi":6.283185307179586},{"lo":0.0,"hi":2.0}],"outer":1,"holes":[]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"inner","face":1}],"role":"Authored","reversed":false}},{"id":2,"key":"lower_cap","surface":2,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":2,"holes":[3]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"lower_cap","face":2}],"role":"Authored","reversed":false}},{"id":3,"key":"upper_cap","surface":3,"sense":"Forward","trim":{"chart":0,"uv_bounds":[{"lo":-1.0,"hi":1.0},{"lo":-1.0,"hi":1.0}],"outer":4,"holes":[5]},"shell_ref":0,"provenance":{"sources":[{"entity":"cylinder-with-hole","body":"cylinder-with-hole","key":"upper_cap","face":3}],"role":"Authored","reversed":false}}],"wires":[],"shells":[{"id":0,"faces":[0,1,2,3],"is_closed":true}]},"solids":[{"outer_shell":0,"cavity_shells":[]}],"accuracy":{"geometric":1e-8,"intersection":1e-9,"tessellation":0.01,"exchange":1e-6},"quality":{"kind":"Analytic"}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.m b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.m index 8121b61b..0e0c4f60 100644 --- a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.m +++ b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.m @@ -153,9 +153,9 @@ #146=EDGE_LOOP('',(#142,#143,#144,#145)); #147=FACE_OUTER_BOUND('',#146,.T.); #148=ADVANCED_FACE('outer',(#147),#6,.T.); -#149=ORIENTED_EDGE('',*,*,#86,.T.); +#149=ORIENTED_EDGE('',*,*,#86,.F.); #150=ORIENTED_EDGE('',*,*,#141,.T.); -#151=ORIENTED_EDGE('',*,*,#105,.F.); +#151=ORIENTED_EDGE('',*,*,#105,.T.); #152=ORIENTED_EDGE('',*,*,#141,.F.); #153=EDGE_LOOP('',(#149,#150,#151,#152)); #154=FACE_OUTER_BOUND('',#153,.T.); @@ -163,14 +163,14 @@ #156=ORIENTED_EDGE('',*,*,#48,.F.); #157=EDGE_LOOP('',(#156)); #158=FACE_OUTER_BOUND('',#157,.T.); -#159=ORIENTED_EDGE('',*,*,#86,.F.); +#159=ORIENTED_EDGE('',*,*,#86,.T.); #160=EDGE_LOOP('',(#159)); #161=FACE_BOUND('',#160,.T.); #162=ADVANCED_FACE('lower_cap',(#158,#161),#16,.T.); #163=ORIENTED_EDGE('',*,*,#67,.T.); #164=EDGE_LOOP('',(#163)); #165=FACE_OUTER_BOUND('',#164,.T.); -#166=ORIENTED_EDGE('',*,*,#105,.T.); +#166=ORIENTED_EDGE('',*,*,#105,.F.); #167=EDGE_LOOP('',(#166)); #168=FACE_BOUND('',#167,.T.); #169=ADVANCED_FACE('upper_cap',(#165,#168),#21,.T.); diff --git a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.mm b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.mm index 858075ec..17b4752f 100644 --- a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.mm +++ b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.step.mm @@ -153,9 +153,9 @@ #146=EDGE_LOOP('',(#142,#143,#144,#145)); #147=FACE_OUTER_BOUND('',#146,.T.); #148=ADVANCED_FACE('outer',(#147),#6,.T.); -#149=ORIENTED_EDGE('',*,*,#86,.T.); +#149=ORIENTED_EDGE('',*,*,#86,.F.); #150=ORIENTED_EDGE('',*,*,#141,.T.); -#151=ORIENTED_EDGE('',*,*,#105,.F.); +#151=ORIENTED_EDGE('',*,*,#105,.T.); #152=ORIENTED_EDGE('',*,*,#141,.F.); #153=EDGE_LOOP('',(#149,#150,#151,#152)); #154=FACE_OUTER_BOUND('',#153,.T.); @@ -163,14 +163,14 @@ #156=ORIENTED_EDGE('',*,*,#48,.F.); #157=EDGE_LOOP('',(#156)); #158=FACE_OUTER_BOUND('',#157,.T.); -#159=ORIENTED_EDGE('',*,*,#86,.F.); +#159=ORIENTED_EDGE('',*,*,#86,.T.); #160=EDGE_LOOP('',(#159)); #161=FACE_BOUND('',#160,.T.); #162=ADVANCED_FACE('lower_cap',(#158,#161),#16,.T.); #163=ORIENTED_EDGE('',*,*,#67,.T.); #164=EDGE_LOOP('',(#163)); #165=FACE_OUTER_BOUND('',#164,.T.); -#166=ORIENTED_EDGE('',*,*,#105,.T.); +#166=ORIENTED_EDGE('',*,*,#105,.F.); #167=EDGE_LOOP('',(#166)); #168=FACE_BOUND('',#167,.T.); #169=ADVANCED_FACE('upper_cap',(#165,#168),#21,.T.); diff --git a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.tess.json b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.tess.json index a8b25c8a..8dd58bee 100644 --- a/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.tess.json +++ b/main/opengeometry/tests/fixtures/cases/cylinder-with-hole.tess.json @@ -1 +1 @@ -{"achievedDeflection":0.01,"indices":[0,1,34,0,34,33,1,2,35,1,35,34,2,3,36,2,36,35,3,4,37,3,37,36,4,5,38,4,38,37,5,6,39,5,39,38,6,7,40,6,40,39,7,8,41,7,41,40,8,9,42,8,42,41,9,10,43,9,43,42,10,11,44,10,44,43,11,12,45,11,45,44,12,13,46,12,46,45,13,14,47,13,47,46,14,15,48,14,48,47,15,16,49,15,49,48,16,17,50,16,50,49,17,18,51,17,51,50,18,19,52,18,52,51,19,20,53,19,53,52,20,21,54,20,54,53,21,22,55,21,55,54,22,23,56,22,56,55,23,24,57,23,57,56,24,25,58,24,58,57,25,26,59,25,59,58,26,27,60,26,60,59,27,28,61,27,61,60,28,29,62,28,62,61,29,30,63,29,63,62,30,31,64,30,64,63,31,32,65,31,65,64,66,100,67,66,99,100,67,101,68,67,100,101,68,102,69,68,101,102,69,103,70,69,102,103,70,104,71,70,103,104,71,105,72,71,104,105,72,106,73,72,105,106,73,107,74,73,106,107,74,108,75,74,107,108,75,109,76,75,108,109,76,110,77,76,109,110,77,111,78,77,110,111,78,112,79,78,111,112,79,113,80,79,112,113,80,114,81,80,113,114,81,115,82,81,114,115,82,116,83,82,115,116,83,117,84,83,116,117,84,118,85,84,117,118,85,119,86,85,118,119,86,120,87,86,119,120,87,121,88,87,120,121,88,122,89,88,121,122,89,123,90,89,122,123,90,124,91,90,123,124,91,125,92,91,124,125,92,126,93,92,125,126,93,127,94,93,126,127,94,128,95,94,127,128,95,129,96,95,128,129,96,130,97,96,129,130,97,131,98,97,130,131,163,132,133,133,134,135,135,136,137,137,138,139,139,140,141,141,142,143,143,144,145,145,146,147,147,148,180,181,180,148,148,149,150,150,151,152,152,153,154,154,155,156,156,157,158,158,159,160,160,161,162,162,163,133,133,135,137,137,139,141,141,143,145,145,147,180,182,181,148,148,150,152,152,154,156,156,158,160,160,162,133,133,137,141,145,180,179,183,182,148,148,152,156,156,160,133,141,145,179,184,183,148,141,179,178,185,184,148,141,178,177,186,185,148,141,177,176,186,148,156,141,176,175,187,186,156,141,175,174,188,187,156,141,174,173,189,188,156,141,173,172,190,189,156,141,172,171,191,190,156,133,141,171,192,191,156,133,171,170,193,192,156,133,170,169,194,193,156,133,169,168,194,156,133,133,168,167,195,194,133,133,167,166,164,195,133,133,166,165,165,164,133,227,196,197,197,198,199,199,200,201,201,202,203,203,204,205,205,206,207,207,208,209,209,210,211,211,212,244,245,244,212,212,213,214,214,215,216,216,217,218,218,219,220,220,221,222,222,223,224,224,225,226,226,227,197,197,199,201,201,203,205,205,207,209,209,211,244,246,245,212,212,214,216,216,218,220,220,222,224,224,226,197,197,201,205,209,244,243,247,246,212,212,216,220,220,224,197,205,209,243,248,247,212,205,243,242,249,248,212,205,242,241,250,249,212,205,241,240,250,212,220,205,240,239,251,250,220,205,239,238,252,251,220,205,238,237,253,252,220,205,237,236,254,253,220,205,236,235,255,254,220,197,205,235,256,255,220,197,235,234,257,256,220,197,234,233,258,257,220,197,233,232,258,220,197,197,232,231,259,258,197,197,231,230,228,259,197,197,230,229,229,228,197],"normals":[1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0],"outlineEdgeIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"outlinePositions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865475,0.7071067811865476,0.0,-0.7071067811865475,0.5555702330196023,0.0,-0.8314696123025452,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.282842712474619,0.28284271247461906,0.0,-0.282842712474619,0.22222809320784093,0.0,-0.3325878449210181,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0],"positions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865475,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.282842712474619,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0,1.0,0.0,0.0,0.9807852804032303,0.0,0.19509032201612872,0.9238795325112865,0.0,0.3826834323650904,0.8314696123025452,0.0,0.5555702330196022,0.7071067811865474,0.0,0.7071067811865477,0.5555702330196018,0.0,0.8314696123025455,0.38268343236509,0.0,0.9238795325112866,0.1950903220161283,0.0,0.9807852804032304,-1.8369701987210297e-16,0.0,1.0,-0.19509032201612866,0.0,0.9807852804032303,-0.38268343236509034,0.0,0.9238795325112865,-0.5555702330196022,0.0,0.8314696123025452,-0.7071067811865477,0.0,0.7071067811865475,-0.8314696123025455,0.0,0.555570233019602,-0.9238795325112868,0.0,0.38268343236508967,-0.9807852804032304,0.0,0.19509032201612836,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,-0.1950903220161286,-0.9238795325112867,0.0,-0.3826834323650899,-0.8314696123025453,0.0,-0.5555702330196022,-0.7071067811865475,0.0,-0.7071067811865476,-0.555570233019602,0.0,-0.8314696123025453,-0.3826834323650897,0.0,-0.9238795325112867,-0.1950903220161282,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,0.19509032201612833,0.0,-0.9807852804032304,0.38268343236508984,0.0,-0.9238795325112867,0.5555702330196023,0.0,-0.8314696123025452,0.7071067811865476,0.0,-0.7071067811865475,0.8314696123025452,0.0,-0.5555702330196022,0.9238795325112867,0.0,-0.3826834323650898,0.9807852804032304,0.0,-0.19509032201612825,0.4,0.0,0.0,0.39231411216129214,0.0,0.0780361288064515,0.3695518130045146,0.0,0.15307337294603618,0.3325878449210181,0.0,0.22222809320784087,0.28284271247461895,0.0,0.28284271247461906,0.22222809320784076,0.0,0.3325878449210182,0.153073372946036,0.0,0.3695518130045147,0.07803612880645133,0.0,0.3923141121612922,-7.347880794884119e-17,0.0,0.4,-0.07803612880645147,0.0,0.39231411216129214,-0.15307337294603615,0.0,0.3695518130045146,-0.22222809320784087,0.0,0.3325878449210181,-0.28284271247461906,0.0,0.282842712474619,-0.3325878449210182,0.0,0.2222280932078408,-0.3695518130045148,0.0,0.15307337294603587,-0.3923141121612922,0.0,0.07803612880645135,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,-0.07803612880645144,-0.36955181300451473,0.0,-0.15307337294603596,-0.33258784492101817,0.0,-0.22222809320784087,-0.282842712474619,0.0,-0.28284271247461906,-0.2222280932078408,0.0,-0.33258784492101817,-0.1530733729460359,0.0,-0.36955181300451473,-0.07803612880645128,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,0.07803612880645133,0.0,-0.3923141121612922,0.15307337294603596,0.0,-0.36955181300451473,0.22222809320784093,0.0,-0.3325878449210181,0.28284271247461906,0.0,-0.282842712474619,0.3325878449210181,0.0,-0.22222809320784087,0.36955181300451473,0.0,-0.15307337294603593,0.3923141121612922,0.0,-0.0780361288064513,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865475,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.282842712474619,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515],"revision":0,"triangleFaceIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]} \ No newline at end of file +{"achievedDeflection":0.01,"indices":[0,1,34,0,34,33,1,2,35,1,35,34,2,3,36,2,36,35,3,4,37,3,37,36,4,5,38,4,38,37,5,6,39,5,39,38,6,7,40,6,40,39,7,8,41,7,41,40,8,9,42,8,42,41,9,10,43,9,43,42,10,11,44,10,44,43,11,12,45,11,45,44,12,13,46,12,46,45,13,14,47,13,47,46,14,15,48,14,48,47,15,16,49,15,49,48,16,17,50,16,50,49,17,18,51,17,51,50,18,19,52,18,52,51,19,20,53,19,53,52,20,21,54,20,54,53,21,22,55,21,55,54,22,23,56,22,56,55,23,24,57,23,57,56,24,25,58,24,58,57,25,26,59,25,59,58,26,27,60,26,60,59,27,28,61,27,61,60,28,29,62,28,62,61,29,30,63,29,63,62,30,31,64,30,64,63,31,32,65,31,65,64,66,100,67,66,99,100,67,101,68,67,100,101,68,102,69,68,101,102,69,103,70,69,102,103,70,104,71,70,103,104,71,105,72,71,104,105,72,106,73,72,105,106,73,107,74,73,106,107,74,108,75,74,107,108,75,109,76,75,108,109,76,110,77,76,109,110,77,111,78,77,110,111,78,112,79,78,111,112,79,113,80,79,112,113,80,114,81,80,113,114,81,115,82,81,114,115,82,116,83,82,115,116,83,117,84,83,116,117,84,118,85,84,117,118,85,119,86,85,118,119,86,120,87,86,119,120,87,121,88,87,120,121,88,122,89,88,121,122,89,123,90,89,122,123,90,124,91,90,123,124,91,125,92,91,124,125,92,126,93,92,125,126,93,127,94,93,126,127,94,128,95,94,127,128,95,129,96,95,128,129,96,130,97,96,129,130,97,131,98,97,130,131,163,132,133,133,134,135,135,136,137,137,138,139,139,140,141,141,142,143,143,144,145,145,146,147,147,148,180,179,180,148,148,149,150,150,151,152,152,153,154,154,155,156,156,157,158,158,159,160,160,161,162,162,163,133,133,135,137,137,139,141,141,143,145,145,147,180,178,179,148,148,150,152,152,154,156,156,158,160,160,162,133,133,137,141,145,180,181,177,178,148,148,152,156,156,160,133,141,145,181,176,177,148,141,181,182,175,176,148,141,182,183,174,175,148,141,183,184,174,148,156,141,184,185,173,174,156,141,185,186,172,173,156,141,186,187,171,172,156,141,187,188,170,171,156,141,188,189,169,170,156,133,141,189,168,169,156,133,189,190,167,168,156,133,190,191,166,167,156,133,191,192,166,156,133,133,192,193,165,166,133,133,193,194,164,165,133,133,194,195,195,164,133,227,196,197,197,198,199,199,200,201,201,202,203,203,204,205,205,206,207,207,208,209,209,210,211,211,212,244,243,244,212,212,213,214,214,215,216,216,217,218,218,219,220,220,221,222,222,223,224,224,225,226,226,227,197,197,199,201,201,203,205,205,207,209,209,211,244,242,243,212,212,214,216,216,218,220,220,222,224,224,226,197,197,201,205,209,244,245,241,242,212,212,216,220,220,224,197,205,209,245,240,241,212,205,245,246,239,240,212,205,246,247,238,239,212,205,247,248,238,212,220,205,248,249,237,238,220,205,249,250,236,237,220,205,250,251,235,236,220,205,251,252,234,235,220,205,252,253,233,234,220,197,205,253,232,233,220,197,253,254,231,232,220,197,254,255,230,231,220,197,255,256,230,220,197,197,256,257,229,230,197,197,257,258,228,229,197,197,258,259,259,228,197],"normals":[1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,1.0,0.0,0.0,0.9807852506637573,0.0,-0.19509032368659973,0.9238795042037964,0.0,-0.3826834261417389,0.8314695954322815,0.0,-0.5555702447891235,0.7071067690849304,0.0,-0.7071067690849304,0.5555702447891235,0.0,-0.8314695954322815,0.3826834261417389,0.0,-0.9238795042037964,0.19509032368659973,0.0,-0.9807852506637573,6.123234262925839e-17,0.0,-1.0,-0.19509032368659973,0.0,-0.9807852506637573,-0.3826834261417389,0.0,-0.9238795042037964,-0.5555702447891235,0.0,-0.8314695954322815,-0.7071067690849304,0.0,-0.7071067690849304,-0.8314695954322815,0.0,-0.5555702447891235,-0.9238795042037964,0.0,-0.3826834261417389,-0.9807852506637573,0.0,-0.19509032368659973,-1.0,0.0,-1.2246468525851679e-16,-0.9807852506637573,0.0,0.19509032368659973,-0.9238795042037964,0.0,0.3826834261417389,-0.8314695954322815,0.0,0.5555702447891235,-0.7071067690849304,0.0,0.7071067690849304,-0.5555702447891235,0.0,0.8314695954322815,-0.3826834261417389,0.0,0.9238795042037964,-0.19509032368659973,0.0,0.9807852506637573,-1.8369701465288538e-16,0.0,1.0,0.19509032368659973,0.0,0.9807852506637573,0.3826834261417389,0.0,0.9238795042037964,0.5555702447891235,0.0,0.8314695954322815,0.7071067690849304,0.0,0.7071067690849304,0.8314695954322815,0.0,0.5555702447891235,0.9238795042037964,0.0,0.3826834261417389,0.9807852506637573,0.0,0.19509032368659973,1.0,0.0,2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,-1.0,-0.0,-0.0,-0.9807852506637573,-0.0,0.19509032368659973,-0.9238795042037964,-0.0,0.3826834261417389,-0.8314695954322815,-0.0,0.5555702447891235,-0.7071067690849304,-0.0,0.7071067690849304,-0.5555702447891235,-0.0,0.8314695954322815,-0.3826834261417389,-0.0,0.9238795042037964,-0.19509032368659973,-0.0,0.9807852506637573,-6.123234262925839e-17,-0.0,1.0,0.19509032368659973,-0.0,0.9807852506637573,0.3826834261417389,-0.0,0.9238795042037964,0.5555702447891235,-0.0,0.8314695954322815,0.7071067690849304,-0.0,0.7071067690849304,0.8314695954322815,-0.0,0.5555702447891235,0.9238795042037964,-0.0,0.3826834261417389,0.9807852506637573,-0.0,0.19509032368659973,1.0,-0.0,1.2246468525851679e-16,0.9807852506637573,-0.0,-0.19509032368659973,0.9238795042037964,-0.0,-0.3826834261417389,0.8314695954322815,-0.0,-0.5555702447891235,0.7071067690849304,-0.0,-0.7071067690849304,0.5555702447891235,-0.0,-0.8314695954322815,0.3826834261417389,-0.0,-0.9238795042037964,0.19509032368659973,-0.0,-0.9807852506637573,1.8369701465288538e-16,-0.0,-1.0,-0.19509032368659973,-0.0,-0.9807852506637573,-0.3826834261417389,-0.0,-0.9238795042037964,-0.5555702447891235,-0.0,-0.8314695954322815,-0.7071067690849304,-0.0,-0.7071067690849304,-0.8314695954322815,-0.0,-0.5555702447891235,-0.9238795042037964,-0.0,-0.3826834261417389,-0.9807852506637573,-0.0,-0.19509032368659973,-1.0,-0.0,-2.4492937051703357e-16,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0],"outlineEdgeIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"outlinePositions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865476,0.7071067811865476,0.0,-0.7071067811865476,0.5555702330196023,0.0,-0.8314696123025452,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.28284271247461906,0.28284271247461906,2.0,-0.28284271247461906,0.22222809320784093,2.0,-0.3325878449210181,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0],"positions":[1.0,0.0,0.0,0.9807852804032304,0.0,-0.19509032201612825,0.9238795325112867,0.0,-0.3826834323650898,0.8314696123025452,0.0,-0.5555702330196022,0.7071067811865476,0.0,-0.7071067811865476,0.5555702330196023,0.0,-0.8314696123025452,0.38268343236508984,0.0,-0.9238795325112867,0.19509032201612833,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,-0.1950903220161282,0.0,-0.9807852804032304,-0.3826834323650897,0.0,-0.9238795325112867,-0.555570233019602,0.0,-0.8314696123025453,-0.7071067811865475,0.0,-0.7071067811865476,-0.8314696123025453,0.0,-0.5555702330196022,-0.9238795325112867,0.0,-0.3826834323650899,-0.9807852804032304,0.0,-0.1950903220161286,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,0.19509032201612836,-0.9238795325112868,0.0,0.38268343236508967,-0.8314696123025455,0.0,0.555570233019602,-0.7071067811865477,0.0,0.7071067811865475,-0.5555702330196022,0.0,0.8314696123025452,-0.38268343236509034,0.0,0.9238795325112865,-0.19509032201612866,0.0,0.9807852804032303,-1.8369701987210297e-16,0.0,1.0,0.1950903220161283,0.0,0.9807852804032304,0.38268343236509,0.0,0.9238795325112866,0.5555702330196018,0.0,0.8314696123025455,0.7071067811865474,0.0,0.7071067811865477,0.8314696123025452,0.0,0.5555702330196022,0.9238795325112865,0.0,0.3826834323650904,0.9807852804032303,0.0,0.19509032201612872,1.0,0.0,0.0,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,1.0,2.0,0.0,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,0.4,0.0,0.0,0.4,2.0,0.0,0.3923141121612922,2.0,-0.0780361288064513,0.36955181300451473,2.0,-0.15307337294603593,0.3325878449210181,2.0,-0.22222809320784087,0.28284271247461906,2.0,-0.28284271247461906,0.22222809320784093,2.0,-0.3325878449210181,0.15307337294603596,2.0,-0.36955181300451473,0.07803612880645133,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,-0.07803612880645128,2.0,-0.3923141121612922,-0.1530733729460359,2.0,-0.36955181300451473,-0.2222280932078408,2.0,-0.33258784492101817,-0.282842712474619,2.0,-0.28284271247461906,-0.33258784492101817,2.0,-0.22222809320784087,-0.36955181300451473,2.0,-0.15307337294603596,-0.3923141121612922,2.0,-0.07803612880645144,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,0.07803612880645135,-0.3695518130045148,2.0,0.15307337294603587,-0.3325878449210182,2.0,0.2222280932078408,-0.28284271247461906,2.0,0.282842712474619,-0.22222809320784087,2.0,0.3325878449210181,-0.15307337294603615,2.0,0.3695518130045146,-0.07803612880645147,2.0,0.39231411216129214,-7.347880794884119e-17,2.0,0.4,0.07803612880645133,2.0,0.3923141121612922,0.153073372946036,2.0,0.3695518130045147,0.22222809320784076,2.0,0.3325878449210182,0.28284271247461895,2.0,0.28284271247461906,0.3325878449210181,2.0,0.22222809320784087,0.3695518130045146,2.0,0.15307337294603618,0.39231411216129214,2.0,0.0780361288064515,0.4,2.0,0.0,1.0,0.0,0.0,0.9807852804032303,0.0,0.19509032201612872,0.9238795325112865,0.0,0.3826834323650904,0.8314696123025452,0.0,0.5555702330196022,0.7071067811865474,0.0,0.7071067811865477,0.5555702330196018,0.0,0.8314696123025455,0.38268343236509,0.0,0.9238795325112866,0.1950903220161283,0.0,0.9807852804032304,-1.8369701987210297e-16,0.0,1.0,-0.19509032201612866,0.0,0.9807852804032303,-0.38268343236509034,0.0,0.9238795325112865,-0.5555702330196022,0.0,0.8314696123025452,-0.7071067811865477,0.0,0.7071067811865475,-0.8314696123025455,0.0,0.555570233019602,-0.9238795325112868,0.0,0.38268343236508967,-0.9807852804032304,0.0,0.19509032201612836,-1.0,0.0,-1.2246467991473532e-16,-0.9807852804032304,0.0,-0.1950903220161286,-0.9238795325112867,0.0,-0.3826834323650899,-0.8314696123025453,0.0,-0.5555702330196022,-0.7071067811865475,0.0,-0.7071067811865476,-0.555570233019602,0.0,-0.8314696123025453,-0.3826834323650897,0.0,-0.9238795325112867,-0.1950903220161282,0.0,-0.9807852804032304,6.123233995736766e-17,0.0,-1.0,0.19509032201612833,0.0,-0.9807852804032304,0.38268343236508984,0.0,-0.9238795325112867,0.5555702330196023,0.0,-0.8314696123025452,0.7071067811865476,0.0,-0.7071067811865476,0.8314696123025452,0.0,-0.5555702330196022,0.9238795325112867,0.0,-0.3826834323650898,0.9807852804032304,0.0,-0.19509032201612825,0.4,0.0,0.0,0.3923141121612922,0.0,-0.0780361288064513,0.36955181300451473,0.0,-0.15307337294603593,0.3325878449210181,0.0,-0.22222809320784087,0.28284271247461906,0.0,-0.28284271247461906,0.22222809320784093,0.0,-0.3325878449210181,0.15307337294603596,0.0,-0.36955181300451473,0.07803612880645133,0.0,-0.3923141121612922,2.4492935982947065e-17,0.0,-0.4,-0.07803612880645128,0.0,-0.3923141121612922,-0.1530733729460359,0.0,-0.36955181300451473,-0.2222280932078408,0.0,-0.33258784492101817,-0.282842712474619,0.0,-0.28284271247461906,-0.33258784492101817,0.0,-0.22222809320784087,-0.36955181300451473,0.0,-0.15307337294603596,-0.3923141121612922,0.0,-0.07803612880645144,-0.4,0.0,-4.898587196589413e-17,-0.3923141121612922,0.0,0.07803612880645135,-0.3695518130045148,0.0,0.15307337294603587,-0.3325878449210182,0.0,0.2222280932078408,-0.28284271247461906,0.0,0.282842712474619,-0.22222809320784087,0.0,0.3325878449210181,-0.15307337294603615,0.0,0.3695518130045146,-0.07803612880645147,0.0,0.39231411216129214,-7.347880794884119e-17,0.0,0.4,0.07803612880645133,0.0,0.3923141121612922,0.153073372946036,0.0,0.3695518130045147,0.22222809320784076,0.0,0.3325878449210182,0.28284271247461895,0.0,0.28284271247461906,0.3325878449210181,0.0,0.22222809320784087,0.3695518130045146,0.0,0.15307337294603618,0.39231411216129214,0.0,0.0780361288064515,1.0,2.0,0.0,0.9807852804032304,2.0,-0.19509032201612825,0.9238795325112867,2.0,-0.3826834323650898,0.8314696123025452,2.0,-0.5555702330196022,0.7071067811865476,2.0,-0.7071067811865476,0.5555702330196023,2.0,-0.8314696123025452,0.38268343236508984,2.0,-0.9238795325112867,0.19509032201612833,2.0,-0.9807852804032304,6.123233995736766e-17,2.0,-1.0,-0.1950903220161282,2.0,-0.9807852804032304,-0.3826834323650897,2.0,-0.9238795325112867,-0.555570233019602,2.0,-0.8314696123025453,-0.7071067811865475,2.0,-0.7071067811865476,-0.8314696123025453,2.0,-0.5555702330196022,-0.9238795325112867,2.0,-0.3826834323650899,-0.9807852804032304,2.0,-0.1950903220161286,-1.0,2.0,-1.2246467991473532e-16,-0.9807852804032304,2.0,0.19509032201612836,-0.9238795325112868,2.0,0.38268343236508967,-0.8314696123025455,2.0,0.555570233019602,-0.7071067811865477,2.0,0.7071067811865475,-0.5555702330196022,2.0,0.8314696123025452,-0.38268343236509034,2.0,0.9238795325112865,-0.19509032201612866,2.0,0.9807852804032303,-1.8369701987210297e-16,2.0,1.0,0.1950903220161283,2.0,0.9807852804032304,0.38268343236509,2.0,0.9238795325112866,0.5555702330196018,2.0,0.8314696123025455,0.7071067811865474,2.0,0.7071067811865477,0.8314696123025452,2.0,0.5555702330196022,0.9238795325112865,2.0,0.3826834323650904,0.9807852804032303,2.0,0.19509032201612872,0.4,2.0,0.0,0.39231411216129214,2.0,0.0780361288064515,0.3695518130045146,2.0,0.15307337294603618,0.3325878449210181,2.0,0.22222809320784087,0.28284271247461895,2.0,0.28284271247461906,0.22222809320784076,2.0,0.3325878449210182,0.153073372946036,2.0,0.3695518130045147,0.07803612880645133,2.0,0.3923141121612922,-7.347880794884119e-17,2.0,0.4,-0.07803612880645147,2.0,0.39231411216129214,-0.15307337294603615,2.0,0.3695518130045146,-0.22222809320784087,2.0,0.3325878449210181,-0.28284271247461906,2.0,0.282842712474619,-0.3325878449210182,2.0,0.2222280932078408,-0.3695518130045148,2.0,0.15307337294603587,-0.3923141121612922,2.0,0.07803612880645135,-0.4,2.0,-4.898587196589413e-17,-0.3923141121612922,2.0,-0.07803612880645144,-0.36955181300451473,2.0,-0.15307337294603596,-0.33258784492101817,2.0,-0.22222809320784087,-0.282842712474619,2.0,-0.28284271247461906,-0.2222280932078408,2.0,-0.33258784492101817,-0.1530733729460359,2.0,-0.36955181300451473,-0.07803612880645128,2.0,-0.3923141121612922,2.4492935982947065e-17,2.0,-0.4,0.07803612880645133,2.0,-0.3923141121612922,0.15307337294603596,2.0,-0.36955181300451473,0.22222809320784093,2.0,-0.3325878449210181,0.28284271247461906,2.0,-0.28284271247461906,0.3325878449210181,2.0,-0.22222809320784087,0.36955181300451473,2.0,-0.15307337294603593,0.3923141121612922,2.0,-0.0780361288064513],"revision":0,"triangleFaceIds":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/validity/builder-annular-cylinder.json b/main/opengeometry/tests/fixtures/cases/validity/builder-annular-cylinder.json index 3cb65889..77f38b8b 100644 --- a/main/opengeometry/tests/fixtures/cases/validity/builder-annular-cylinder.json +++ b/main/opengeometry/tests/fixtures/cases/validity/builder-annular-cylinder.json @@ -1 +1 @@ -{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"annular-cylinder","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,2.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,2.0,0.0],"tolerance":1e-8}],"wires":[]}} \ No newline at end of file +{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"annular-cylinder","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"annular-cylinder","entity":"annular-cylinder","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,2.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,2.0,0.0],"tolerance":1e-8}],"wires":[]}} \ No newline at end of file diff --git a/main/opengeometry/tests/fixtures/cases/validity/builder-cylinder-with-hole.json b/main/opengeometry/tests/fixtures/cases/validity/builder-cylinder-with-hole.json index ae57a757..b27bab0c 100644 --- a/main/opengeometry/tests/fixtures/cases/validity/builder-cylinder-with-hole.json +++ b/main/opengeometry/tests/fixtures/cases/validity/builder-cylinder-with-hole.json @@ -1 +1 @@ -{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"cylinder-with-hole","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Forward"},"id":4,"loop_ref":1,"next":5,"prev":7,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Forward"},"id":5,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Reverse"},"id":6,"loop_ref":1,"next":7,"prev":5,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Reverse"},"id":7,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Reverse"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Forward"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,2.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,2.0,0.0],"tolerance":1e-8}],"wires":[]}} \ No newline at end of file +{"accuracy":{"exchange":1e-6,"geometric":1e-8,"intersection":1e-9,"tessellation":0.01},"geometry":{"curves":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Circle","radius":0.4},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[1.0,0.0,0.0]},{"direction":[0.0,1.0,0.0],"kind":"Line","origin":[0.4,0.0,0.0]}],"intersections":[],"pcurves":[{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,0.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[6.283185307179586,0.0]},{"direction":[1.0,0.0],"kind":"Line2","origin":[0.0,2.0]},{"direction":[0.0,1.0],"kind":"Line2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,-1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,-0.4],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[1.0,0.0],"axis_b":[0.0,1.0],"kind":"Conic2","origin":[0.0,0.0]},{"axis_a":[0.4,0.0],"axis_b":[0.0,0.4],"kind":"Conic2","origin":[0.0,0.0]}],"surfaces":[{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":1.0},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Cylinder","radius":0.4},{"frame":{"origin":[0.0,0.0,0.0],"x":[1.0,0.0,0.0],"y":[-0.0,-0.0,1.0],"z":[-0.0,-1.0,-0.0]},"kind":"Plane"},{"frame":{"origin":[0.0,2.0,0.0],"x":[1.0,0.0,0.0],"y":[0.0,0.0,-1.0],"z":[0.0,1.0,0.0]},"kind":"Plane"}]},"id":"cylinder-with-hole","quality":{"kind":"Analytic"},"revision":0,"schema_version":2,"solids":[{"cavity_shells":[],"outer_shell":0}],"topology":{"edges":[{"chart_seam":false,"geometry":{"curve":0,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":0,"id":0,"tolerance":1e-8,"twin_halfedge":8},{"chart_seam":false,"geometry":{"curve":1,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":2,"id":1,"tolerance":1e-8,"twin_halfedge":10},{"chart_seam":false,"geometry":{"curve":2,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":4,"id":2,"tolerance":1e-8,"twin_halfedge":9},{"chart_seam":false,"geometry":{"curve":3,"kind":"Curve","range":{"hi":6.283185307179586,"lo":0.0}},"halfedge":6,"id":3,"tolerance":1e-8,"twin_halfedge":11},{"chart_seam":true,"geometry":{"curve":4,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":1,"id":4,"tolerance":1e-8,"twin_halfedge":3},{"chart_seam":true,"geometry":{"curve":5,"kind":"Curve","range":{"hi":2.0,"lo":0.0}},"halfedge":5,"id":5,"tolerance":1e-8,"twin_halfedge":7}],"faces":[{"id":0,"key":"outer","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":0,"key":"outer"}]},"sense":"Forward","shell_ref":0,"surface":0,"trim":{"chart":0,"holes":[],"outer":0,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":1,"key":"inner","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":1,"key":"inner"}]},"sense":"Reverse","shell_ref":0,"surface":1,"trim":{"chart":0,"holes":[],"outer":1,"uv_bounds":[{"hi":6.283185307179586,"lo":0.0},{"hi":2.0,"lo":0.0}]}},{"id":2,"key":"lower_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":2,"key":"lower_cap"}]},"sense":"Forward","shell_ref":0,"surface":2,"trim":{"chart":0,"holes":[3],"outer":2,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}},{"id":3,"key":"upper_cap","provenance":{"reversed":false,"role":"Authored","sources":[{"body":"cylinder-with-hole","entity":"cylinder-with-hole","face":3,"key":"upper_cap"}]},"sense":"Forward","shell_ref":0,"surface":3,"trim":{"chart":0,"holes":[5],"outer":4,"uv_bounds":[{"hi":1.0,"lo":-1.0},{"hi":1.0,"lo":-1.0}]}}],"halfedges":[{"edge":0,"face":0,"from":0,"geometry_use":{"pcurve":0,"periodic_lift":[0,0],"sense":"Forward"},"id":0,"loop_ref":0,"next":1,"prev":3,"to":0,"twin":8,"wire_ref":null},{"edge":4,"face":0,"from":0,"geometry_use":{"pcurve":1,"periodic_lift":[0,0],"sense":"Forward"},"id":1,"loop_ref":0,"next":2,"prev":0,"to":1,"twin":3,"wire_ref":null},{"edge":1,"face":0,"from":1,"geometry_use":{"pcurve":2,"periodic_lift":[0,0],"sense":"Reverse"},"id":2,"loop_ref":0,"next":3,"prev":1,"to":1,"twin":10,"wire_ref":null},{"edge":4,"face":0,"from":1,"geometry_use":{"pcurve":3,"periodic_lift":[0,0],"sense":"Reverse"},"id":3,"loop_ref":0,"next":0,"prev":2,"to":0,"twin":1,"wire_ref":null},{"edge":2,"face":1,"from":2,"geometry_use":{"pcurve":4,"periodic_lift":[0,0],"sense":"Reverse"},"id":4,"loop_ref":1,"next":7,"prev":5,"to":2,"twin":9,"wire_ref":null},{"edge":5,"face":1,"from":3,"geometry_use":{"pcurve":5,"periodic_lift":[0,0],"sense":"Reverse"},"id":5,"loop_ref":1,"next":4,"prev":6,"to":2,"twin":7,"wire_ref":null},{"edge":3,"face":1,"from":3,"geometry_use":{"pcurve":6,"periodic_lift":[0,0],"sense":"Forward"},"id":6,"loop_ref":1,"next":5,"prev":7,"to":3,"twin":11,"wire_ref":null},{"edge":5,"face":1,"from":2,"geometry_use":{"pcurve":7,"periodic_lift":[0,0],"sense":"Forward"},"id":7,"loop_ref":1,"next":6,"prev":4,"to":3,"twin":5,"wire_ref":null},{"edge":0,"face":2,"from":0,"geometry_use":{"pcurve":8,"periodic_lift":[0,0],"sense":"Reverse"},"id":8,"loop_ref":2,"next":8,"prev":8,"to":0,"twin":0,"wire_ref":null},{"edge":2,"face":2,"from":2,"geometry_use":{"pcurve":9,"periodic_lift":[0,0],"sense":"Forward"},"id":9,"loop_ref":3,"next":9,"prev":9,"to":2,"twin":4,"wire_ref":null},{"edge":1,"face":3,"from":1,"geometry_use":{"pcurve":10,"periodic_lift":[0,0],"sense":"Forward"},"id":10,"loop_ref":4,"next":10,"prev":10,"to":1,"twin":2,"wire_ref":null},{"edge":3,"face":3,"from":3,"geometry_use":{"pcurve":11,"periodic_lift":[0,0],"sense":"Reverse"},"id":11,"loop_ref":5,"next":11,"prev":11,"to":3,"twin":6,"wire_ref":null}],"loops":[{"face_ref":0,"id":0,"is_hole":false,"start_halfedge":0},{"face_ref":1,"id":1,"is_hole":false,"start_halfedge":4},{"face_ref":2,"id":2,"is_hole":false,"start_halfedge":8},{"face_ref":2,"id":3,"is_hole":true,"start_halfedge":9},{"face_ref":3,"id":4,"is_hole":false,"start_halfedge":10},{"face_ref":3,"id":5,"is_hole":true,"start_halfedge":11}],"shells":[{"faces":[0,1,2,3],"id":0,"is_closed":true}],"vertices":[{"id":0,"outgoing_halfedge":0,"position":[1.0,0.0,0.0],"tolerance":1e-8},{"id":1,"outgoing_halfedge":2,"position":[1.0,2.0,0.0],"tolerance":1e-8},{"id":2,"outgoing_halfedge":4,"position":[0.4,0.0,0.0],"tolerance":1e-8},{"id":3,"outgoing_halfedge":6,"position":[0.4,2.0,0.0],"tolerance":1e-8}],"wires":[]}} \ No newline at end of file diff --git a/main/opengeometry/tests/primitives.rs b/main/opengeometry/tests/primitives.rs index e6a03995..09203007 100644 --- a/main/opengeometry/tests/primitives.rs +++ b/main/opengeometry/tests/primitives.rs @@ -279,6 +279,8 @@ fn surface_kinds(body: &BrepEnvelope) -> Vec<&'static str> { SurfaceGeometry::Cylinder { .. } => "cylinder", SurfaceGeometry::Cone { .. } => "cone", SurfaceGeometry::Torus { .. } => "torus", + SurfaceGeometry::Wrapped { .. } => "wrapped", + SurfaceGeometry::Conoid { .. } => "conoid", }) .collect::>(); kinds.sort(); diff --git a/main/opengeometry/tests/public_brep_builder.rs b/main/opengeometry/tests/public_brep_builder.rs new file mode 100644 index 00000000..a8f8e15a --- /dev/null +++ b/main/opengeometry/tests/public_brep_builder.rs @@ -0,0 +1,142 @@ +use opengeometry::brep::{ + plane_boundary, Builder, CurveGeometry, Frame3, GeometryError, Orientation, SurfaceGeometry, +}; +use opengeometry::exchange::export_step; +use opengeometry::math::{Interval, Point3}; +use opengeometry::query::{classify_point, PointClassification}; +use opengeometry_test_support::accuracy::accuracy; +use opengeometry_test_support::volume::estimate; + +const FACES: [(&str, [usize; 4], Point3); 6] = [ + ("bottom", [0, 2, 3, 1], [0.0, 0.0, -1.0]), + ("top", [4, 5, 7, 6], [0.0, 0.0, 1.0]), + ("left", [0, 4, 6, 2], [-1.0, 0.0, 0.0]), + ("right", [1, 3, 7, 5], [1.0, 0.0, 0.0]), + ("front", [0, 1, 5, 4], [0.0, -1.0, 0.0]), + ("back", [2, 6, 7, 3], [0.0, 1.0, 0.0]), +]; + +fn sub(a: Point3, b: Point3) -> Point3 { + [a[0] - b[0], a[1] - b[1], a[2] - b[2]] +} + +fn dot(a: Point3, b: Point3) -> f64 { + a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +} + +fn corners(size: Point3) -> Vec { + (0..8) + .map(|i| { + std::array::from_fn(|axis| { + if i & (1 << axis) == 0 { + 0.0 + } else { + size[axis] + } + }) + }) + .collect() +} + +fn box_edges(builder: &mut Builder, points: &[Point3], size: Point3) -> [[u32; 3]; 8] { + let axes = [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]; + let mut edges = [[u32::MAX; 3]; 8]; + for i in 0..8 { + for axis in (0..3).filter(|axis| i & (1 << axis) == 0) { + let line = CurveGeometry::Line { + origin: points[i], + direction: axes[axis], + }; + edges[i][axis] = builder.edge(line, Interval::new(0.0, size[axis]).unwrap(), false); + } + } + edges +} + +fn box_builder(size: Point3) -> Result<(Builder, Vec), GeometryError> { + let mut builder = Builder::new("box".into(), accuracy(1e-6))?; + let points = corners(size); + for point in &points { + builder.vertex(*point); + } + let edges = box_edges(&mut builder, &points, size); + let mut faces = Vec::new(); + for (key, corner, normal) in FACES { + let x = sub(points[corner[1]], points[corner[0]]); + let frame = Frame3::from_axis(points[corner[0]], normal, x)?; + let mut uses = Vec::new(); + let mut uv = Vec::new(); + for i in 0..4 { + let (from, to) = (corner[i], corner[(i + 1) % 4]); + let axis = (from ^ to).trailing_zeros() as usize; + let sense = if from < to { + Orientation::Forward + } else { + Orientation::Reverse + }; + let edge = edges[from.min(to)][axis]; + uses.push(plane_boundary( + &builder, + frame, + edge, + from as u32, + to as u32, + sense, + )?); + let local = sub(points[from], frame.origin); + uv.push([dot(local, frame.x), dot(local, frame.y)]); + } + let bounds = std::array::from_fn(|axis| { + let values = uv.iter().map(|point| point[axis]); + let lo = values.clone().fold(f64::INFINITY, f64::min); + [lo - 1e-7, values.fold(f64::NEG_INFINITY, f64::max) + 1e-7] + }); + faces.push(builder.face(key, SurfaceGeometry::Plane { frame }, bounds, uses)?); + } + Ok((builder, faces)) +} + +#[test] +fn a_box_built_through_the_public_builder_is_a_valid_exportable_solid() { + let (builder, faces) = box_builder([2.0, 3.0, 4.0]).unwrap(); + assert_eq!(faces, [0, 1, 2, 3, 4, 5]); + assert_eq!(builder.brep().topology.faces.len(), 6); + let brep = builder.finish_solid().unwrap(); + brep.validate().unwrap(); + assert_eq!(brep.topology.edges.len(), 12); + assert_eq!(brep.topology.halfedges.len(), 24); + let volume = estimate(&brep, 1e-3); + assert!((volume.value - 24.0).abs() <= volume.error_bound.max(1e-9)); + let inside = classify_point(&brep, [1.0, 1.5, 2.0]).unwrap(); + assert_eq!(inside, PointClassification::Inside); + let outside = classify_point(&brep, [3.0, 1.5, 2.0]).unwrap(); + assert_eq!(outside, PointClassification::Outside); + let (step, _) = export_step(&brep, "millimetre").unwrap(); + assert_eq!(step.matches("=ADVANCED_FACE(").count(), 6); +} + +#[test] +fn a_face_sense_is_set_by_face_id() { + let (mut builder, faces) = box_builder([1.0, 1.0, 1.0]).unwrap(); + let top = [0.5, 0.5, 1.0]; + let normal = |builder: &Builder| builder.brep().face_normal_at(faces[1], top).unwrap(); + assert!((normal(&builder)[2] - 1.0).abs() < 1e-12); + builder + .set_face_sense(faces[1], Orientation::Reverse) + .unwrap(); + assert!((normal(&builder)[2] + 1.0).abs() < 1e-12); + assert!(matches!( + builder.set_face_sense(6, Orientation::Reverse), + Err(GeometryError::MissingReference { .. }) + )); +} + +#[test] +fn an_edge_used_by_a_third_loop_is_rejected() { + let (mut builder, _) = box_builder([1.0, 1.0, 1.0]).unwrap(); + let frame = Frame3::from_axis([0.0; 3], [0.0, 0.0, -1.0], [0.0, 1.0, 0.0]).unwrap(); + let reuse = plane_boundary(&builder, frame, 0, 0, 1, Orientation::Forward).unwrap(); + let plane = SurfaceGeometry::Plane { frame }; + let result = builder.face("extra", plane, [[-1.0, 1.0], [-1.0, 1.0]], vec![reuse]); + assert!(matches!(result, Err(GeometryError::InvalidTopology(_)))); +}