fix: preserve stepped PDF dimensions

Issue: #484
User-Visible: yes
This commit is contained in:
Matysh
2026-09-07 21:05:57 +03:00
parent 66f7bdd0aa
commit e88ef93c3c
55 changed files with 775 additions and 480 deletions
+23
View File
@@ -440,6 +440,29 @@ const MUTANT_DEFINITIONS = [
replace: ' if (isSolid(start) || isSolid(midpoint) || isSolid(end)) return true;',
}],
},
{
id: 'pdf-own-exit-prefix-disabled',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="external dimension extension" test/pdf-collision.test.mjs',
because: 'a stepped-facade extension must be allowed to leave the contiguous solid prefix at its own source corner',
patches: [{
file: 'src/pdf/pdf-collision.ts',
find: ' if (options.allowStartExit) {',
replace: ' if (false && options.allowStartExit) {',
}],
},
{
id: 'pdf-post-exit-collision-ignored',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="external dimension extension" test/pdf-collision.test.mjs',
because: 'after an extension reaches free space every later wall crossing or tangent contact must still reject that lane',
patches: [{
file: 'src/pdf/pdf-collision.ts',
find: ' return hits.some((hit) => hit.t > exitT! + parameterEpsilon\n'
+ ' || hit.endT > exitT! + parameterEpsilon);',
replace: ' return false;',
}],
},
{
id: 'pdf-near-axis-extension-starts-at-projection',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '