kernel: certified prism comparison reads the schema 4 record

certified_prism_equivalent proves two bodies the same uniform prism from their records
(crate::native::brep_record): caps are the planar faces square to a candidate direction,
their outward side from the shell's oriented faces, their loops run about the outward
normal and read by prism_curve; walls are planes, cylinders (their axial extent from the
face's domain), revolutions of a line or ruled spline nets, each bounded as before. The
interval arithmetic, loop matching and separation proof are unchanged. Tests build their
altered bodies by editing the record (a wall's surface swapped or moved, a cap plane's
origin moved far away) instead of truck faces, with the same assertions.

(not built: base in progress)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
This commit is contained in:
jyviko
2026-10-22 00:45:44 -04:00
parent da24f8ae29
commit 6a68571242
2 changed files with 540 additions and 453 deletions
+2 -2
View File
@@ -608,8 +608,8 @@ mod tests {
let ends = [at(c, interval[0]), at(c, interval[1])];
Run { curve: c, interval, forward, ends: if forward { ends } else { [ends[1], ends[0]] } }
}
/// The quarter circle of radius 10 about the origin from +x to +y, as truck's circle arcs
/// were: a rational quadratic spline.
/// The quarter circle of radius 10 about the origin from +x to +y, as a rational quadratic
/// spline.
fn quarter() -> Curve {
let w = std::f64::consts::FRAC_1_SQRT_2;
Curve::RationalSpline { knots: bezier_knots(2), homogeneous: vec![[10., 0., 0., 1.], [10. * w, 10. * w, 0., w], [0., 10., 0., 1.]] }
File diff suppressed because it is too large Load Diff