This commit is contained in:
2026-09-09 17:35:23 +08:00
parent 2a98ae7556
commit 161af68fe3
1271 changed files with 58251 additions and 98639 deletions
@@ -103,7 +103,7 @@ Provides thread-safe access to geometry data and caching mechanisms.</p>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Solid : IGetTriTree, ICollidable, IGetCollidable, IDisplayee, IExpandToBox3d, IStlSource, IGetStl, IPolarResolution2dSourceProperty, IDisposable, IMakeXmlSource, IGetSolid, IUpdateByContent, IClearCache</code></pre>
<pre><code class="lang-csharp hljs">public class Solid : IGetTriTree, ICollidable, IGetCollidable, IDisplayee, IExpandToBox3d, IStlSource, IGetStl, IDisposable, IMakeXmlSource, IGetSolid, IUpdateByContent, IClearCache</code></pre>
</div>
@@ -127,7 +127,6 @@ Provides thread-safe access to geometry data and caching mechanisms.</p>
<div><a class="xref" href="Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
<div><a class="xref" href="Hi.Geom.IStlSource.html">IStlSource</a></div>
<div><a class="xref" href="Hi.Geom.IGetStl.html">IGetStl</a></div>
<div><a class="xref" href="Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html">IPolarResolution2dSourceProperty</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
<div><a class="xref" href="Hi.Common.XmlUtils.IMakeXmlSource.html">IMakeXmlSource</a></div>
<div><a class="xref" href="Hi.NcMech.Solids.IGetSolid.html">IGetSolid</a></div>
@@ -269,6 +268,44 @@ Provides thread-safe access to geometry data and caching mechanisms.</p>
<a id="Hi_NcMech_Solids_Solid__ctor_" data-uid="Hi.NcMech.Solids.Solid.#ctor*"></a>
<h3 id="Hi_NcMech_Solids_Solid__ctor_Hi_Geom_IGetStl_Hi_Geom_Resolution_PolarResolution2d_" data-uid="Hi.NcMech.Solids.Solid.#ctor(Hi.Geom.IGetStl,Hi.Geom.Resolution.PolarResolution2d)">
Solid(IGetStl, PolarResolution2d)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.NcMech.Solids.Solid.html">Solid</a> class with the
specified STL geometry source and the mesh resolution the solid is born
with (see <a class="xref" href="Hi.NcMech.Solids.Solid.html#Hi_NcMech_Solids_Solid_PolarResolution2d">PolarResolution2d</a>).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Solid(IGetStl geom, PolarResolution2d polarResolution2d)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>geom</code> <a class="xref" href="Hi.Geom.IGetStl.html">IGetStl</a></dt>
<dd><p>The STL geometry source.</p>
</dd>
<dt><code>polarResolution2d</code> <a class="xref" href="Hi.Geom.Resolution.PolarResolution2d.html">PolarResolution2d</a></dt>
<dd><p>Mesh resolution snapshot; null lets the geometry apply its own default.</p>
</dd>
</dl>
<a id="Hi_NcMech_Solids_Solid__ctor_" data-uid="Hi.NcMech.Solids.Solid.#ctor*"></a>
<h3 id="Hi_NcMech_Solids_Solid__ctor_System_Xml_Linq_XElement_System_String_System_IProgress_Hi_Common_Messages_IMessage__" data-uid="Hi.NcMech.Solids.Solid.#ctor(System.Xml.Linq.XElement,System.String,System.IProgress{Hi.Common.Messages.IMessage})">
@@ -347,38 +384,6 @@ Provides thread-safe access to geometry data and caching mechanisms.</p>
</h2>
<a id="Hi_NcMech_Solids_Solid_CollisionFlag_" data-uid="Hi.NcMech.Solids.Solid.CollisionFlag*"></a>
<h3 id="Hi_NcMech_Solids_Solid_CollisionFlag" data-uid="Hi.NcMech.Solids.Solid.CollisionFlag">
CollisionFlag
</h3>
<div class="markdown level1 summary"><p>Gets or sets the collision flag indicating the collision state of this solid.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public CollisionFlag CollisionFlag { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Collision.CollisionFlag.html">CollisionFlag</a></dt>
<dd></dd>
</dl>
<a id="Hi_NcMech_Solids_Solid_Geom_" data-uid="Hi.NcMech.Solids.Solid.Geom*"></a>
<h3 id="Hi_NcMech_Solids_Solid_Geom" data-uid="Hi.NcMech.Solids.Solid.Geom">
@@ -420,7 +425,8 @@ Setting this property will clear the cached data.</p>
</h3>
<div class="markdown level1 summary"><p>Gets the native STL representation.
The data is created from the STL representation when first accessed.</p>
The data is created from the STL representation when first accessed, and
is null once this solid is disposed — a disposed solid never rebuilds.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -445,19 +451,25 @@ The data is created from the STL representation when first accessed.</p>
<a id="Hi_NcMech_Solids_Solid_PolarResolution2dSource_" data-uid="Hi.NcMech.Solids.Solid.PolarResolution2dSource*"></a>
<a id="Hi_NcMech_Solids_Solid_PolarResolution2d_" data-uid="Hi.NcMech.Solids.Solid.PolarResolution2d*"></a>
<h3 id="Hi_NcMech_Solids_Solid_PolarResolution2dSource" data-uid="Hi.NcMech.Solids.Solid.PolarResolution2dSource">
PolarResolution2dSource
<h3 id="Hi_NcMech_Solids_Solid_PolarResolution2d" data-uid="Hi.NcMech.Solids.Solid.PolarResolution2d">
PolarResolution2d
</h3>
<div class="markdown level1 summary"><p>The provider of <a class="xref" href="Hi.Geom.Resolution.IPolarResolution2d.html">IPolarResolution2d</a>.</p>
<div class="markdown level1 summary"><p>The mesh resolution this solid's runtime products are generated with —
part of the solid's identity, fixed at construction (a defensive copy, so
later mutation of the caller's carrier cannot reach it). Null lets a
parametric <a class="xref" href="Hi.NcMech.Solids.Solid.html#Hi_NcMech_Solids_Solid_Geom">Geom</a> apply its own default. To change the
resolution, build a new <a class="xref" href="Hi.NcMech.Solids.Solid.html">Solid</a> (and dispose the old one);
there is no in-place mutation or invalidation protocol. Never serialized:
resolution is runtime data, not authored content.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Func&lt;IPolarResolution2d&gt; PolarResolution2dSource { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public PolarResolution2d PolarResolution2d { get; }</code></pre>
</div>
@@ -466,7 +478,7 @@ The data is created from the STL representation when first accessed.</p>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="Hi.Geom.Resolution.IPolarResolution2d.html">IPolarResolution2d</a>&gt;</dt>
<dt><a class="xref" href="Hi.Geom.Resolution.PolarResolution2d.html">PolarResolution2d</a></dt>
<dd></dd>
</dl>
@@ -521,8 +533,9 @@ Setting this to false will clear the cached data.</p>
<div class="markdown level1 summary"><p>Optional authored display color (RGB, each channel 0~1). Null means not
authored: display sites fall back to a color seeded from the hosting
anchor's persisted Guid, and <a class="xref" href="Hi.NcMech.Solids.Solid.html#Hi_NcMech_Solids_Solid_Display_Hi_Disp_Bind_">Display(Bind)</a> pushes no color
of its own. A collision (<a class="xref" href="Hi.Collision.CollisionFlag.html#Hi_Collision_CollisionFlag_Collision">Collision</a>) always
overrides the authored color with red.
of its own. Collision red from the ambient scene scope
(<a class="xref" href="Hi.NcMech.Solids.CollisionRedScope.html">CollisionRedScope</a> — stamped by the detecting equipment)
always wins over the authored color.
Serialized as the optional <code>Rgb</code> attribute of the
<code>&lt;Solid&gt;</code> element; legacy readers ignore attributes, so the
addition is backward and forward compatible.</p>
@@ -558,7 +571,8 @@ addition is backward and forward compatible.</p>
</h3>
<div class="markdown level1 summary"><p>Gets the native smooth topology STL representation.
The data is created from the STL representation when first accessed.</p>
The data is created from the STL representation when first accessed, and
is null once this solid is disposed — a disposed solid never rebuilds.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -591,7 +605,11 @@ The data is created from the STL representation when first accessed.</p>
</h3>
<div class="markdown level1 summary"><p>Gets the STL representation of the solid geometry.
The STL data is cached after first access.</p>
The STL data is cached after first access, and null once this solid is
disposed. Note this is normally the geometry model's own instance, not a
private copy: a <a class="xref" href="Hi.Geom.StlFile.html">StlFile</a> source hands back the very
<code>CacheStl</code> it holds for its lifetime, so dropping this field frees
nothing for file-backed geometry. Do not mutate the returned mesh.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -624,7 +642,11 @@ The STL data is cached after first access.</p>
</h3>
<div class="markdown level1 summary"><p>Gets the triangle tree representation for collision detection.
The tree is built from the native STL data when first accessed.</p>
The tree is built from the native STL data when first accessed, and is
null once this solid is disposed — a disposed solid never rebuilds, and
<a class="xref" href="Hi.Collision.CollisionUtil.html">CollisionUtil</a> reads a null collidee as
&ldquo;no collision&rdquo; rather than raising, so a disposed solid silently stops
participating in detection.</p>
</div>
<div class="markdown level1 conceptual"></div>