core: outside-influence fast path for swept samples (L138, output = v236)

Column-cache census matches assembler/world (the L77 share rise was relative, not more calls). Reuses the TN
predicate and skips relief/mouth/shell work for stamped samples outside the 1.053 m influence. vs assembler/world:
whole view -0.5..-4.0% on all layers; near-ready Surface World +0.3/+1.7, Floating Islands -4.3/+2.9, Tunnel Network
-2.5/+2.9, Vertical Shafts +4.7/+3.3 (A/A ±1%). 16/16 seeds, fast tier, Clang/GCC green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-11-01 04:10:56 +01:00
1 parent 98c2c8e1c5
commit fa4417aad0
7 files changed
+545 -5

No files matched your search

+15 -5
View File
@@ -1313,11 +1313,7 @@ public:
const bool passageTargetsNativeCaveField=queryStratum&&queryStratum->Resolved
&&queryStratum->Resolved->passageCapabilities.hasNativeCaveField
&&passage.lowerStrateIndex==queryStratum->StrateIndex;
const bool passageTargetsPlannedTunnelNetwork=queryStratum
&&queryStratum->Resolved
&&queryStratum->Resolved->generatorKind=="TunnelNetwork"
&&queryStratum->Resolved->recipeId=="Core.Caves.PrimitiveField"
&&queryStratum->Resolved->recipeVersion==1;
const bool passageTargetsPlannedTunnelNetwork=plannedTunnelStratum;
const double mouthShellBlendMetres=passageTargetsPlannedTunnelNetwork
?2.0:MouthShellBlendMetres;
// Legacy native cave fields own the floor and mouth carve on their
@@ -1348,6 +1344,20 @@ public:
nearest.floorT=swept->floorT;
nearest.valid=true;
nearest.swept=swept;
if(!swept->hasExactContribution)
{
// The prepared sentinel is farther from the route than the
// maximum body, relief, shell, and blend support. Preserve its
// exact flat distance in the passage union; its wall and floor
// shell bounds are positive, so the rest of the composer has
// no effect for this passage sample.
const double outsideDistance=PassageFlatBottomDistance(
static_cast<float>(swept->roundSignedDistance),
swept->floorCenterZSubvoxels,qz,
swept->floorDepthSubvoxels,qPerMetre);
unionDistance=std::min(unionDistance,outsideDistance);
continue;
}
}
else
{