brep: a budget of 4,000,000 items, pcurves included

Schema 4 counts every pcurve's control points as items, which schema 3 had
none of, so a body that fitted the old 1,000,000 no longer does (a STEP
plate of 50k faces). The binary envelope's own caps on bytes, values and
entries per collection still bound a body.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWhMwdqJYQKQq8RCLSL1LT
This commit is contained in:
jyviko
2026-10-21 01:55:38 -04:00
parent 91e482fc8a
commit 8f31c088f4
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ mod topology;
pub use curve2::Curve2;
pub const VERSION: u32 = 4;
pub const MAX_ITEMS: usize = 1_000_000;
pub const MAX_ITEMS: usize = 4_000_000;
pub const MAX_SHELLS: usize = 1024;
const MAX_DEPTH: usize = 16;
const TAU: f64 = std::f64::consts::TAU;
+1 -1
View File
@@ -171,7 +171,7 @@ by lifting it; everything else is a cubic B-spline fitted within the tolerance.
## Validation and trust
`Brep::validate` checks structure and resources without a kernel. It caps 1,024
shells, 1,000,000 combined topology and geometry items, geometry nesting at 16,
shells, 4,000,000 combined topology and geometry items (pcurve control points included), geometry nesting at 16,
spline degree at 16 and control points per spline direction at 4,096. Numbers
must be finite and at most 1e12 in magnitude. It checks knot order, active spline
domains, multiplicities, rectangular grids, positive rational weights,