fix cubetree init crash.

This commit is contained in:
2026-02-17 15:51:23 +08:00
parent 1a8a3b59d2
commit a21240016f
671 changed files with 12580 additions and 1166 deletions
@@ -243,7 +243,7 @@ This ctor is faster than <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_Cub
<h4 class="section" id="Hi_Cbtr_CubeTree__ctor_Hi_Geom_NativeStl_System_Double_System_Threading_CancellationToken_System_IProgress_Hi_Common_NativeProgresses_IProgressReport___remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>The applied resolution is equal or smaller than the expected resolution.
The applied resolution is c*(2^i). Where c is a constant; i is a integer to make the closest value of the formula.
與輸入幾何的誤差分布在菱角及曲面處。</p>
Errors relative to the input geometry are distributed at sharp edges and curved surfaces.</p>
</div>
@@ -256,7 +256,7 @@ The applied resolution is c*(2^i). Where c is a constant; i is a integer to make
</h3>
<div class="markdown level1 summary"><p>可使用Stl或NativeStl物件初始化,使用NativeStl的速度較快。輸入的三角網格必須是流形幾何(manifold geometry),即三角形的頂點對齊其他三角形的頂點,且為封閉幾何。</p>
<div class="markdown level1 summary"><p>Can be initialized with Stl or NativeStl objects; using NativeStl is faster. The input triangle mesh must be manifold geometry, i.e., triangle vertices are aligned with other triangles' vertices, and the geometry must be closed.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -269,8 +269,8 @@ The applied resolution is c*(2^i). Where c is a constant; i is a integer to make
<dt><code>stl</code> <a class="xref" href="Hi.Geom.Stl.html">Stl</a></dt>
<dd></dd>
<dt><code>expectedResolution</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>設定裕度,實際裕度會小於等於設定裕度,大約以2的指數作為級距。
與輸入幾何的誤差分布在菱角及曲面處。</p>
<dd><p>Sets the preferred resolution. The actual resolution will be equal to or smaller than the specified value, approximately spaced by powers of 2.
Errors relative to the input geometry are distributed at sharp edges and curved surfaces.</p>
</dd>
<dt><code>token</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>Cancellation token for the operation</p>
@@ -1043,14 +1043,14 @@ A triangle take 15 double.</p>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>resolution</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>設定裕度,實際裕度會小於等於設定裕度,大約以2的指數作為級距。與輸入幾何的誤差分布在菱角及曲面處。裕度越大,三角網格數量越少,運算也較迅速。</p>
<dd><p>Sets the preferred resolution. The actual resolution will be equal to or smaller than the specified value, approximately spaced by powers of 2. Errors relative to the input geometry are distributed at sharp edges and curved surfaces. A larger resolution results in fewer triangles and faster computation.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a>&gt;</dt>
<dd><p>三角網格</p>
<dd><p>Triangle mesh</p>
</dd>
</dl>
@@ -1159,7 +1159,7 @@ A triangle take 15 double.</p>
<div class="markdown level1 summary"><p>Every node in <a class="xref" href="Hi.Cbtr.CubeTree.html">CubeTree</a> can contain one <a class="xref" href="Hi.Cbtr.CbtrPickable.html">CbtrPickable</a> object.
This function put or replace the contained data of all nodes to <code class="paramref">src</code>.
使用<a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_UpdateAttach_Hi_Cbtr_CbtrPickable_">UpdateAttach(CbtrPickable)</a>會將尚未儲存資料(<a class="xref" href="Hi.Cbtr.CbtrPickable.html">CbtrPickable</a>null)的節點放入src</p>
Using <a class="xref" href="Hi.Cbtr.CubeTree.html#Hi_Cbtr_CubeTree_UpdateAttach_Hi_Cbtr_CbtrPickable_">UpdateAttach(CbtrPickable)</a> will place nodes that have not yet stored data (<a class="xref" href="Hi.Cbtr.CbtrPickable.html">CbtrPickable</a> is null) into src.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -1218,8 +1218,8 @@ This function put or replace the contained data of all nodes to <code class="par
</h3>
<div class="markdown level1 summary"><p>使用BufferedTris效率比NativeStl好。
若差集區域的裕度與本體的裕度不同,則該部位採用較低的裕度。</p>
<div class="markdown level1 summary"><p>Using BufferedTris is more efficient than NativeStl.
If the resolution of the subtraction region differs from the body's resolution, the lower resolution is applied to that region.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -1230,13 +1230,13 @@ This function put or replace the contained data of all nodes to <code class="par
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>cutterBufferedTris</code> <a class="xref" href="Hi.Cbtr.CachedTris.html">CachedTris</a></dt>
<dd><p>差集幾何</p>
<dd><p>Subtraction geometry</p>
</dd>
<dt><code>preferredCubeWidth</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The preferred cube width for the operation.</p>
</dd>
<dt><code>isBuildContactContours</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>為真,則回傳的Substraction中含有差集幾何與工件幾何相交處的圍線群,該圍線群可做後續分析使用。</p>
<dd><p>If true, the returned Substraction contains contour groups at the intersection of the subtraction geometry and the workpiece geometry, which can be used for further analysis.</p>
</dd>
<dt><code>isAggressiveCut</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>If true, uses aggressive cutting mode.</p>
@@ -1362,7 +1362,7 @@ This function put or replace the contained data of all nodes to <code class="par
</h3>
<div class="markdown level1 summary"><p>Substract(BufferedTris,...)同功能。效率較差,多了一個轉換<a class="xref" href="Hi.Cbtr.CachedTris.html">CachedTris</a>的步驟。</p>
<div class="markdown level1 summary"><p>Same functionality as Substract(BufferedTris,...). Less efficient due to the additional step of converting to <a class="xref" href="Hi.Cbtr.CachedTris.html">CachedTris</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -153,10 +153,10 @@ Class DispFrameUtil
</h2>
<a id="Hi_Disp_DispFrameUtil_KeyToDispEngineHostDictionary_" data-uid="Hi.Disp.DispFrameUtil.KeyToDispEngineHostDictionary*"></a>
<a id="Hi_Disp_DispFrameUtil_KeyToDispEngineConfigDictionary_" data-uid="Hi.Disp.DispFrameUtil.KeyToDispEngineConfigDictionary*"></a>
<h3 id="Hi_Disp_DispFrameUtil_KeyToDispEngineHostDictionary" data-uid="Hi.Disp.DispFrameUtil.KeyToDispEngineHostDictionary">
KeyToDispEngineHostDictionary
<h3 id="Hi_Disp_DispFrameUtil_KeyToDispEngineConfigDictionary" data-uid="Hi.Disp.DispFrameUtil.KeyToDispEngineConfigDictionary">
KeyToDispEngineConfigDictionary
</h3>
@@ -165,7 +165,7 @@ Class DispFrameUtil
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static ConcurrentDictionary&lt;object, DispEngineConfig&gt; KeyToDispEngineHostDictionary { get; }</code></pre>
<pre><code class="lang-csharp hljs">public static ConcurrentDictionary&lt;object, DispEngineConfig&gt; KeyToDispEngineConfigDictionary { get; }</code></pre>
</div>
@@ -185,10 +185,10 @@ Class DispFrameUtil
<a id="Hi_Disp_DispFrameUtil_UpdateDispEngineFunc_" data-uid="Hi.Disp.DispFrameUtil.UpdateDispEngineFunc*"></a>
<a id="Hi_Disp_DispFrameUtil_UpdateByDispEngineConfigFunc_" data-uid="Hi.Disp.DispFrameUtil.UpdateByDispEngineConfigFunc*"></a>
<h3 id="Hi_Disp_DispFrameUtil_UpdateDispEngineFunc" data-uid="Hi.Disp.DispFrameUtil.UpdateDispEngineFunc">
UpdateDispEngineFunc
<h3 id="Hi_Disp_DispFrameUtil_UpdateByDispEngineConfigFunc" data-uid="Hi.Disp.DispFrameUtil.UpdateByDispEngineConfigFunc">
UpdateByDispEngineConfigFunc
</h3>
@@ -197,7 +197,7 @@ Class DispFrameUtil
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Action&lt;string, DispEngineConfig&gt; UpdateDispEngineFunc { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public static Action&lt;string, DispEngineConfig&gt; UpdateByDispEngineConfigFunc { get; set; }</code></pre>
</div>
@@ -221,10 +221,10 @@ Class DispFrameUtil
</h2>
<a id="Hi_Disp_DispFrameUtil_CallDispEngineConfig_" data-uid="Hi.Disp.DispFrameUtil.CallDispEngineConfig*"></a>
<a id="Hi_Disp_DispFrameUtil_Call_" data-uid="Hi.Disp.DispFrameUtil.Call*"></a>
<h3 id="Hi_Disp_DispFrameUtil_CallDispEngineConfig_System_String_Hi_Disp_IDisplayee___" data-uid="Hi.Disp.DispFrameUtil.CallDispEngineConfig(System.String,Hi.Disp.IDisplayee[])">
CallDispEngineConfig(string, params IDisplayee[])
<h3 id="Hi_Disp_DispFrameUtil_Call_System_String_Hi_Disp_IDisplayee___" data-uid="Hi.Disp.DispFrameUtil.Call(System.String,Hi.Disp.IDisplayee[])">
Call(string, params IDisplayee[])
</h3>
@@ -233,7 +233,7 @@ Class DispFrameUtil
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static DispEngineConfig CallDispEngineConfig(string key, params IDisplayee[] displayees)</code></pre>
<pre><code class="lang-csharp hljs">public static DispEngineConfig Call(string key, params IDisplayee[] displayees)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -290,10 +290,10 @@ Class DispFrameUtil
<a id="Hi_Disp_DispFrameUtil_UpdateDispEngine_" data-uid="Hi.Disp.DispFrameUtil.UpdateDispEngine*"></a>
<a id="Hi_Disp_DispFrameUtil_UpdateFrame_" data-uid="Hi.Disp.DispFrameUtil.UpdateFrame*"></a>
<h3 id="Hi_Disp_DispFrameUtil_UpdateDispEngine_System_String_" data-uid="Hi.Disp.DispFrameUtil.UpdateDispEngine(System.String)">
UpdateDispEngine(string)
<h3 id="Hi_Disp_DispFrameUtil_UpdateFrame_System_String_" data-uid="Hi.Disp.DispFrameUtil.UpdateFrame(System.String)">
UpdateFrame(string)
</h3>
@@ -302,7 +302,7 @@ Class DispFrameUtil
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void UpdateDispEngine(string key)</code></pre>
<pre><code class="lang-csharp hljs">public static void UpdateFrame(string key)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -149,89 +149,10 @@ Class DispUtil
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Disp_DispUtil_GetRenderingWindowFunc_" data-uid="Hi.Disp.DispUtil.GetRenderingWindowFunc*"></a>
<h3 id="Hi_Disp_DispUtil_GetRenderingWindowFunc" data-uid="Hi.Disp.DispUtil.GetRenderingWindowFunc">
GetRenderingWindowFunc
</h3>
<div class="markdown level1 summary"><p>Internal Use Only.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Func&lt;object, IGetDispEngine&gt; GetRenderingWindowFunc { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>, <a class="xref" href="Hi.Disp.IGetDispEngine.html">IGetDispEngine</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Disp_DispUtil_CallRenderingFrame_" data-uid="Hi.Disp.DispUtil.CallRenderingFrame*"></a>
<h3 id="Hi_Disp_DispUtil_CallRenderingFrame_System_Object_Hi_Disp_IDisplayee_" data-uid="Hi.Disp.DispUtil.CallRenderingFrame(System.Object,Hi.Disp.IDisplayee)">
CallRenderingFrame(object, IDisplayee)
</h3>
<div class="markdown level1 summary"><p>Internal Use Only.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static object CallRenderingFrame(object key, IDisplayee displayee)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>key</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd></dd>
<dt><code>displayee</code> <a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>rendering window</p>
</dd>
</dl>
<h4 class="section" id="Hi_Disp_DispUtil_CallRenderingFrame_System_Object_Hi_Disp_IDisplayee__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Note that the window may not be WPF window if using other OS.</p>
</div>
<a id="Hi_Disp_DispUtil_Display_" data-uid="Hi.Disp.DispUtil.Display*"></a>
<h3 id="Hi_Disp_DispUtil_Display_Hi_Disp_IDisplayee_Hi_Disp_Bind_Hi_Geom_Mat4d_" data-uid="Hi.Disp.DispUtil.Display(Hi.Disp.IDisplayee,Hi.Disp.Bind,Hi.Geom.Mat4d)">
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class Cylindroid | HiAPI-C# 2025 ">
<meta name="description" content="Geometry of Cylindroid.">
<meta name="description" content="3d Geometry of Cylindroid.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,7 +97,7 @@ Class Cylindroid
<dl><dt>Assembly</dt><dd>HiGeom.dll</dd></dl>
</div>
<div class="markdown summary"><p>Geometry of Cylindroid.</p>
<div class="markdown summary"><p>3d Geometry of Cylindroid.</p>
</div>
<div class="markdown conceptual"></div>
@@ -289,39 +289,6 @@ set <code class="paramref">mat</code>[10] to <a class="xref" href="Hi.Geom.DVec3
<a id="Hi_Geom_DVec3d__ctor_" data-uid="Hi.Geom.DVec3d.#ctor*"></a>
<h3 id="Hi_Geom_DVec3d__ctor_Hi_Geom_UnnullableDVec3d_" data-uid="Hi.Geom.DVec3d.#ctor(Hi.Geom.UnnullableDVec3d)">
DVec3d(UnnullableDVec3d)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a> class from an UnnullableDVec3d.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d(UnnullableDVec3d src)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.Geom.UnnullableDVec3d.html">UnnullableDVec3d</a></dt>
<dd><p>The source UnnullableDVec3d to copy from.</p>
</dd>
</dl>
<a id="Hi_Geom_DVec3d__ctor_" data-uid="Hi.Geom.DVec3d.#ctor*"></a>
<h3 id="Hi_Geom_DVec3d__ctor_Hi_Geom_Vec3d_Hi_Geom_Vec3d_" data-uid="Hi.Geom.DVec3d.#ctor(Hi.Geom.Vec3d,Hi.Geom.Vec3d)">
@@ -1413,39 +1380,6 @@ to set the values.</p>
<a id="Hi_Geom_DVec3d_ToUnnullableDVec3d_" data-uid="Hi.Geom.DVec3d.ToUnnullableDVec3d*"></a>
<h3 id="Hi_Geom_DVec3d_ToUnnullableDVec3d" data-uid="Hi.Geom.DVec3d.ToUnnullableDVec3d">
ToUnnullableDVec3d()
</h3>
<div class="markdown level1 summary"><p>Converts this DVec3d to an UnnullableDVec3d.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public UnnullableDVec3d ToUnnullableDVec3d()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.UnnullableDVec3d.html">UnnullableDVec3d</a></dt>
<dd><p>A new UnnullableDVec3d containing the data from this DVec3d.</p>
</dd>
</dl>
<a id="Hi_Geom_DVec3d_WriteBin_" data-uid="Hi.Geom.DVec3d.WriteBin*"></a>
<h3 id="Hi_Geom_DVec3d_WriteBin_System_IO_BinaryWriter_" data-uid="Hi.Geom.DVec3d.WriteBin(System.IO.BinaryWriter)">
File diff suppressed because it is too large Load Diff
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Enum FractionStatus | HiAPI-C# 2025 ">
<meta name="description" content="Status flags for .">
<meta name="description" content="Status flags for Fraction and . Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -98,7 +98,8 @@ Enum FractionStatus
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Status flags for <a class="xref" href="Hi.Geom.NativeFraction.html">NativeFraction</a>.</p>
<div class="markdown summary"><p>Status flags for Fraction and <a class="xref" href="Hi.Geom.NativeFraction.html">NativeFraction</a>.
Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t.</p>
</div>
<div class="markdown conceptual"></div>
@@ -154,9 +155,6 @@ public enum FractionStatus : short</code></pre>
<dd><p>The fraction has been packed (reduced to irreducible form).</p>
</dd>
<dt id="Hi_Geom_FractionStatus_IsPackedEvaluated"><code>IsPackedEvaluated = IsPacked | IsEvaluated</code></dt>
<dd></dd>
<dt id="Hi_Geom_FractionStatus_None"><code>None = 0</code></dt>
<dd><p>No flags set. The fraction is neither packed nor evaluated.</p>
@@ -933,6 +933,42 @@ If the data has not been reduced, the return value is not evaluated by the reduc
<a id="Hi_Geom_NativeFraction_ComparePerformanceTest_" data-uid="Hi.Geom.NativeFraction.ComparePerformanceTest*"></a>
<h3 id="Hi_Geom_NativeFraction_ComparePerformanceTest_System_Int32_System_Int32_" data-uid="Hi.Geom.NativeFraction.ComparePerformanceTest(System.Int32,System.Int32)">
ComparePerformanceTest(int, int)
</h3>
<div class="markdown level1 summary"><p>Comparative performance test between pure C# Fraction and NativeFraction (C++ backend).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void ComparePerformanceTest(int iterations = 128, int rounds = 16)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>iterations</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Number of accumulation steps per round.</p>
</dd>
<dt><code>rounds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Number of rounds to average timing.</p>
</dd>
</dl>
<a id="Hi_Geom_NativeFraction_CompareTo_" data-uid="Hi.Geom.NativeFraction.CompareTo*"></a>
<h3 id="Hi_Geom_NativeFraction_CompareTo_Hi_Geom_NativeFraction_" data-uid="Hi.Geom.NativeFraction.CompareTo(Hi.Geom.NativeFraction)">
@@ -1323,6 +1359,44 @@ If the data has not been reduced, the return value is not evaluated by the reduc
<a id="Hi_Geom_NativeFraction_PerformanceTest_" data-uid="Hi.Geom.NativeFraction.PerformanceTest*"></a>
<h3 id="Hi_Geom_NativeFraction_PerformanceTest_System_Int32_System_Int32_" data-uid="Hi.Geom.NativeFraction.PerformanceTest(System.Int32,System.Int32)">
PerformanceTest(int, int)
</h3>
<div class="markdown level1 summary"><p>Performance test for NativeFraction (C++ backend).
Test 1: Accumulative += with Val (bounded, linear growth).
Test 2: Bounded arithmetic (converging average).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void PerformanceTest(int iterations = 128, int rounds = 16)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>iterations</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Number of steps per round.</p>
</dd>
<dt><code>rounds</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Number of rounds to average timing.</p>
</dd>
</dl>
<a id="Hi_Geom_NativeFraction_PositiveInf_" data-uid="Hi.Geom.NativeFraction.PositiveInf*"></a>
<h3 id="Hi_Geom_NativeFraction_PositiveInf" data-uid="Hi.Geom.NativeFraction.PositiveInf">
@@ -0,0 +1,460 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoLine3Hfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoLine3Hfr | HiAPI-C# 2025 ">
<meta name="description" content="Topological 3D line (directed edge) with coordinates. Maintains connectivity to adjacent reversed line and owning triangle. Corresponds to C++ topo_line3_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoLine3Hfr">
<h1 id="Hi_Geom_Topo_TopoLine3Hfr" data-uid="Hi.Geom.Topo.TopoLine3Hfr" class="text-break">
Class TopoLine3Hfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Topological 3D line (directed edge) with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to adjacent reversed line and owning triangle.
Corresponds to C++ <code>topo_line3_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoLine3Hfr</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoLine3Hfr</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_P0" data-uid="Hi.Geom.Topo.TopoLine3Hfr.P0">
P0
</h3>
<div class="markdown level1 summary"><p>Start point.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoPoint3Hfr P0</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_P1" data-uid="Hi.Geom.Topo.TopoLine3Hfr.P1">
P1
</h3>
<div class="markdown level1 summary"><p>End point.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoPoint3Hfr P1</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_ReversedLine" data-uid="Hi.Geom.Topo.TopoLine3Hfr.ReversedLine">
ReversedLine
</h3>
<div class="markdown level1 summary"><p>The reversed (opposite direction) line sharing the same two endpoints.
Null if no adjacent triangle shares this edge in reverse.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoLine3Hfr ReversedLine</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_Tri" data-uid="Hi.Geom.Topo.TopoLine3Hfr.Tri">
Tri
</h3>
<div class="markdown level1 summary"><p>The triangle that owns this directed line.
Null if this line is not yet part of a triangle.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoTri3Hfr Tri</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoLine3Hfr_ClearCache_" data-uid="Hi.Geom.Topo.TopoLine3Hfr.ClearCache*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_ClearCache" data-uid="Hi.Geom.Topo.TopoLine3Hfr.ClearCache">
ClearCache()
</h3>
<div class="markdown level1 summary"><p>Clears cached arrow and direction.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearCache()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoLine3Hfr_GetArrow_" data-uid="Hi.Geom.Topo.TopoLine3Hfr.GetArrow*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_GetArrow" data-uid="Hi.Geom.Topo.TopoLine3Hfr.GetArrow">
GetArrow()
</h3>
<div class="markdown level1 summary"><p>Gets the arrow vector (P1 - P0) in fraction coordinates.
Cached after first computation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr GetArrow()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3Hfr_GetDirection_" data-uid="Hi.Geom.Topo.TopoLine3Hfr.GetDirection*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_GetDirection" data-uid="Hi.Geom.Topo.TopoLine3Hfr.GetDirection">
GetDirection()
</h3>
<div class="markdown level1 summary"><p>Gets the normalized direction vector in double precision.
Cached after first computation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3d GetDirection()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3Hfr_ToString_" data-uid="Hi.Geom.Topo.TopoLine3Hfr.ToString*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3Hfr_ToString" data-uid="Hi.Geom.Topo.TopoLine3Hfr.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,481 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoLine3StockHfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoLine3StockHfr | HiAPI-C# 2025 ">
<meta name="description" content="Stock (pool) of topological lines with deduplication based on endpoint identity. Corresponds to C++ topo_line3_stock_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoLine3StockHfr">
<h1 id="Hi_Geom_Topo_TopoLine3StockHfr" data-uid="Hi.Geom.Topo.TopoLine3StockHfr" class="text-break">
Class TopoLine3StockHfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Stock (pool) of topological lines with deduplication based on endpoint identity.
Corresponds to C++ <code>topo_line3_stock_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoLine3StockHfr</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoLine3StockHfr</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoLine3StockHfr__ctor_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr__ctor_System_Int32_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.#ctor(System.Int32)">
TopoLine3StockHfr(int)
</h3>
<div class="markdown level1 summary"><p>Initializes a new line stock with the specified capacity.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoLine3StockHfr(int capacity)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>capacity</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_Count_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Count*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_Count" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Count">
Count
</h3>
<div class="markdown level1 summary"><p>Gets the number of lines.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int Count { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_Lines_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Lines*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_Lines" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Lines">
Lines
</h3>
<div class="markdown level1 summary"><p>Gets all lines in the stock.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IEnumerable&lt;TopoLine3Hfr&gt; Lines { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_BuildAdjacentLineIfExisted_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.BuildAdjacentLineIfExisted*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_BuildAdjacentLineIfExisted_Hi_Geom_Topo_TopoLine3Hfr_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.BuildAdjacentLineIfExisted(Hi.Geom.Topo.TopoLine3Hfr)">
BuildAdjacentLineIfExisted(TopoLine3Hfr)
</h3>
<div class="markdown level1 summary"><p>Builds the reversed line link for a single line if the reverse exists.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void BuildAdjacentLineIfExisted(TopoLine3Hfr tl)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tl</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_BuildAdjacentLinesIfExisted_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.BuildAdjacentLinesIfExisted*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_BuildAdjacentLinesIfExisted" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.BuildAdjacentLinesIfExisted">
BuildAdjacentLinesIfExisted()
</h3>
<div class="markdown level1 summary"><p>Builds reversed line links for all lines in the stock.
Corresponds to C++ <code>build_adjacent_lines_if_existed</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void BuildAdjacentLinesIfExisted()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_Call_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Call*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_Call_Hi_Geom_Topo_TopoPoint3Hfr_Hi_Geom_Topo_TopoPoint3Hfr_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Call(Hi.Geom.Topo.TopoPoint3Hfr,Hi.Geom.Topo.TopoPoint3Hfr)">
Call(TopoPoint3Hfr, TopoPoint3Hfr)
</h3>
<div class="markdown level1 summary"><p>Gets or creates a topological line from p0 to p1. Thread-safe.
If a line with the same endpoints already exists, returns the existing one.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoLine3Hfr Call(TopoPoint3Hfr p0, TopoPoint3Hfr p1)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>p0</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
<dt><code>p1</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_CallIfExisted_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.CallIfExisted*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_CallIfExisted_Hi_Geom_Topo_TopoPoint3Hfr_Hi_Geom_Topo_TopoPoint3Hfr_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.CallIfExisted(Hi.Geom.Topo.TopoPoint3Hfr,Hi.Geom.Topo.TopoPoint3Hfr)">
CallIfExisted(TopoPoint3Hfr, TopoPoint3Hfr)
</h3>
<div class="markdown level1 summary"><p>Gets an existing topological line from p0 to p1, or null if not found. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoLine3Hfr CallIfExisted(TopoPoint3Hfr p0, TopoPoint3Hfr p1)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>p0</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
<dt><code>p1</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoLine3StockHfr_Del_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Del*"></a>
<h3 id="Hi_Geom_Topo_TopoLine3StockHfr_Del_Hi_Geom_Topo_TopoLine3Hfr_" data-uid="Hi.Geom.Topo.TopoLine3StockHfr.Del(Hi.Geom.Topo.TopoLine3Hfr)">
Del(TopoLine3Hfr)
</h3>
<div class="markdown level1 summary"><p>Removes a line from the stock and cleans up connectivity. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Del(TopoLine3Hfr line)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>line</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -2,11 +2,11 @@
<html>
<head>
<meta charset="utf-8">
<title>Class UnnullableDVec3d | HiAPI-C# 2025 </title>
<title>Class TopoPoint3Hfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class UnnullableDVec3d | HiAPI-C# 2025 ">
<meta name="title" content="Class TopoPoint3Hfr | HiAPI-C# 2025 ">
<meta name="description" content="For Unnullable IO for .">
<meta name="description" content="Topological 3D point with coordinates. Maintains connectivity to adjacent lines and triangles. Corresponds to C++ topo_point3_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -84,25 +84,27 @@
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.UnnullableDVec3d">
<article data-uid="Hi.Geom.Topo.TopoPoint3Hfr">
<h1 id="Hi_Geom_UnnullableDVec3d" data-uid="Hi.Geom.UnnullableDVec3d" class="text-break">
Class UnnullableDVec3d
<h1 id="Hi_Geom_Topo_TopoPoint3Hfr" data-uid="Hi.Geom.Topo.TopoPoint3Hfr" class="text-break">
Class TopoPoint3Hfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiGeom.dll</dd></dl>
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>For Unnullable IO for <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a>.</p>
<div class="markdown summary"><p>Topological 3D point with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to adjacent lines and triangles.
Corresponds to C++ <code>topo_point3_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class UnnullableDVec3d : IWriteBin</code></pre>
<pre><code class="lang-csharp hljs">public class TopoPoint3Hfr</code></pre>
</div>
@@ -112,16 +114,10 @@ Class UnnullableDVec3d
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">UnnullableDVec3d</span></div>
<div><span class="xref">TopoPoint3Hfr</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Common.IWriteBin.html">IWriteBin</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
@@ -145,17 +141,11 @@ Class UnnullableDVec3d
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.BinIoUtil.html#Hi_Common_BinIoUtil_ToBytes_Hi_Common_IWriteBin_">BinIoUtil.ToBytes(IWriteBin)</a>
</div>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
@@ -183,30 +173,32 @@ Class UnnullableDVec3d
<h2 class="section" id="constructors">Constructors
<h2 class="section" id="fields">Fields
</h2>
<a id="Hi_Geom_UnnullableDVec3d__ctor_" data-uid="Hi.Geom.UnnullableDVec3d.#ctor*"></a>
<h3 id="Hi_Geom_UnnullableDVec3d__ctor_Hi_Geom_DVec3d_" data-uid="Hi.Geom.UnnullableDVec3d.#ctor(Hi.Geom.DVec3d)">
UnnullableDVec3d(DVec3d)
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_BackwardLines" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.BackwardLines">
BackwardLines
</h3>
<div class="markdown level1 summary"><p>Creates a new UnnullableDVec3d from a DVec3d.</p>
<div class="markdown level1 summary"><p>Backward lines (lines ending at this point).
Do not modify directly.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public UnnullableDVec3d(DVec3d src)</code></pre>
<pre><code class="lang-csharp hljs">public readonly List&lt;TopoLine3Hfr&gt; BackwardLines</code></pre>
</div>
<h4 class="section">Parameters</h4>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dd><p>Source DVec3d object</p>
</dd>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
@@ -218,28 +210,27 @@ Class UnnullableDVec3d
<a id="Hi_Geom_UnnullableDVec3d__ctor_" data-uid="Hi.Geom.UnnullableDVec3d.#ctor*"></a>
<h3 id="Hi_Geom_UnnullableDVec3d__ctor_System_IO_BinaryReader_" data-uid="Hi.Geom.UnnullableDVec3d.#ctor(System.IO.BinaryReader)">
UnnullableDVec3d(BinaryReader)
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_ForwardLines" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.ForwardLines">
ForwardLines
</h3>
<div class="markdown level1 summary"><p>Creates a new UnnullableDVec3d from binary data.</p>
<div class="markdown level1 summary"><p>Forward lines (lines starting from this point).
Do not modify directly.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public UnnullableDVec3d(BinaryReader reader)</code></pre>
<pre><code class="lang-csharp hljs">public readonly List&lt;TopoLine3Hfr&gt; ForwardLines</code></pre>
</div>
<h4 class="section">Parameters</h4>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><code>reader</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.io.binaryreader">BinaryReader</a></dt>
<dd><p>Binary reader to read the data from</p>
</dd>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
@@ -251,25 +242,85 @@ Class UnnullableDVec3d
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_Position" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.Position">
Position
</h3>
<div class="markdown level1 summary"><p>The position in fraction coordinates.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr Position</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_Tris" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.Tris">
Tris
</h3>
<div class="markdown level1 summary"><p>Triangles that contain this point.
Do not modify directly.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly List&lt;TopoTri3Hfr&gt; Tris</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_UnnullableDVec3d_Data_" data-uid="Hi.Geom.UnnullableDVec3d.Data*"></a>
<a id="Hi_Geom_Topo_TopoPoint3Hfr_IsIsolated_" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.IsIsolated*"></a>
<h3 id="Hi_Geom_UnnullableDVec3d_Data" data-uid="Hi.Geom.UnnullableDVec3d.Data">
Data
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_IsIsolated" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.IsIsolated">
IsIsolated
</h3>
<div class="markdown level1 summary"><p>Gets or sets the DVec3d data.</p>
<div class="markdown level1 summary"><p>Whether the point is isolated (no forward lines).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DVec3d Data { get; set; }</code></pre>
<pre><code class="lang-csharp hljs">public bool IsIsolated { get; }</code></pre>
</div>
@@ -278,7 +329,39 @@ Class UnnullableDVec3d
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a></dt>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoPoint3Hfr_IsSeamless_" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.IsSeamless*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_IsSeamless" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.IsSeamless">
IsSeamless
</h3>
<div class="markdown level1 summary"><p>Whether the point is seamless (all forward lines have a reversed line with a triangle).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsSeamless { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
@@ -293,25 +376,26 @@ Class UnnullableDVec3d
</h2>
<a id="Hi_Geom_UnnullableDVec3d_WriteBin_" data-uid="Hi.Geom.UnnullableDVec3d.WriteBin*"></a>
<a id="Hi_Geom_Topo_TopoPoint3Hfr_ToString_" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.ToString*"></a>
<h3 id="Hi_Geom_UnnullableDVec3d_WriteBin_System_IO_BinaryWriter_" data-uid="Hi.Geom.UnnullableDVec3d.WriteBin(System.IO.BinaryWriter)">
WriteBin(BinaryWriter)
<h3 id="Hi_Geom_Topo_TopoPoint3Hfr_ToString" data-uid="Hi.Geom.Topo.TopoPoint3Hfr.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Writes the object's data to a binary stream.</p>
<div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void WriteBin(BinaryWriter writer)</code></pre>
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Parameters</h4>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><code>writer</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.io.binarywriter">BinaryWriter</a></dt>
<dd><p>The binary writer to write to</p>
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object.</p>
</dd>
</dl>
@@ -326,7 +410,6 @@ Class UnnullableDVec3d
</article>
<div class="contribution d-print-none">
@@ -0,0 +1,449 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoPoint3StockHfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoPoint3StockHfr | HiAPI-C# 2025 ">
<meta name="description" content="Stock (pool) of topological points with deduplication based on fraction coordinates. Corresponds to C++ topo_point3_stock_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoPoint3StockHfr">
<h1 id="Hi_Geom_Topo_TopoPoint3StockHfr" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr" class="text-break">
Class TopoPoint3StockHfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Stock (pool) of topological points with deduplication based on fraction coordinates.
Corresponds to C++ <code>topo_point3_stock_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoPoint3StockHfr</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoPoint3StockHfr</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr__ctor_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr__ctor_System_Int32_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.#ctor(System.Int32)">
TopoPoint3StockHfr(int)
</h3>
<div class="markdown level1 summary"><p>Initializes a new point stock with the specified capacity.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoPoint3StockHfr(int capacity)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>capacity</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_Count_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Count*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_Count" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Count">
Count
</h3>
<div class="markdown level1 summary"><p>Gets the number of points.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int Count { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_Points_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Points*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_Points" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Points">
Points
</h3>
<div class="markdown level1 summary"><p>Gets all points in the stock.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IEnumerable&lt;TopoPoint3Hfr&gt; Points { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_Call_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Call*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_Call_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Call(Hi.Geom.Topo.Vec3Hfr)">
Call(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Gets or creates a topological point at the given position. Thread-safe.
If a point with the same coordinates already exists, returns the existing one.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoPoint3Hfr Call(Vec3Hfr v)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>v</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_CallIfExisted_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.CallIfExisted*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_CallIfExisted_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.CallIfExisted(Hi.Geom.Topo.Vec3Hfr)">
CallIfExisted(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Gets an existing topological point at the given position, or null if not found. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoPoint3Hfr CallIfExisted(Vec3Hfr v)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>v</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_Del_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Del*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_Del_Hi_Geom_Topo_TopoPoint3Hfr_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.Del(Hi.Geom.Topo.TopoPoint3Hfr)">
Del(TopoPoint3Hfr)
</h3>
<div class="markdown level1 summary"><p>Removes a point from the stock. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Del(TopoPoint3Hfr tp)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tp</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoPoint3StockHfr_ExpandToBox3d_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.ExpandToBox3d*"></a>
<h3 id="Hi_Geom_Topo_TopoPoint3StockHfr_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Geom.Topo.TopoPoint3StockHfr.ExpandToBox3d(Hi.Geom.Box3d)">
ExpandToBox3d(Box3d)
</h3>
<div class="markdown level1 summary"><p>Expands a <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a> to include all points.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dst</code> <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,855 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoStl3Hfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoStl3Hfr | HiAPI-C# 2025 ">
<meta name="description" content="Pure C# topological STL (triangle mesh) with coordinates. Hfr: High-Precision (decimal) FRaction. Provides unlimited-precision exact arithmetic for geometric computations without relying on native (C++) interop. Corresponds to C++ topo_stl3_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoStl3Hfr">
<h1 id="Hi_Geom_Topo_TopoStl3Hfr" data-uid="Hi.Geom.Topo.TopoStl3Hfr" class="text-break">
Class TopoStl3Hfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Pure C# topological STL (triangle mesh) with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Hfr: High-Precision (decimal) FRaction.
Provides unlimited-precision exact arithmetic for geometric computations
without relying on native (C++) interop.
Corresponds to C++ <code>topo_stl3_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoStl3Hfr : IDisplayee, IExpandToBox3d, IDisposable</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoStl3Hfr</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a></div>
<div><a class="xref" href="Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Disp.DispUtil.html#Hi_Disp_DispUtil_Display_Hi_Disp_IDisplayee_Hi_Disp_Bind_Hi_Geom_Mat4d_">DispUtil.Display(IDisplayee, Bind, Mat4d)</a>
</div>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoStl3Hfr__ctor_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr__ctor_Hi_Geom_Stl_System_Decimal_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor(Hi.Geom.Stl,System.Decimal)">
TopoStl3Hfr(Stl, decimal)
</h3>
<div class="markdown level1 summary"><p>Initializes a topological STL from an <a class="xref" href="Hi.Geom.Stl.html">Stl</a> model.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr(Stl stl, decimal fractionResolution)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>stl</code> <a class="xref" href="Hi.Geom.Stl.html">Stl</a></dt>
<dd><p>Source STL model.</p>
</dd>
<dt><code>fractionResolution</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>Fraction approximation resolution (decimal).</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr__ctor_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr__ctor_System_Collections_Generic_IReadOnlyList_Hi_Geom_Topo_Vec3Hfr____" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor(System.Collections.Generic.IReadOnlyList{Hi.Geom.Topo.Vec3Hfr[]})">
TopoStl3Hfr(IReadOnlyList&lt;Vec3Hfr[]&gt;)
</h3>
<div class="markdown level1 summary"><p>Initializes a topological STL from fraction-precision triangles (Vec3Hfr arrays).
Each element is a 3-element array of <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a> representing triangle apexes.
Corresponds to C++ constructor <code>topo_stl3_t(Tri3fr_Iter, Tri3fr_Iter)</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr(IReadOnlyList&lt;Vec3Hfr[]&gt; tris)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tris</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a>&lt;<a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a>[]&gt;</dt>
<dd><p>Source triangles as arrays of 3 Vec3Hfr.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr__ctor_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr__ctor_System_Collections_Generic_IReadOnlyList_Hi_Geom_Tri3d__System_Decimal_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor(System.Collections.Generic.IReadOnlyList{Hi.Geom.Tri3d},System.Decimal)">
TopoStl3Hfr(IReadOnlyList&lt;Tri3d&gt;, decimal)
</h3>
<div class="markdown level1 summary"><p>Initializes a topological STL from double-precision triangles.
Phase 1 (parallel): converts vertices to fraction coordinates via Stern-Brocot approximation.
Phase 2 (sequential): builds topology (stocks, connectivity).
Corresponds to C++ constructor <code>topo_stl3_t(Tri3d_Iter, Tri3d_Iter, double)</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr(IReadOnlyList&lt;Tri3d&gt; tris, decimal fractionResolution)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tris</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a>&lt;<a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a>&gt;</dt>
<dd><p>Source triangles.</p>
</dd>
<dt><code>fractionResolution</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>Fraction approximation resolution (decimal).</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr__ctor_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr__ctor_System_Int32_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.#ctor(System.Int32)">
TopoStl3Hfr(int)
</h3>
<div class="markdown level1 summary"><p>Initializes an empty topological STL with the specified triangle capacity.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr(int trisCap)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>trisCap</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Expected number of triangles (for pre-allocation).</p>
</dd>
</dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_TlStock" data-uid="Hi.Geom.Topo.TopoStl3Hfr.TlStock">
TlStock
</h3>
<div class="markdown level1 summary"><p>The line stock for this topological STL.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoLine3StockHfr TlStock</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3StockHfr.html">TopoLine3StockHfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_TpStock" data-uid="Hi.Geom.Topo.TopoStl3Hfr.TpStock">
TpStock
</h3>
<div class="markdown level1 summary"><p>The point stock for this topological STL.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoPoint3StockHfr TpStock</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3StockHfr.html">TopoPoint3StockHfr</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_TtStock" data-uid="Hi.Geom.Topo.TopoStl3Hfr.TtStock">
TtStock
</h3>
<div class="markdown level1 summary"><p>The triangle stock for this topological STL.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoTri3StockHfr TtStock</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3StockHfr.html">TopoTri3StockHfr</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoStl3Hfr_Count_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Count*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_Count" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Count">
Count
</h3>
<div class="markdown level1 summary"><p>Gets the number of triangles.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int Count { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_FlatDisplayee_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.FlatDisplayee*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_FlatDisplayee" data-uid="Hi.Geom.Topo.TopoStl3Hfr.FlatDisplayee">
FlatDisplayee
</h3>
<div class="markdown level1 summary"><p>Gets the flat-shaded displayee for this topological STL.
Created lazily on first access.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3HfrFlatDisplayee FlatDisplayee { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html">TopoStl3HfrFlatDisplayee</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoStl3Hfr_ClearDrawingsCache_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ClearDrawingsCache*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_ClearDrawingsCache" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ClearDrawingsCache">
ClearDrawingsCache()
</h3>
<div class="markdown level1 summary"><p>Invalidates all cached displayees. Call this after modifying the topology.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearDrawingsCache()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3Hfr_Display_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Display*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_Display_Hi_Disp_Bind_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Display(Hi.Disp.Bind)">
Display(Bind)
</h3>
<div class="markdown level1 summary"><p>Displays the topological STL using flat shading.
For smooth rendering, use <a class="xref" href="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html">TopoStl3HfrSmoothDisplayee</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>bind</code> <a class="xref" href="Hi.Disp.Bind.html">Bind</a></dt>
<dd><p>The rendering bind context.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_Dispose" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Dispose">
Dispose()
</h3>
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3Hfr_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_Dispose_System_Boolean_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.Dispose(System.Boolean)">
Dispose(bool)
</h3>
<div class="markdown level1 summary"><p>Disposes the cached drawings.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual void Dispose(bool disposing)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>disposing</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_ExpandToBox3d_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ExpandToBox3d*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ExpandToBox3d(Hi.Geom.Box3d)">
ExpandToBox3d(Box3d)
</h3>
<div class="markdown level1 summary"><p>Expands the box to include all points.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dst</code> <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_IsSeamless_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.IsSeamless*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_IsSeamless" data-uid="Hi.Geom.Topo.TopoStl3Hfr.IsSeamless">
IsSeamless()
</h3>
<div class="markdown level1 summary"><p>Checks whether the mesh is seamless (all edges have a properly paired reversed line).
A seamless mesh is a necessary condition for a manifold (closed, watertight) geometry.
Corresponds to C++ <code>is_seamless()</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsSeamless()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if every directed edge has a reversed line with a triangle.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_IsSeamless_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.IsSeamless*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_IsSeamless_System_Collections_Generic_List_Hi_Geom_Topo_TopoLine3Hfr__" data-uid="Hi.Geom.Topo.TopoStl3Hfr.IsSeamless(System.Collections.Generic.List{Hi.Geom.Topo.TopoLine3Hfr})">
IsSeamless(List&lt;TopoLine3Hfr&gt;)
</h3>
<div class="markdown level1 summary"><p>Checks whether the mesh is seamless. Defect lines are output to <code class="paramref">dstDefectLines</code>.
Corresponds to C++ <code>is_seamless(vector&lt;topo_line3_t*&gt;&amp;)</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsSeamless(List&lt;TopoLine3Hfr&gt; dstDefectLines)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dstDefectLines</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a>&gt;</dt>
<dd><p>Output list for defect (non-seamless) lines.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if the mesh is fully seamless.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_ToStl_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToStl*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_ToStl" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToStl">
ToStl()
</h3>
<div class="markdown level1 summary"><p>Converts to an <a class="xref" href="Hi.Geom.Stl.html">Stl</a> model.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Stl ToStl()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Stl.html">Stl</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_ToString_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToString*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_ToString" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3Hfr_ToTris_" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToTris*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3Hfr_ToTris" data-uid="Hi.Geom.Topo.TopoStl3Hfr.ToTris">
ToTris()
</h3>
<div class="markdown level1 summary"><p>Converts all triangles to a list of <a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a> (double precision).
Corresponds to C++ <code>to_tris()</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;Tri3d&gt; ToTris()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a>&gt;</dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,443 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoStl3HfrFlatDisplayee | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoStl3HfrFlatDisplayee | HiAPI-C# 2025 ">
<meta name="description" content="Flat-shaded displayee for . Renders flat triangle faces (one normal per triangle) and all unique edge lines. Corresponds to C++ TopoStl3::_flatDraw + all-lines draw.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee">
<h1 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee" class="text-break">
Class TopoStl3HfrFlatDisplayee
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Flat-shaded displayee for <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.
Renders flat triangle faces (one normal per triangle) and all unique edge lines.
Corresponds to C++ <code>TopoStl3::_flatDraw</code> + all-lines draw.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoStl3HfrFlatDisplayee : IDisplayee, IExpandToBox3d, IDisposable</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoStl3HfrFlatDisplayee</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a></div>
<div><a class="xref" href="Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Disp.DispUtil.html#Hi_Disp_DispUtil_Display_Hi_Disp_IDisplayee_Hi_Disp_Bind_Hi_Geom_Mat4d_">DispUtil.Display(IDisplayee, Bind, Mat4d)</a>
</div>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee__ctor_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee__ctor_Hi_Geom_Topo_TopoStl3Hfr_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.#ctor(Hi.Geom.Topo.TopoStl3Hfr)">
TopoStl3HfrFlatDisplayee(TopoStl3Hfr)
</h3>
<div class="markdown level1 summary"><p>Initializes a new flat displayee wrapping the given <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3HfrFlatDisplayee(TopoStl3Hfr source)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a></dt>
<dd><p>The source topological STL.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Source_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Source*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Source" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Source">
Source
</h3>
<div class="markdown level1 summary"><p>The source topological STL.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr Source { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_ClearCache_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.ClearCache*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_ClearCache" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.ClearCache">
ClearCache()
</h3>
<div class="markdown level1 summary"><p>Invalidates all cached drawings.
Call this after modifying the source topology.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearCache()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Display_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Display*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Display_Hi_Disp_Bind_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Display(Hi.Disp.Bind)">
Display(Bind)
</h3>
<div class="markdown level1 summary"><p>Displays the flat-shaded topological STL: all edges in black + flat-shaded triangle faces.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>bind</code> <a class="xref" href="Hi.Disp.Bind.html">Bind</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Dispose" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Dispose">
Dispose()
</h3>
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_Dispose_System_Boolean_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.Dispose(System.Boolean)">
Dispose(bool)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual void Dispose(bool disposing)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>disposing</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_ExpandToBox3d_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.ExpandToBox3d*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrFlatDisplayee_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.ExpandToBox3d(Hi.Geom.Box3d)">
ExpandToBox3d(Box3d)
</h3>
<div class="markdown level1 summary"><p>Expands the destination box.
This function is usually used to compute the bounding box of elements.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dst</code> <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a></dt>
<dd><p>Destination box</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,550 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoStl3HfrSmoothDisplayee | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoStl3HfrSmoothDisplayee | HiAPI-C# 2025 ">
<meta name="description" content="Smooth-shaded displayee for . Renders smooth faces (per-vertex averaged normals) and sharp edges only. All rendering-related cached data (adjacent cos&#178;, smooth normals) is stored in this class via dictionaries, keeping the source clean. Corresponds to C++ TopoStl3::_smoothDraw + _edgeDraw.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee">
<h1 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee" class="text-break">
Class TopoStl3HfrSmoothDisplayee
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Smooth-shaded displayee for <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.
Renders smooth faces (per-vertex averaged normals) and sharp edges only.
All rendering-related cached data (adjacent cos², smooth normals) is stored
in this class via dictionaries, keeping the source <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a> clean.
Corresponds to C++ <code>TopoStl3::_smoothDraw</code> + <code>_edgeDraw</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoStl3HfrSmoothDisplayee : IDisplayee, IExpandToBox3d, IDisposable</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoStl3HfrSmoothDisplayee</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a></div>
<div><a class="xref" href="Hi.Geom.IExpandToBox3d.html">IExpandToBox3d</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Disp.DispUtil.html#Hi_Disp_DispUtil_Display_Hi_Disp_IDisplayee_Hi_Disp_Bind_Hi_Geom_Mat4d_">DispUtil.Display(IDisplayee, Bind, Mat4d)</a>
</div>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee__ctor_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee__ctor_Hi_Geom_Topo_TopoStl3Hfr_System_Double_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.#ctor(Hi.Geom.Topo.TopoStl3Hfr,System.Double)">
TopoStl3HfrSmoothDisplayee(TopoStl3Hfr, double)
</h3>
<div class="markdown level1 summary"><p>Initializes a new smooth displayee wrapping the given <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3HfrSmoothDisplayee(TopoStl3Hfr source, double roundCos = 0.8)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a></dt>
<dd><p>The source topological STL.</p>
</dd>
<dt><code>roundCos</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>Round cosine threshold (default 0.8).</p>
</dd>
</dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_DefaultRoundCos" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.DefaultRoundCos">
DefaultRoundCos
</h3>
<div class="markdown level1 summary"><p>Default round cosine threshold for smooth/sharp edge classification.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const double DefaultRoundCos = 0.8</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_DefaultRoundCosSquare" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.DefaultRoundCosSquare">
DefaultRoundCosSquare
</h3>
<div class="markdown level1 summary"><p>Default round cosine squared threshold.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const double DefaultRoundCosSquare = 0.6400000000000001</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_RoundCos_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.RoundCos*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_RoundCos" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.RoundCos">
RoundCos
</h3>
<div class="markdown level1 summary"><p>Gets or sets the round cosine threshold for smooth/sharp edge classification.
Edges where the cos² of adjacent triangle normals exceeds this² are considered &ldquo;round&rdquo; (smooth).
Setting this value invalidates the cached drawings.
Corresponds to C++ <code>_round_cos</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public double RoundCos { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Source_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Source*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Source" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Source">
Source
</h3>
<div class="markdown level1 summary"><p>The source topological STL.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoStl3Hfr Source { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_ClearCache_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.ClearCache*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_ClearCache" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.ClearCache">
ClearCache()
</h3>
<div class="markdown level1 summary"><p>Invalidates all cached data (dictionaries and drawings).
Call this after modifying the source topology or changing <a class="xref" href="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html#Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_RoundCos">RoundCos</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearCache()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Display_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Display*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Display_Hi_Disp_Bind_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Display(Hi.Disp.Bind)">
Display(Bind)
</h3>
<div class="markdown level1 summary"><p>Displays the smooth-shaded topological STL: sharp edges in black + smooth-shaded faces.
Corresponds to C++ <code>TopoStl3::Render</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Display(Bind bind)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>bind</code> <a class="xref" href="Hi.Disp.Bind.html">Bind</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Dispose" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Dispose">
Dispose()
</h3>
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Dispose_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Dispose*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_Dispose_System_Boolean_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.Dispose(System.Boolean)">
Dispose(bool)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual void Dispose(bool disposing)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>disposing</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_ExpandToBox3d_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.ExpandToBox3d*"></a>
<h3 id="Hi_Geom_Topo_TopoStl3HfrSmoothDisplayee_ExpandToBox3d_Hi_Geom_Box3d_" data-uid="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.ExpandToBox3d(Hi.Geom.Box3d)">
ExpandToBox3d(Box3d)
</h3>
<div class="markdown level1 summary"><p>Expands the destination box.
This function is usually used to compute the bounding box of elements.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ExpandToBox3d(Box3d dst)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>dst</code> <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a></dt>
<dd><p>Destination box</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,663 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoTri3Hfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoTri3Hfr | HiAPI-C# 2025 ">
<meta name="description" content="Topological 3D triangle with coordinates. Maintains connectivity to points and lines. Corresponds to C++ topo_tri3_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoTri3Hfr">
<h1 id="Hi_Geom_Topo_TopoTri3Hfr" data-uid="Hi.Geom.Topo.TopoTri3Hfr" class="text-break">
Class TopoTri3Hfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Topological 3D triangle with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to points and lines.
Corresponds to C++ <code>topo_tri3_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoTri3Hfr</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoTri3Hfr</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_Lines" data-uid="Hi.Geom.Topo.TopoTri3Hfr.Lines">
Lines
</h3>
<div class="markdown level1 summary"><p>Three directed edges.
The index is aligned to the begin point:
lines[0] = {P0=ps[0], P1=ps[1]},
lines[1] = {P0=ps[1], P1=ps[2]},
lines[2] = {P0=ps[2], P1=ps[0]}.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoLine3Hfr[] Lines</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a>[]</dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_Ps" data-uid="Hi.Geom.Topo.TopoTri3Hfr.Ps">
Ps
</h3>
<div class="markdown level1 summary"><p>Three apex points. ps[i] == lines[i].P0.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly TopoPoint3Hfr[] Ps</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a>[]</dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoTri3Hfr_CachedCross_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.CachedCross*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_CachedCross" data-uid="Hi.Geom.Topo.TopoTri3Hfr.CachedCross">
CachedCross
</h3>
<div class="markdown level1 summary"><p>Gets or sets the cached cross product. Setting this is useful when
the cross is computed externally (e.g. during construction).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr? CachedCross { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a>?</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ApexAtc_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ApexAtc*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ApexAtc_System_Int32_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ApexAtc(System.Int32)">
ApexAtc(int)
</h3>
<div class="markdown level1 summary"><p>Gets the apex at the specified index.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr ApexAtc(int index)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>index</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ClearCache_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ClearCache*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ClearCache" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ClearCache">
ClearCache()
</h3>
<div class="markdown level1 summary"><p>Clears all cached values.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearCache()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoTri3Hfr_GetCross_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetCross*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_GetCross" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetCross">
GetCross()
</h3>
<div class="markdown level1 summary"><p>Gets the cross product vector from line edges: lines[2].arrow x lines[0].arrow.
Cached after first computation.
Corresponds to C++ <code>get_cross</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr GetCross()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_GetCrossByTls_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetCrossByTls*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_GetCrossByTls_Hi_Geom_Topo_TopoLine3Hfr_Hi_Geom_Topo_TopoLine3Hfr_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetCrossByTls(Hi.Geom.Topo.TopoLine3Hfr,Hi.Geom.Topo.TopoLine3Hfr)">
GetCrossByTls(TopoLine3Hfr, TopoLine3Hfr)
</h3>
<div class="markdown level1 summary"><p>Computes cross from line arrows: lines[2].arrow x lines[0].arrow.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr GetCrossByTls(TopoLine3Hfr tl0, TopoLine3Hfr tl2)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tl0</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
<dt><code>tl2</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_GetIntegerNormal_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetIntegerNormal*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_GetIntegerNormal" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetIntegerNormal">
GetIntegerNormal()
</h3>
<div class="markdown level1 summary"><p>Gets the integer normal vector (cross scaled to integer-like fraction).
Corresponds to C++ <code>get_integer_normal</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr GetIntegerNormal()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_GetNormal_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetNormal*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_GetNormal" data-uid="Hi.Geom.Topo.TopoTri3Hfr.GetNormal">
GetNormal()
</h3>
<div class="markdown level1 summary"><p>Gets the normalized (unit length) normal vector in double precision.
Cached after first computation.
Corresponds to C++ <code>get_normal</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3d GetNormal()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ResetCross_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetCross*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ResetCross" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetCross">
ResetCross()
</h3>
<div class="markdown level1 summary"><p>Recomputes the cached cross product.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ResetCross()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ResetIntegerNormal_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetIntegerNormal*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ResetIntegerNormal" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetIntegerNormal">
ResetIntegerNormal()
</h3>
<div class="markdown level1 summary"><p>Recomputes the cached integer normal.
Also recomputes the cross.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ResetIntegerNormal()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ResetNormal_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetNormal*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ResetNormal" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ResetNormal">
ResetNormal()
</h3>
<div class="markdown level1 summary"><p>Recomputes the cached normal.
Also recomputes the integer normal and cross.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ResetNormal()</code></pre>
</div>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ToString_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ToString*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ToString" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3Hfr_ToTri3d_" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ToTri3d*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3Hfr_ToTri3d" data-uid="Hi.Geom.Topo.TopoTri3Hfr.ToTri3d">
ToTri3d()
</h3>
<div class="markdown level1 summary"><p>Converts to a <a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a> (double precision).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Tri3d ToTri3d()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,426 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class TopoTri3StockHfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class TopoTri3StockHfr | HiAPI-C# 2025 ">
<meta name="description" content="Stock (pool) of topological triangles. Corresponds to C++ topo_tri3_stock_t.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.TopoTri3StockHfr">
<h1 id="Hi_Geom_Topo_TopoTri3StockHfr" data-uid="Hi.Geom.Topo.TopoTri3StockHfr" class="text-break">
Class TopoTri3StockHfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>Stock (pool) of topological triangles.
Corresponds to C++ <code>topo_tri3_stock_t</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class TopoTri3StockHfr</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">TopoTri3StockHfr</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_TopoTri3StockHfr__ctor_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr__ctor_System_Int32_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.#ctor(System.Int32)">
TopoTri3StockHfr(int)
</h3>
<div class="markdown level1 summary"><p>Initializes a new triangle stock with the specified capacity.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoTri3StockHfr(int capacity)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>capacity</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_Geom_Topo_TopoTri3StockHfr_Count_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Count*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr_Count" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Count">
Count
</h3>
<div class="markdown level1 summary"><p>Gets the number of triangles.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int Count { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3StockHfr_Tris_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Tris*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr_Tris" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Tris">
Tris
</h3>
<div class="markdown level1 summary"><p>Gets all triangles in the stock.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IReadOnlyCollection&lt;TopoTri3Hfr&gt; Tris { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlycollection-1">IReadOnlyCollection</a>&lt;<a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_TopoTri3StockHfr_Del_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Del*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr_Del_Hi_Geom_Topo_TopoTri3Hfr_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Del(Hi.Geom.Topo.TopoTri3Hfr)">
Del(TopoTri3Hfr)
</h3>
<div class="markdown level1 summary"><p>Removes a triangle from the stock and cleans up connectivity. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Del(TopoTri3Hfr src)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3StockHfr_Gen_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Gen*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr_Gen_Hi_Geom_Topo_TopoLine3Hfr_Hi_Geom_Topo_TopoLine3Hfr_Hi_Geom_Topo_TopoLine3Hfr_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Gen(Hi.Geom.Topo.TopoLine3Hfr,Hi.Geom.Topo.TopoLine3Hfr,Hi.Geom.Topo.TopoLine3Hfr)">
Gen(TopoLine3Hfr, TopoLine3Hfr, TopoLine3Hfr)
</h3>
<div class="markdown level1 summary"><p>Creates a new triangle from three directed edges and adds it to the stock. Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoTri3Hfr Gen(TopoLine3Hfr tl0, TopoLine3Hfr tl1, TopoLine3Hfr tl2)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tl0</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
<dt><code>tl1</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
<dt><code>tl2</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_TopoTri3StockHfr_Gen_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Gen*"></a>
<h3 id="Hi_Geom_Topo_TopoTri3StockHfr_Gen_Hi_Geom_Topo_TopoPoint3Hfr_Hi_Geom_Topo_TopoPoint3Hfr_Hi_Geom_Topo_TopoPoint3Hfr_Hi_Geom_Topo_TopoLine3StockHfr_" data-uid="Hi.Geom.Topo.TopoTri3StockHfr.Gen(Hi.Geom.Topo.TopoPoint3Hfr,Hi.Geom.Topo.TopoPoint3Hfr,Hi.Geom.Topo.TopoPoint3Hfr,Hi.Geom.Topo.TopoLine3StockHfr)">
Gen(TopoPoint3Hfr, TopoPoint3Hfr, TopoPoint3Hfr, TopoLine3StockHfr)
</h3>
<div class="markdown level1 summary"><p>Creates a new triangle from three points (automatically creating lines via the stock). Thread-safe.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public TopoTri3Hfr Gen(TopoPoint3Hfr tp0, TopoPoint3Hfr tp1, TopoPoint3Hfr tp2, TopoLine3StockHfr tlStock)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>tp0</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
<dt><code>tp1</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
<dt><code>tp2</code> <a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd></dd>
<dt><code>tlStock</code> <a class="xref" href="Hi.Geom.Topo.TopoLine3StockHfr.html">TopoLine3StockHfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,961 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Struct Vec3Hfr | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Struct Vec3Hfr | HiAPI-C# 2025 ">
<meta name="description" content="3D vector with elements. Provides unlimited-precision exact arithmetic for geometric computations. Corresponds to C++ vec3&amp;lt;wfr_t&amp;gt;.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo.Vec3Hfr">
<h1 id="Hi_Geom_Topo_Vec3Hfr" data-uid="Hi.Geom.Topo.Vec3Hfr" class="text-break">
Struct Vec3Hfr
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.Geom.html">Geom</a>.<a class="xref" href="Hi.Geom.Topo.html">Topo</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiDisp.dll</dd></dl>
</div>
<div class="markdown summary"><p>3D vector with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> elements.
Provides unlimited-precision exact arithmetic for geometric computations.
Corresponds to C++ <code>vec3&lt;wfr_t&gt;</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public struct Vec3Hfr : IEquatable&lt;Vec3Hfr&gt;</code></pre>
</div>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable</a>&lt;<a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a>&gt;</div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_GetMaskedValue__1___0___0_System_Boolean_">MaskUtil.GetMaskedValue&lt;T&gt;(T, T, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Common.MaskUtil.html#Hi_Common_MaskUtil_SetMask__1___0____0_System_Boolean_">MaskUtil.SetMask&lt;T&gt;(ref T, T, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="Hi_Geom_Topo_Vec3Hfr__ctor_" data-uid="Hi.Geom.Topo.Vec3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr__ctor_Hi_Geom_Fraction_System_Decimal__Hi_Geom_Fraction_System_Decimal__Hi_Geom_Fraction_System_Decimal__" data-uid="Hi.Geom.Topo.Vec3Hfr.#ctor(Hi.Geom.Fraction{System.Decimal},Hi.Geom.Fraction{System.Decimal},Hi.Geom.Fraction{System.Decimal})">
Vec3Hfr(Fraction&lt;decimal&gt;, Fraction&lt;decimal&gt;, Fraction&lt;decimal&gt;)
</h3>
<div class="markdown level1 summary"><p>Initializes a new <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a> with three fraction components.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr(Fraction&lt;decimal&gt; x, Fraction&lt;decimal&gt; y, Fraction&lt;decimal&gt; z)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>x</code> <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
<dt><code>y</code> <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
<dt><code>z</code> <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr__ctor_" data-uid="Hi.Geom.Topo.Vec3Hfr.#ctor*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr__ctor_Hi_Geom_Vec3d_System_Decimal_" data-uid="Hi.Geom.Topo.Vec3Hfr.#ctor(Hi.Geom.Vec3d,System.Decimal)">
Vec3Hfr(Vec3d, decimal)
</h3>
<div class="markdown level1 summary"><p>Initializes a new <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a> from a <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a> with the specified resolution.
Converts each double component to a fraction via Stern-Brocot approximation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr(Vec3d src, decimal resolution)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>src</code> <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>Source double-precision vector.</p>
</dd>
<dt><code>resolution</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>Fraction approximation tolerance.</p>
</dd>
</dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="Hi_Geom_Topo_Vec3Hfr_X" data-uid="Hi.Geom.Topo.Vec3Hfr.X">
X
</h3>
<div class="markdown level1 summary"><p>X component.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Fraction&lt;decimal&gt; X</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Y" data-uid="Hi.Geom.Topo.Vec3Hfr.Y">
Y
</h3>
<div class="markdown level1 summary"><p>Y component.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Fraction&lt;decimal&gt; Y</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Z" data-uid="Hi.Geom.Topo.Vec3Hfr.Z">
Z
</h3>
<div class="markdown level1 summary"><p>Z component.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Fraction&lt;decimal&gt; Z</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_Geom_Topo_Vec3Hfr_Dot_" data-uid="Hi.Geom.Topo.Vec3Hfr.Dot*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Dot_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.Dot(Hi.Geom.Topo.Vec3Hfr)">
Dot(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Dot product.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly Fraction&lt;decimal&gt; Dot(Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_Equals_" data-uid="Hi.Geom.Topo.Vec3Hfr.Equals*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Equals_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.Equals(Hi.Geom.Topo.Vec3Hfr)">
Equals(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Indicates whether the current object is equal to another object of the same type.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly bool Equals(Vec3Hfr other)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>other</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd><p>An object to compare with this object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if the current object is equal to the <code class="paramref">other</code> parameter; otherwise, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a>.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_Equals_" data-uid="Hi.Geom.Topo.Vec3Hfr.Equals*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Equals_System_Object_" data-uid="Hi.Geom.Topo.Vec3Hfr.Equals(System.Object)">
Equals(object)
</h3>
<div class="markdown level1 summary"><p>Indicates whether this instance and a specified object are equal.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override readonly bool Equals(object obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object to compare with the current instance.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if <code class="paramref">obj</code> and this instance are the same type and represent the same value; otherwise, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a>.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_Evaluate_" data-uid="Hi.Geom.Topo.Vec3Hfr.Evaluate*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Evaluate" data-uid="Hi.Geom.Topo.Vec3Hfr.Evaluate">
Evaluate()
</h3>
<div class="markdown level1 summary"><p>Evaluates all components.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr Evaluate()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_GetCross_" data-uid="Hi.Geom.Topo.Vec3Hfr.GetCross*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_GetCross_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.GetCross(Hi.Geom.Topo.Vec3Hfr)">
GetCross(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Cross product: <code>this</code> x <code class="paramref">b</code>.
Corresponds to C++ <code>get_cross</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly Vec3Hfr GetCross(Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_GetHashCode_" data-uid="Hi.Geom.Topo.Vec3Hfr.GetHashCode*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_GetHashCode" data-uid="Hi.Geom.Topo.Vec3Hfr.GetHashCode">
GetHashCode()
</h3>
<div class="markdown level1 summary"><p>Returns the hash code for this instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override readonly int GetHashCode()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>A 32-bit signed integer that is the hash code for this instance.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_Pack_" data-uid="Hi.Geom.Topo.Vec3Hfr.Pack*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_Pack" data-uid="Hi.Geom.Topo.Vec3Hfr.Pack">
Pack()
</h3>
<div class="markdown level1 summary"><p>Packs (reduces) all components to irreducible form.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Vec3Hfr Pack()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_ToString_" data-uid="Hi.Geom.Topo.Vec3Hfr.ToString*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_ToString" data-uid="Hi.Geom.Topo.Vec3Hfr.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns the fully qualified type name of this instance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override readonly string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The fully qualified type name.</p>
</dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_ToVec3d_" data-uid="Hi.Geom.Topo.Vec3Hfr.ToVec3d*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_ToVec3d" data-uid="Hi.Geom.Topo.Vec3Hfr.ToVec3d">
ToVec3d()
</h3>
<div class="markdown level1 summary"><p>Converts to a <a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a> by evaluating each fraction component.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public readonly Vec3d ToVec3d()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="operators">Operators
</h2>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Addition_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Addition*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Addition_Hi_Geom_Topo_Vec3Hfr_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Addition(Hi.Geom.Topo.Vec3Hfr,Hi.Geom.Topo.Vec3Hfr)">
operator +(Vec3Hfr, Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Addition.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr operator +(Vec3Hfr a, Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Equality_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Equality*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Equality_Hi_Geom_Topo_Vec3Hfr_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Equality(Hi.Geom.Topo.Vec3Hfr,Hi.Geom.Topo.Vec3Hfr)">
operator ==(Vec3Hfr, Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Equality operator.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool operator ==(Vec3Hfr a, Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Inequality_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Inequality*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Inequality_Hi_Geom_Topo_Vec3Hfr_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Inequality(Hi.Geom.Topo.Vec3Hfr,Hi.Geom.Topo.Vec3Hfr)">
operator !=(Vec3Hfr, Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Inequality operator.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool operator !=(Vec3Hfr a, Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Multiply_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Multiply*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Multiply_Hi_Geom_Fraction_System_Decimal__Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Multiply(Hi.Geom.Fraction{System.Decimal},Hi.Geom.Topo.Vec3Hfr)">
operator *(Fraction&lt;decimal&gt;, Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Scalar multiplication.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr operator *(Fraction&lt;decimal&gt; s, Vec3Hfr a)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>s</code> <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Multiply_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Multiply*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Multiply_Hi_Geom_Topo_Vec3Hfr_Hi_Geom_Fraction_System_Decimal__" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Multiply(Hi.Geom.Topo.Vec3Hfr,Hi.Geom.Fraction{System.Decimal})">
operator *(Vec3Hfr, Fraction&lt;decimal&gt;)
</h3>
<div class="markdown level1 summary"><p>Scalar multiplication.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr operator *(Vec3Hfr a, Fraction&lt;decimal&gt; s)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
<dt><code>s</code> <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a>&gt;</dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_Subtraction_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Subtraction*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_Subtraction_Hi_Geom_Topo_Vec3Hfr_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_Subtraction(Hi.Geom.Topo.Vec3Hfr,Hi.Geom.Topo.Vec3Hfr)">
operator -(Vec3Hfr, Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Subtraction.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr operator -(Vec3Hfr a, Vec3Hfr b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<a id="Hi_Geom_Topo_Vec3Hfr_op_UnaryNegation_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_UnaryNegation*"></a>
<h3 id="Hi_Geom_Topo_Vec3Hfr_op_UnaryNegation_Hi_Geom_Topo_Vec3Hfr_" data-uid="Hi.Geom.Topo.Vec3Hfr.op_UnaryNegation(Hi.Geom.Topo.Vec3Hfr)">
operator -(Vec3Hfr)
</h3>
<div class="markdown level1 summary"><p>Negation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Vec3Hfr operator -(Vec3Hfr a)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,196 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace Hi.Geom.Topo | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace Hi.Geom.Topo | HiAPI-C# 2025 ">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.Geom.Topo">
<h1 id="Hi_Geom_Topo" data-uid="Hi.Geom.Topo" class="text-break">Namespace Hi.Geom.Topo</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3Hfr.html">TopoLine3Hfr</a></dt>
<dd><p>Topological 3D line (directed edge) with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to adjacent reversed line and owning triangle.
Corresponds to C++ <code>topo_line3_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoLine3StockHfr.html">TopoLine3StockHfr</a></dt>
<dd><p>Stock (pool) of topological lines with deduplication based on endpoint identity.
Corresponds to C++ <code>topo_line3_stock_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3Hfr.html">TopoPoint3Hfr</a></dt>
<dd><p>Topological 3D point with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to adjacent lines and triangles.
Corresponds to C++ <code>topo_point3_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoPoint3StockHfr.html">TopoPoint3StockHfr</a></dt>
<dd><p>Stock (pool) of topological points with deduplication based on fraction coordinates.
Corresponds to C++ <code>topo_point3_stock_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a></dt>
<dd><p>Pure C# topological STL (triangle mesh) with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Hfr: High-Precision (decimal) FRaction.
Provides unlimited-precision exact arithmetic for geometric computations
without relying on native (C++) interop.
Corresponds to C++ <code>topo_stl3_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html">TopoStl3HfrFlatDisplayee</a></dt>
<dd><p>Flat-shaded displayee for <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.
Renders flat triangle faces (one normal per triangle) and all unique edge lines.
Corresponds to C++ <code>TopoStl3::_flatDraw</code> + all-lines draw.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html">TopoStl3HfrSmoothDisplayee</a></dt>
<dd><p>Smooth-shaded displayee for <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a>.
Renders smooth faces (per-vertex averaged normals) and sharp edges only.
All rendering-related cached data (adjacent cos², smooth normals) is stored
in this class via dictionaries, keeping the source <a class="xref" href="Hi.Geom.Topo.TopoStl3Hfr.html">TopoStl3Hfr</a> clean.
Corresponds to C++ <code>TopoStl3::_smoothDraw</code> + <code>_edgeDraw</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3Hfr.html">TopoTri3Hfr</a></dt>
<dd><p>Topological 3D triangle with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> coordinates.
Maintains connectivity to points and lines.
Corresponds to C++ <code>topo_tri3_t</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.TopoTri3StockHfr.html">TopoTri3StockHfr</a></dt>
<dd><p>Stock (pool) of topological triangles.
Corresponds to C++ <code>topo_tri3_stock_t</code>.</p>
</dd>
</dl>
<h3 id="structs">
Structs
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Topo.Vec3Hfr.html">Vec3Hfr</a></dt>
<dd><p>3D vector with <a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;decimal&gt;</a> elements.
Provides unlimited-precision exact arithmetic for geometric computations.
Corresponds to C++ <code>vec3&lt;wfr_t&gt;</code>.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
+11 -7
View File
@@ -130,7 +130,7 @@ The data contains in a <a class="xref" href="Hi.Geom.Box3d.html">Box3d</a> is <a
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Cylindroid.html">Cylindroid</a></dt>
<dd><p>Geometry of Cylindroid.</p>
<dd><p>3d Geometry of Cylindroid.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -251,11 +251,6 @@ This class combines a transformer with a target geometry to produce transformed
<dt><a class="xref" href="Hi.Geom.Tri3dUtil.html">Tri3dUtil</a></dt>
<dd><p>Utility of <a class="xref" href="Hi.Geom.Tri3d.html">Tri3d</a>.
Include generator of triangles from points.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.UnnullableDVec3d.html">UnnullableDVec3d</a></dt>
<dd><p>For Unnullable IO for <a class="xref" href="Hi.Geom.DVec3d.html">DVec3d</a>.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -271,6 +266,14 @@ Include generator of triangles from points.</p>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Vec3d.html">Vec3d</a></dt>
<dd><p>Basic 3D point (or vector).</p>
</dd>
</dl>
<h3 id="structs">
Structs
</h3>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.Fraction-1.html">Fraction&lt;TEva&gt;</a></dt>
<dd><p>Pure C# unlimited precision fraction.</p>
</dd>
</dl>
<h3 id="interfaces">
@@ -346,7 +349,8 @@ Enums
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.Geom.FractionStatus.html">FractionStatus</a></dt>
<dd><p>Status flags for <a class="xref" href="Hi.Geom.NativeFraction.html">NativeFraction</a>.</p>
<dd><p>Status flags for Fraction and <a class="xref" href="Hi.Geom.NativeFraction.html">NativeFraction</a>.
Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t.</p>
</dd>
</dl>
<dl class="jumplist">
@@ -456,7 +456,8 @@ public bool EnableMapOnSelectionEnd { get; set; }</code></pre>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether motion-dependent machining resolution is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -2115,7 +2116,8 @@ public bool AddTimeDataByFile(string key, string relFile, string beginTimeText,
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -2126,15 +2128,18 @@ public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale,
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>scale</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
<dd><p>The scale factor for the resolution.</p>
</dd>
<dt><code>minLinearResolution_mm</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
<dd><p>The minimum linear resolution in millimeters. Default is 0.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a></dt>
<dd></dd>
<dd><p>A new <a class="xref" href="Hi.Numerical.MachiningMotionResolutionUtils.FeedPerCycleMachiningMotionResolution.html">FeedPerCycleMachiningMotionResolution</a> instance with the specified parameters.</p>
</dd>
</dl>
@@ -2280,6 +2285,34 @@ Not for end user.</p>
<a id="Hi_MachiningProcs_RuntimeApi_ClearDefectDisplayee_" data-uid="Hi.MachiningProcs.RuntimeApi.ClearDefectDisplayee*"></a>
<h3 id="Hi_MachiningProcs_RuntimeApi_ClearDefectDisplayee" data-uid="Hi.MachiningProcs.RuntimeApi.ClearDefectDisplayee">
ClearDefectDisplayee()
</h3>
<div class="markdown level1 summary"><p>Clears the defect displayee from the workpiece.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[JsAce]
public void ClearDefectDisplayee()</code></pre>
</div>
<a id="Hi_MachiningProcs_RuntimeApi_ClearTimeMappingData_" data-uid="Hi.MachiningProcs.RuntimeApi.ClearTimeMappingData*"></a>
<h3 id="Hi_MachiningProcs_RuntimeApi_ClearTimeMappingData" data-uid="Hi.MachiningProcs.RuntimeApi.ClearTimeMappingData">
@@ -3690,18 +3723,21 @@ public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale)</c
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Scans the runtime geometry for defects. After scanning, the scanned defects will render in the workpiece.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool? ScanRuntimeGeomInfDefect()</code></pre>
<pre><code class="lang-csharp hljs">[JsAce]
public bool? ScanRuntimeGeomInfDefect()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>?</dt>
<dd></dd>
<dd><p>True if defects are found, false otherwise, or null if the operation cannot be performed.</p>
</dd>
</dl>
@@ -179,6 +179,32 @@ Interface IGetAnchorToSolidDictionary
<a id="Hi_Mech_IGetAnchorToSolidDictionary_PrepareAnchorSolids_" data-uid="Hi.Mech.IGetAnchorToSolidDictionary.PrepareAnchorSolids*"></a>
<h3 id="Hi_Mech_IGetAnchorToSolidDictionary_PrepareAnchorSolids" data-uid="Hi.Mech.IGetAnchorToSolidDictionary.PrepareAnchorSolids">
PrepareAnchorSolids()
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void PrepareAnchorSolids()</code></pre>
</div>
</article>
@@ -126,6 +126,9 @@ Interface IMachiningChain
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_GetAnchorToSolidDictionary">IGetAnchorToSolidDictionary.GetAnchorToSolidDictionary()</a>
</div>
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_PrepareAnchorSolids">IGetAnchorToSolidDictionary.PrepareAnchorSolids()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
@@ -1178,10 +1178,10 @@ The derived solid from <a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html
</h2>
<a id="Hi_NcMech_Workpieces_Workpiece_ClearCubeTreeDefectDrawing_" data-uid="Hi.NcMech.Workpieces.Workpiece.ClearCubeTreeDefectDrawing*"></a>
<a id="Hi_NcMech_Workpieces_Workpiece_ClearDefectDisplayee_" data-uid="Hi.NcMech.Workpieces.Workpiece.ClearDefectDisplayee*"></a>
<h3 id="Hi_NcMech_Workpieces_Workpiece_ClearCubeTreeDefectDrawing" data-uid="Hi.NcMech.Workpieces.Workpiece.ClearCubeTreeDefectDrawing">
ClearCubeTreeDefectDrawing()
<h3 id="Hi_NcMech_Workpieces_Workpiece_ClearDefectDisplayee" data-uid="Hi.NcMech.Workpieces.Workpiece.ClearDefectDisplayee">
ClearDefectDisplayee()
</h3>
@@ -1189,7 +1189,7 @@ The derived solid from <a class="xref" href="Hi.NcMech.Workpieces.Workpiece.html
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ClearCubeTreeDefectDrawing()</code></pre>
<pre><code class="lang-csharp hljs">public void ClearDefectDisplayee()</code></pre>
</div>
@@ -165,6 +165,9 @@ Interface IXyzabcMachineTool
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_GetAnchorToSolidDictionary">IGetAnchorToSolidDictionary.GetAnchorToSolidDictionary()</a>
</div>
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_PrepareAnchorSolids">IGetAnchorToSolidDictionary.PrepareAnchorSolids()</a>
</div>
<div>
<a class="xref" href="Hi.Mech.Topo.IGetAnchoredDisplayeeList.html#Hi_Mech_Topo_IGetAnchoredDisplayeeList_GetAnchoredDisplayeeList">IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList()</a>
</div>
@@ -335,7 +335,8 @@ Class HardNcRunner
<dd><p>The enumerable collection of NC code lines</p>
</dd>
<dt><code>sessionMessageHost</code> <a class="xref" href="Hi.MachiningProcs.SessionMessageHost.html">SessionMessageHost</a></dt>
<dd></dd>
<dd><p>The session message host for logging.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd><p>Cancellation token to cancel the operation</p>
</dd>
@@ -141,6 +141,9 @@ Interface IXyzabcChain
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_GetAnchorToSolidDictionary">IGetAnchorToSolidDictionary.GetAnchorToSolidDictionary()</a>
</div>
<div>
<a class="xref" href="Hi.Mech.IGetAnchorToSolidDictionary.html#Hi_Mech_IGetAnchorToSolidDictionary_PrepareAnchorSolids">IGetAnchorToSolidDictionary.PrepareAnchorSolids()</a>
</div>
<div>
<a class="xref" href="Hi.Mech.Topo.IGetAnchoredDisplayeeList.html#Hi_Mech_Topo_IGetAnchoredDisplayeeList_GetAnchoredDisplayeeList">IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList()</a>
</div>
@@ -185,7 +185,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.SqliteUtils.SqliteIdentityRole.html">SqliteIdentityRole</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -211,7 +212,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.SqliteUtils.SqliteIdentityRole.html">SqliteIdentityRole</a> class with the specified role name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -221,7 +223,8 @@ Class SqliteIdentityRole
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>roleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The role name.</p>
</dd>
</dl>
@@ -246,7 +249,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the concurrency stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -277,7 +281,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the role ID.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -308,7 +313,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the role name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -339,7 +345,8 @@ Class SqliteIdentityRole
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized role name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteIdentityStorage.RoleRow | HiAPI-C# 2025 ">
<meta name="description" content="Represents a role row in the database.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,7 +97,8 @@ Class SqliteIdentityStorage.RoleRow
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown summary"><p>Represents a role row in the database.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
@@ -184,7 +185,8 @@ Class SqliteIdentityStorage.RoleRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the concurrency stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -215,7 +217,8 @@ Class SqliteIdentityStorage.RoleRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the role ID.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -246,7 +249,8 @@ Class SqliteIdentityStorage.RoleRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the role name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -277,7 +281,8 @@ Class SqliteIdentityStorage.RoleRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized role name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -312,7 +317,8 @@ Class SqliteIdentityStorage.RoleRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Converts this row to a role object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -323,13 +329,15 @@ Class SqliteIdentityStorage.RoleRow
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">TRole</span></dt>
<dd></dd>
<dd><p>A new role instance.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to create.</p>
</dd>
</dl>
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteIdentityStorage.UserRow | HiAPI-C# 2025 ">
<meta name="description" content="Represents a user row in the database.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,7 +97,8 @@ Class SqliteIdentityStorage.UserRow
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown summary"><p>Represents a user row in the database.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
@@ -184,7 +185,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the access failed count.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -215,7 +217,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the concurrency stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -246,7 +249,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets custom data as a serialized string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -277,7 +281,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the email address.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -308,7 +313,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether the email is confirmed (1 for true, 0 for false).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -339,7 +345,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the user ID.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -370,7 +377,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the initial password.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -401,7 +409,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether lockout is enabled (1 for true, 0 for false).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -432,7 +441,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the lockout end date/time as a string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -463,7 +473,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized email address.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -494,7 +505,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized user name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -525,7 +537,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the password hash.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -556,7 +569,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the phone number.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -587,7 +601,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether the phone number is confirmed (1 for true, 0 for false).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -618,7 +633,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the security stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -649,7 +665,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether two-factor authentication is enabled (1 for true, 0 for false).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -680,7 +697,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the user name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -715,7 +733,8 @@ Class SqliteIdentityStorage.UserRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Converts this row to a user object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -726,13 +745,15 @@ Class SqliteIdentityStorage.UserRow
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">TUser</span></dt>
<dd></dd>
<dd><p>A new user instance.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to create.</p>
</dd>
</dl>
@@ -328,7 +328,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Adds a user to a role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -338,11 +339,14 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>userId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The user ID.</p>
</dd>
<dt><code>normalizedRoleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized role name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
@@ -395,7 +399,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Creates a new role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -405,21 +410,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd></dd>
<dd><p>The role to create.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to create.</p>
</dd>
</dl>
@@ -438,7 +447,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Creates a new user asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -448,21 +458,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>user</code> <span class="xref">TUser</span></dt>
<dd></dd>
<dd><p>The user to create.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to create.</p>
</dd>
</dl>
@@ -481,7 +495,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Deletes a role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -491,21 +506,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd></dd>
<dd><p>The role to delete.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to delete.</p>
</dd>
</dl>
@@ -524,7 +543,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Deletes a user asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -534,21 +554,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>user</code> <span class="xref">TUser</span></dt>
<dd></dd>
<dd><p>The user to delete.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to delete.</p>
</dd>
</dl>
@@ -567,7 +591,7 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
<div class="markdown level1 summary"><p>Releases all resources used by the <a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -594,7 +618,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Releases the unmanaged resources used by the <a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a> and optionally releases the managed resources.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -604,7 +629,8 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>disposing</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
<dd><p>True to release both managed and unmanaged resources; false to release only unmanaged resources.</p>
</dd>
</dl>
@@ -625,7 +651,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Finds a role by its ID asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -635,21 +662,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>roleId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The role ID.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TRole&gt;</dt>
<dd></dd>
<dd><p>The role if found, otherwise null.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to find.</p>
</dd>
</dl>
@@ -668,7 +699,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Finds a role by its normalized name asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -678,21 +710,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>normalizedName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized role name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TRole&gt;</dt>
<dd></dd>
<dd><p>The role if found, otherwise null.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to find.</p>
</dd>
</dl>
@@ -711,7 +747,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Finds a user by their normalized email asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -721,21 +758,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>normalizedEmail</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized email address.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TUser&gt;</dt>
<dd></dd>
<dd><p>The user if found, otherwise null.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to find.</p>
</dd>
</dl>
@@ -754,7 +795,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Finds a user by their ID asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -764,21 +806,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>userId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The user ID.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TUser&gt;</dt>
<dd></dd>
<dd><p>The user if found, otherwise null.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to find.</p>
</dd>
</dl>
@@ -797,7 +843,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Finds a user by their normalized user name asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -807,21 +854,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>normalizedUserName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized user name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;TUser&gt;</dt>
<dd></dd>
<dd><p>The user if found, otherwise null.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to find.</p>
</dd>
</dl>
@@ -840,7 +891,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets the roles for a user asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -850,15 +902,18 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>userId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The user ID.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ilist-1">IList</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;&gt;</dt>
<dd></dd>
<dd><p>A list of role names.</p>
</dd>
</dl>
@@ -878,7 +933,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets all roles as a queryable collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -889,13 +945,15 @@ Class SqliteIdentityStorage
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;TRole&gt;</dt>
<dd></dd>
<dd><p>A queryable collection of roles.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of roles to retrieve.</p>
</dd>
</dl>
@@ -914,7 +972,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets all users in a role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -924,21 +983,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>normalizedRoleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized role name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ilist-1">IList</a>&lt;TUser&gt;&gt;</dt>
<dd></dd>
<dd><p>A list of users in the role.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of users to retrieve.</p>
</dd>
</dl>
@@ -957,7 +1020,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets all users as a queryable collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -968,13 +1032,15 @@ Class SqliteIdentityStorage
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;TUser&gt;</dt>
<dd></dd>
<dd><p>A queryable collection of users.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of users to retrieve.</p>
</dd>
</dl>
@@ -993,7 +1059,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Checks if a user is in a role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -1003,17 +1070,21 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>userId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The user ID.</p>
</dd>
<dt><code>normalizedRoleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized role name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>&gt;</dt>
<dd></dd>
<dd><p>True if the user is in the role, otherwise false.</p>
</dd>
</dl>
@@ -1033,7 +1104,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Removes a user from a role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -1043,11 +1115,14 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>userId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The user ID.</p>
</dd>
<dt><code>normalizedRoleName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dd><p>The normalized role name.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
@@ -1073,7 +1148,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Updates an existing role asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -1083,21 +1159,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>role</code> <span class="xref">TRole</span></dt>
<dd></dd>
<dd><p>The role to update.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TRole</code></dt>
<dd></dd>
<dd><p>The type of role to update.</p>
</dd>
</dl>
@@ -1116,7 +1196,8 @@ Class SqliteIdentityStorage
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Updates an existing user asynchronously.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -1126,21 +1207,25 @@ Class SqliteIdentityStorage
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>user</code> <span class="xref">TUser</span></dt>
<dd></dd>
<dd><p>The user to update.</p>
</dd>
<dt><code>cancellationToken</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken">CancellationToken</a></dt>
<dd></dd>
<dd><p>The cancellation token.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1">Task</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.identity.identityresult">IdentityResult</a>&gt;</dt>
<dd></dd>
<dd><p>The result of the operation.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>TUser</code></dt>
<dd></dd>
<dd><p>The type of user to update.</p>
</dd>
</dl>
@@ -185,7 +185,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the access failed count.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -216,7 +217,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the concurrency stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -247,7 +249,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the email address.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -278,7 +281,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether the email is confirmed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -309,7 +313,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the user ID.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -340,7 +345,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the initial password.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -371,7 +377,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether lockout is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -402,7 +409,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the lockout end date/time.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -433,7 +441,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized email address.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -464,7 +473,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the normalized user name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -495,7 +505,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the password hash.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -526,7 +537,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the phone number.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -557,7 +569,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether the phone number is confirmed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -588,7 +601,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the security stamp.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -619,7 +633,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets whether two-factor authentication is enabled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -650,7 +665,8 @@ Class SqliteIdentityUser
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the user name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -200,7 +200,8 @@ Class SqliteRoleStore&lt;TRole&gt;
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.SqliteUtils.SqliteRoleStore-1.html">SqliteRoleStore&lt;TRole&gt;</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -210,7 +211,8 @@ Class SqliteRoleStore&lt;TRole&gt;
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>storage</code> <a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a></dt>
<dd></dd>
<dd><p>The SQLite identity storage.</p>
</dd>
</dl>
@@ -235,7 +237,7 @@ Class SqliteRoleStore&lt;TRole&gt;
</h3>
<div class="markdown level1 summary"><p>Returns an <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of roles.</p>
<div class="markdown level1 summary"><p>Gets all roles as a queryable collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -250,8 +252,7 @@ Class SqliteRoleStore&lt;TRole&gt;
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;TRole&gt;</dt>
<dd><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of roles.</p>
</dd>
<dd></dd>
</dl>
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SqliteStepStorage.MillingStepLuggageRow | HiAPI-C# 2025 ">
<meta name="description" content="Represents a milling step luggage row in the database.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
@@ -97,7 +97,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
<dl><dt>Assembly</dt><dd>HiNc.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown summary"><p>Represents a milling step luggage row in the database.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
@@ -184,7 +185,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the layer engagement data as a byte array.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -215,7 +217,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the milling force data as a byte array.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -246,7 +249,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the step index.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -277,7 +281,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Gets or sets the subtraction data as a byte array.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -312,7 +317,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Converts this row to a milling step luggage object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -323,7 +329,8 @@ Class SqliteStepStorage.MillingStepLuggageRow
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.MillingSteps.MillingStepLuggage.html">MillingStepLuggage</a></dt>
<dd></dd>
<dd><p>A new milling step luggage instance.</p>
</dd>
</dl>
@@ -207,7 +207,8 @@ Class SqliteUserStore&lt;TUser&gt;
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="Hi.SqliteUtils.SqliteUserStore-1.html">SqliteUserStore&lt;TUser&gt;</a> class.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
@@ -217,7 +218,8 @@ Class SqliteUserStore&lt;TUser&gt;
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>storage</code> <a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.html">SqliteIdentityStorage</a></dt>
<dd></dd>
<dd><p>The SQLite identity storage.</p>
</dd>
</dl>
@@ -242,7 +244,7 @@ Class SqliteUserStore&lt;TUser&gt;
</h3>
<div class="markdown level1 summary"><p>Returns an <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of users.</p>
<div class="markdown level1 summary"><p>Gets all users as a queryable collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
@@ -257,8 +259,7 @@ Class SqliteUserStore&lt;TUser&gt;
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;TUser&gt;</dt>
<dd><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collection of users.</p>
</dd>
<dd></dd>
</dl>
@@ -106,11 +106,13 @@ Classes
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.RoleRow.html">SqliteIdentityStorage.RoleRow</a></dt>
<dd></dd>
<dd><p>Represents a role row in the database.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityStorage.UserRow.html">SqliteIdentityStorage.UserRow</a></dt>
<dd></dd>
<dd><p>Represents a user row in the database.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteIdentityUser.html">SqliteIdentityUser</a></dt>
@@ -130,7 +132,8 @@ MillingStepLuggage data.</p>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteStepStorage.MillingStepLuggageRow.html">SqliteStepStorage.MillingStepLuggageRow</a></dt>
<dd></dd>
<dd><p>Represents a milling step luggage row in the database.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.SqliteUtils.SqliteUserStore-1.html">SqliteUserStore&lt;TUser&gt;</a></dt>
@@ -0,0 +1,331 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class WpfDispUtil | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class WpfDispUtil | HiAPI-C# 2025 ">
<meta name="description" content="Registers WPF as the display framework for , supporting multiple windows identified by key.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.WpfPlus.Disp.WpfDispUtil">
<h1 id="Hi_WpfPlus_Disp_WpfDispUtil" data-uid="Hi.WpfPlus.Disp.WpfDispUtil" class="text-break">
Class WpfDispUtil
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.WpfPlus.html">WpfPlus</a>.<a class="xref" href="Hi.WpfPlus.Disp.html">Disp</a></dd></dl>
<dl><dt>Assembly</dt><dd>Hi.WpfPlus.dll</dd></dl>
</div>
<div class="markdown summary"><p>Registers WPF as the display framework for <a class="xref" href="Hi.Disp.DispFrameUtil.html">DispFrameUtil</a>,
supporting multiple windows identified by key.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class WpfDispUtil</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">WpfDispUtil</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 id="Hi_WpfPlus_Disp_WpfDispUtil_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>
Usage pattern: call <a class="xref" href="Hi.Disp.DispFrameUtil.html#Hi_Disp_DispFrameUtil_Call_System_String_Hi_Disp_IDisplayee___">Call(string, params IDisplayee[])</a> to queue display content,
then call <a class="xref" href="Hi.WpfPlus.Disp.WpfDispUtil.html#Hi_WpfPlus_Disp_WpfDispUtil_RunApplication">RunApplication()</a> to start the WPF application and show windows.
</p>
<p>
Each unique key creates a separate <a class="xref" href="Hi.WpfPlus.Disp.RenderingWindow.html">RenderingWindow</a>.
Calling <a class="xref" href="Hi.Disp.DispFrameUtil.html#Hi_Disp_DispFrameUtil_Call_System_String_Hi_Disp_IDisplayee___">Call(string, params IDisplayee[])</a> with the same key updates the existing window.
</p>
<example>
<pre><code class="lang-csharp">// Queue display content (before or after Run)
DispFrameUtil.CallDispFrame("Window1", displayee1);
DispFrameUtil.CallDispFrame("Window2", displayee2);
// Start the WPF application (blocks until all windows are closed)
DispFrameWpf.Run();</code></pre>
</example>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_WpfPlus_Disp_WpfDispUtil_Call_" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.Call*"></a>
<h3 id="Hi_WpfPlus_Disp_WpfDispUtil_Call_System_String_Hi_Disp_IDisplayee___" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.Call(System.String,Hi.Disp.IDisplayee[])">
Call(string, params IDisplayee[])
</h3>
<div class="markdown level1 summary"><p>Configures the display engine with the specified displayees for the given title.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static DispEngineConfig Call(string title, params IDisplayee[] displayees)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>title</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The title/key to identify the display window.</p>
</dd>
<dt><code>displayees</code> <a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a>[]</dt>
<dd><p>The displayees to be configured.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Disp.DispEngineConfig.html">DispEngineConfig</a></dt>
<dd><p>The display engine configuration.</p>
</dd>
</dl>
<a id="Hi_WpfPlus_Disp_WpfDispUtil_Init_" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.Init*"></a>
<h3 id="Hi_WpfPlus_Disp_WpfDispUtil_Init" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.Init">
Init()
</h3>
<div class="markdown level1 summary"><p>Initializes the display engine.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Init()</code></pre>
</div>
<a id="Hi_WpfPlus_Disp_WpfDispUtil_RunApplication_" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.RunApplication*"></a>
<h3 id="Hi_WpfPlus_Disp_WpfDispUtil_RunApplication" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.RunApplication">
RunApplication()
</h3>
<div class="markdown level1 summary"><p>Starts the WPF application and shows all configured windows.
Blocks until all windows are closed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void RunApplication()</code></pre>
</div>
<a id="Hi_WpfPlus_Disp_WpfDispUtil_RunApplication_" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.RunApplication*"></a>
<h3 id="Hi_WpfPlus_Disp_WpfDispUtil_RunApplication_System_String_Hi_Disp_IDisplayee___" data-uid="Hi.WpfPlus.Disp.WpfDispUtil.RunApplication(System.String,Hi.Disp.IDisplayee[])">
RunApplication(string, params IDisplayee[])
</h3>
<div class="markdown level1 summary"><p>Configures the display engine with the specified displayees and starts the WPF application.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void RunApplication(string title, params IDisplayee[] displayees)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>title</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The title/key to identify the display window.</p>
</dd>
<dt><code>displayees</code> <a class="xref" href="Hi.Disp.IDisplayee.html">IDisplayee</a>[]</dt>
<dd><p>The displayees to be configured.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>
@@ -103,6 +103,12 @@ Handles user interactions, rendering, and integration with the DispEngine system
<dl class="jumplist">
<dt><a class="xref" href="Hi.WpfPlus.Disp.RenderingWindow.html">RenderingWindow</a></dt>
<dd><p>Window for 3D rendering.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="Hi.WpfPlus.Disp.WpfDispUtil.html">WpfDispUtil</a></dt>
<dd><p>Registers WPF as the display framework for <a class="xref" href="Hi.Disp.DispFrameUtil.html">DispFrameUtil</a>,
supporting multiple windows identified by key.</p>
</dd>
</dl>
+43 -3
View File
@@ -927,6 +927,9 @@
<li>
<a href="Hi.Geom.FractionStatus.html" name="" title="FractionStatus">FractionStatus</a>
</li>
<li>
<a href="Hi.Geom.Fraction-1.html" name="" title="Fraction&lt;TEva&gt;">Fraction&lt;TEva&gt;</a>
</li>
<li>
<a href="Hi.Geom.GeomCombination.html" name="" title="GeomCombination">GeomCombination</a>
</li>
@@ -1029,9 +1032,6 @@
<li>
<a href="Hi.Geom.Tri3dUtil.html" name="" title="Tri3dUtil">Tri3dUtil</a>
</li>
<li>
<a href="Hi.Geom.UnnullableDVec3d.html" name="" title="UnnullableDVec3d">UnnullableDVec3d</a>
</li>
<li>
<a href="Hi.Geom.Vec2d.html" name="" title="Vec2d">Vec2d</a>
</li>
@@ -1096,6 +1096,43 @@
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="Hi.Geom.Topo.html" name="" title="Hi.Geom.Topo">Hi.Geom.Topo</a>
<ul class="nav level2">
<li>
<a href="Hi.Geom.Topo.TopoLine3Hfr.html" name="" title="TopoLine3Hfr">TopoLine3Hfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoLine3StockHfr.html" name="" title="TopoLine3StockHfr">TopoLine3StockHfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoPoint3Hfr.html" name="" title="TopoPoint3Hfr">TopoPoint3Hfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoPoint3StockHfr.html" name="" title="TopoPoint3StockHfr">TopoPoint3StockHfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoStl3Hfr.html" name="" title="TopoStl3Hfr">TopoStl3Hfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html" name="" title="TopoStl3HfrFlatDisplayee">TopoStl3HfrFlatDisplayee</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html" name="" title="TopoStl3HfrSmoothDisplayee">TopoStl3HfrSmoothDisplayee</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoTri3Hfr.html" name="" title="TopoTri3Hfr">TopoTri3Hfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.TopoTri3StockHfr.html" name="" title="TopoTri3StockHfr">TopoTri3StockHfr</a>
</li>
<li>
<a href="Hi.Geom.Topo.Vec3Hfr.html" name="" title="Vec3Hfr">Vec3Hfr</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="Hi.Geom.UnitUtils.html" name="" title="Hi.Geom.UnitUtils">Hi.Geom.UnitUtils</a>
@@ -3376,6 +3413,9 @@
<li>
<a href="Hi.WpfPlus.Disp.RenderingWindow.html" name="" title="RenderingWindow">RenderingWindow</a>
</li>
<li>
<a href="Hi.WpfPlus.Disp.WpfDispUtil.html" name="" title="WpfDispUtil">WpfDispUtil</a>
</li>
</ul>
</li>
<li>
File diff suppressed because one or more lines are too long