This commit is contained in:
2026-09-16 00:00:49 +08:00
parent 1a75503105
commit bfa3106a69
60 changed files with 696 additions and 268 deletions
@@ -120,6 +120,22 @@ mirrors <code>RemoveBySweepingVolume</code> — the geometry-layer symmetric poi
no deposition step in the machining runner yet, so this is a geometry-level API only.</li>
<li><strong><a class="xref" href="../../api/Hi.Milling.FluteContours.FreeformBottomContour.html">FreeformBottomContour</a></strong> is the user-editable point-list bottom
contour, mirroring the side contour with the key axis switched to radius.</li>
<li><strong>A host with no usable OpenGL no longer aborts the process.</strong> The native display initialiser
used to end the whole process when the GL loader failed — before any NC play, physics or training,
none of which need GL — which is what made every service on a machine whose graphics driver and
kernel module disagree unstartable, and kept it dead until the driver was fixed. It now reports
and returns; <a class="xref" href="../../api/Hi.Disp.DispEngine.html#Hi_Disp_DispEngine_IsGlAvailable">IsGlAvailable</a> carries the verdict, <code>ContextProjDepth</code> reads
0 in that state, and HiNc logs one line at startup saying so. The contract is that a host must
not obtain a <a class="xref" href="../../api/Hi.Disp.DispEngine.html">DispEngine</a> while <code>IsGlAvailable</code> is <code>false</code>, rather than guard
individual draw calls.</li>
<li><strong>The cube tree folds a re-cut flat region again.</strong> A comparison in the simplification gate had
been inverted since 2023: it demanded the marching-cubes ambiguous face pattern instead of
forbidding it, so almost no cell reached the reproduction test and a floor roughened by one pass
and re-cut flat by a later one stayed at its finest level for the life of the tree. 128 of the 256
corner masks now pass, the 1e-9 reproduction test behind the gate is unchanged. On a 1000-move CL
replay the node count drops 17% and the peak working set 8%. Because folds are now routine, the
meshed-geometry writer and the fly-piece remover tolerate a child array folded away under them
while a cut runs on another thread — a snapshot taken mid-cut stays torn, but no longer crashes.</li>
</ul>
</article>