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:
1 parent
98c2c8e1c5
commit
fa4417aad0
7 files changed
+545
-5
No files matched your search
@@ -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
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user