wip(l59): open helix shaft (ledge open to the core) -- PARKED: jagged inner ramp edge, audit ROI missed it
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
6c6cc37e1d
commit
54ba1b49ab
17 files changed
+1167
-172
No files matched your search
@@ -1032,8 +1032,9 @@ namespace
|
||||
constexpr double FloorToSoffit=2.6;
|
||||
constexpr double Pitch=5.0;
|
||||
constexpr int Turns=4;
|
||||
constexpr double RampSupportDepth=1.0;
|
||||
constexpr double FloorBlend=1.9;
|
||||
constexpr double FeatureUnionBlend=0.05;
|
||||
constexpr double FeatureUnionBlend=1.0;
|
||||
constexpr double CorridorSpacing=14.0;
|
||||
constexpr double MazeCellSpan=16.0;
|
||||
constexpr double RouteGradeLimit=13.0;
|
||||
@@ -1053,7 +1054,7 @@ namespace
|
||||
{for(int byte=0;byte<8;++byte){hash^=static_cast<std::uint8_t>(word>>(byte*8));hash*=1099511628211ull;}};
|
||||
addWord(static_cast<std::uint32_t>(seed));
|
||||
addWord(static_cast<std::uint32_t>(latticeStrateIndex));
|
||||
addWord(1);
|
||||
addWord(NativeLatticeFieldRecipeVersion);
|
||||
for(unsigned char value:stableId){hash^=value;hash*=1099511628211ull;}
|
||||
hash^=hash>>30;hash*=0xbf58476d1ce4e5b9ull;
|
||||
hash^=hash>>27;hash*=0x94d049bb133111ebull;
|
||||
@@ -1083,7 +1084,8 @@ namespace
|
||||
edge.boreRadiusMicrometres=1500000;
|
||||
edge.boreHeightMicrometres=static_cast<std::int64_t>(
|
||||
std::llround(FloorToSoffit*1.0e6));
|
||||
edge.floorSupportDepthMicrometres=1000000;
|
||||
edge.floorSupportDepthMicrometres=static_cast<std::int64_t>(
|
||||
std::llround(RampSupportDepth*1.0e6));
|
||||
edge.smoothWidthMicrometres=static_cast<std::int64_t>(std::llround(FloorBlend*1.0e6));
|
||||
edge.unionWidthMicrometres=static_cast<std::int64_t>(
|
||||
std::llround(FeatureUnionBlend*1.0e6));
|
||||
@@ -1121,6 +1123,26 @@ namespace
|
||||
helixEnd[1]+orphanOffset[1],helixEnd[2]});
|
||||
const std::string departureRoomId="lattice/spine/departure-room-v1";
|
||||
addRoom(departureRoomId,{departure[0],departure[1],departureFloor});
|
||||
constexpr double ShaftCoreRadius=CenterlineRadius-ClearWidth*0.5;
|
||||
constexpr double ShaftCoreBottomExtension=2.0;
|
||||
constexpr double ShaftCoreTopExtension=8.0;
|
||||
const double shaftCoreBottom=helixEndFloor-ShaftCoreBottomExtension;
|
||||
const double shaftCoreTop=helixStart[2]+ShaftCoreTopExtension;
|
||||
ResolvedCavernRoomV1 shaftCore;
|
||||
shaftCore.stableId="lattice/spine/shaft-core-v2";
|
||||
shaftCore.strateIndex=latticeStrateIndex;
|
||||
shaftCore.centerMicrometres=micronPoint({
|
||||
helixCenter[0]+orphanOffset[0],helixCenter[1]+orphanOffset[1],
|
||||
(shaftCoreBottom+shaftCoreTop)*0.5});
|
||||
shaftCore.halfExtentsMicrometres={
|
||||
static_cast<std::int64_t>(std::llround(ShaftCoreRadius*1.0e6)),
|
||||
static_cast<std::int64_t>(std::llround(ShaftCoreRadius*1.0e6)),
|
||||
static_cast<std::int64_t>(std::llround((shaftCoreTop-shaftCoreBottom)*0.5e6))};
|
||||
shaftCore.floorMicrometres=static_cast<std::int64_t>(
|
||||
std::llround(shaftCoreBottom*1.0e6));
|
||||
shaftCore.smoothWidthMicrometres=0;
|
||||
shaftCore.unionWidthMicrometres=0;
|
||||
rooms.push_back(std::move(shaftCore));
|
||||
edges.push_back(addEdge("lattice/spine/00-arrival-portal-v1",
|
||||
arrivals.front()->stableId+"/lower-mouth",arrivalRoomId,
|
||||
{{arrival[0],arrival[1],arrivalFloor},helixStart}));
|
||||
@@ -1220,9 +1242,14 @@ namespace
|
||||
std::printf("[LatticeResolvedMouths] arrival=%s side=lower xyz_m=(%.3f,%.3f,%.3f) departure=%s side=upper xyz_m=(%.3f,%.3f,%.3f) binding=actual-resolved status=PASS\n",
|
||||
arrivals.front()->stableId.c_str(),arrival[0],arrival[1],arrival[2],
|
||||
departures.front()->stableId.c_str(),departure[0],departure[1],departure[2]);
|
||||
std::printf("[LatticeSpinePlan] recipe=Core.Lattice.PrimitiveField version=1 strate=%d stable_key=seed,strate,recipe_version,stable_id spine_first=true arrival=%s departure=%s helix_id=lattice/spine/01-helix-ramp-v1 centerline_radius_m=%.3f clear_width_m=%.3f pitch_m=%.3f turns=%d floor_to_soffit_m=%.3f centerline_grade_deg=%.3f inner_edge_grade_deg=%.3f floor_blend_m=%.3f union_envelope_m=%.3f maze_cells=%d dead_ends=2 orphan_control=%s status=PASS\n",
|
||||
std::printf("[LatticeSpinePlan] recipe=Core.Lattice.PrimitiveField version=%u strate=%d stable_key=seed,strate,recipe_version,stable_id spine_first=true arrival=%s departure=%s helix_id=lattice/spine/01-helix-ramp-v1 shaft_core_id=%s shaft_core_radius_m=%.3f centerline_radius_m=%.3f clear_width_m=%.3f pitch_m=%.3f turns=%d inner_edge_margin_m=%.3f capsule_drop_clearance_m=%.3f support_depth_m=%.3f ramp_vertical_clearance_m=%.3f shaft_outer_envelope_m=%.3f maze_headroom_m=%.3f centerline_grade_deg=%.3f inner_edge_grade_deg=%.3f floor_blend_m=%.3f union_envelope_m=%.3f maze_cells=%d dead_ends=2 orphan_control=%s status=PASS\n",
|
||||
NativeLatticeFieldRecipeVersion,
|
||||
latticeStrateIndex,arrivals.front()->stableId.c_str(),departures.front()->stableId.c_str(),
|
||||
CenterlineRadius,ClearWidth,Pitch,Turns,FloorToSoffit,centerlineGrade,innerEdgeGrade,
|
||||
"lattice/spine/shaft-core-v2",ShaftCoreRadius,CenterlineRadius,ClearWidth,Pitch,Turns,
|
||||
CenterlineRadius-ShaftCoreRadius,CenterlineRadius-ShaftCoreRadius-0.34,
|
||||
RampSupportDepth,Pitch-RampSupportDepth,
|
||||
2.0*(CenterlineRadius+ClearWidth*0.5+3.0),
|
||||
FloorToSoffit,centerlineGrade,innerEdgeGrade,
|
||||
FloorBlend,FeatureUnionBlend,routeEdges+1,orphanControl?"enabled":"disabled");
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user