@@ -912,6 +945,41 @@ This function is usually used to compute the bounding box of elements.
+
+
+
+ GetInfEdgeCutsInfo()
+
+
+
+
Gets info for all nodes that contain inf or -inf in their edge_cuts array.
+Each node's box is grouped with its corresponding inf edge indices.
+This is useful for identifying and visualizing non-manifold geometry issues in the cube tree.
+
+
+
+
+
public List<CubeTree.InfNodeInfo> GetInfEdgeCutsInfo()
For Internal Use Only.
+Represents a wire cube for display purposes.
+The edge index follows the C++ cube_node_t pattern:
+edgeIndex = (dir << 2) | (th1 << 1) | th0
+where dir is the edge direction (0=X, 1=Y, 2=Z),
+th0 is the position flag in (dir+1)%3 direction,
+th1 is the position flag in (dir+2)%3 direction.
+
+
+
+
+
public class WireCube : IDisplayee, IExpandToBox3d
Gets the corner index (0-7) from an edge index and whether it's the tail endpoint.
+This follows the C++ WireCube::getCorner(int edgeIndex, bool is_tail) pattern.
+
+
+
+
+
public static int GetCorner(int edgeIndex, bool isTail)
For Internal Use Only.
+Represents a wire cube for display purposes.
+The edge index follows the C++ cube_node_t pattern:
+edgeIndex = (dir << 2) | (th1 << 1) | th0
+where dir is the edge direction (0=X, 1=Y, 2=Z),
+th0 is the position flag in (dir+1)%3 direction,
+th1 is the position flag in (dir+2)%3 direction.
Utility methods for working with IProgress implementations.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Range-1.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Range-1.html
index 704cada..3bd43db 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Range-1.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Range-1.html
@@ -102,8 +102,7 @@ Class Range<T>
-
[BsonIgnoreExtraElements]
-public class Range<T> : IEquatable<Range<T>>
+
public class Range<T> : IEquatable<Range<T>>
@@ -260,8 +259,7 @@ public class Range<T> : IEquatable<Range<T>>
-
[BsonIgnore]
-public T max
+
public T max
@@ -292,8 +290,7 @@ public T max
-
[BsonIgnore]
-public T min
+
public T min
@@ -329,8 +326,7 @@ public T min
-
[BsonElement]
-public T Max { get; set; }
+
public T Max { get; set; }
@@ -362,8 +358,7 @@ public T Max { get; set; }
-
[BsonElement]
-public T Min { get; set; }
+
public T Min { get; set; }
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
index 8b46f52..94165d6 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
@@ -264,11 +264,6 @@ Used to track sequential state changes of a value.
This method is useful for implementing conditional UI behaviors based on mouse button state:
-
// Check if left mouse button is pressed
-if (dispEngine.IsMouseButtonPressed((long)HiMouseButton.Left))
-{
- // Perform special action while left button is held down
-}
-
-
- KeyDown(long)
+
+ KeyDown(string)
@@ -1403,13 +1436,13 @@ This function is typically called in the GUI implementation for keyboard interac
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.Pickable.html b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.Pickable.html
index a01956f..fcdeb0b 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.Pickable.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.Pickable.html
@@ -448,8 +448,8 @@ Note that it has to be disposed manually or the object occurs memory leak.
-
- OnKeyDown(key_event_t, panel_state_t)
+
+ OnKeyDown(key_event_t, DispEngine)
@@ -458,7 +458,7 @@ Note that it has to be disposed manually or the object occurs memory leak.
-
public virtual void OnKeyDown(key_event_t e, panel_state_t state)
+
public virtual void OnKeyDown(key_event_t e, DispEngine dispEngine)
Parameters
@@ -466,8 +466,8 @@ Note that it has to be disposed manually or the object occurs memory leak.
public static Drawing GetLineStripDraw(this IList<Vec3d> points)
+
public static Drawing ToLineStripDrawing(this IList<Vec3d> points)
Parameters
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.html b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.html
index 191f4c3..d5018b3 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Disp.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Disp.html
@@ -202,6 +202,11 @@ This function should be use with
Native wrapper for C++ fraction_t<0> (unlimited precision fraction).
+A fraction consists of a numerator and denominator using unlimited precision integers.
Delegate to geom::fraction_t<0> (fraction_unlimited_t) in CppCore.
+
The fraction may be not packed or not evaluated. However, all fraction numerator
+and denominator are singular managed and denominator is never negative.
+
+
+
+
Constructors
+
+
+
+
+
+
+ NativeFraction()
+
+
+
+
Initializes a new instance of zero fraction.
+
+
+
+
+
public NativeFraction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NativeFraction(NativeFraction)
+
+
+
+
Initializes a new instance by copying another fraction.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.TransformationGeom.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.TransformationGeom.html
index 7eeec66..f09f530 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.TransformationGeom.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.TransformationGeom.html
@@ -163,6 +163,9 @@ This class combines a transformer with a target geometry to produce transformed
@@ -1816,8 +1794,7 @@ public double Y { get; set; }
-
[BsonElement]
-public double Z { get; set; }
+
public double Z { get; set; }
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.html
index d304aa4..bb65314 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.html
@@ -172,6 +172,12 @@ The plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector
Native wrapper for C++ fraction_t<0> (unlimited precision fraction).
+A fraction consists of a numerator and denominator using unlimited precision integers.
@@ -265,11 +271,6 @@ Include generator of triangles from points.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html
index 2d436f2..9cc0256 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Mapping.TimeMapping.html
@@ -475,8 +475,8 @@ It matches the class name to maintain consistency between code and XML represent
-
@@ -515,7 +515,7 @@ If the file is already being loaded by another thread, waits for that operation
-
Remarks
+
Remarks
This method is thread-safe and ensures each file is only read once, even with concurrent access.
Any exceptions during file reading are captured and can be inspected through the task's exception property.
@@ -676,8 +676,8 @@ Any exceptions during file reading are captured and can be inspected through the
-
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.ConstRatioProfile.html b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.ConstRatioProfile.html
index bf9baa9..6a9b0d1 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.ConstRatioProfile.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.ConstRatioProfile.html
@@ -168,6 +168,9 @@ This profile maintains a constant ratio between inner and outer radii.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.CustomSpinningProfile.html b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.CustomSpinningProfile.html
index d4e605a..279dbf5 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.CustomSpinningProfile.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.CustomSpinningProfile.html
@@ -168,6 +168,9 @@ This profile allows for custom geometry to be used as the cutter profile.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.FluteDependentRatioProfile.html b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.FluteDependentRatioProfile.html
index e547d96..0ef877c 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.FluteDependentRatioProfile.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Milling.Cutters.FluteDependentRatioProfile.html
@@ -169,6 +169,9 @@ This profile determines the ratio between inner and outer radii based on the num
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Native.html b/App/wwwroot/HiAPI-docsite/api/Hi.Native.html
index 8cb3627..e7acdd0 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Native.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Native.html
@@ -142,7 +142,8 @@ A bind_t object is generated by rendering in the every beginning of each renderi
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html
index 6214f93..a41ac6b 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.NcOpt.NcOptProc.html
@@ -445,8 +445,8 @@ Since the folder can be moving with the configuration file.
-
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.HardNcEnv.html b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.HardNcEnv.html
index 15bbfef..faf85e8 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.HardNcEnv.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Numerical.HardNcEnv.html
@@ -1384,8 +1384,8 @@ Set to NaN if tooling motion not apply the axis motion.
-
- CheckStrokeLimit(DVec3d, IMessageHost)
+
+ CheckStrokeLimit(DVec3d, IProgress<object>)
@@ -1394,7 +1394,7 @@ Set to NaN if tooling motion not apply the axis motion.
-
public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IMessageHost messageKit)
+
public bool CheckStrokeLimit(DVec3d mcXyzabc_mm_rad, IProgress<object> messageKit)
Parameters
@@ -1402,7 +1402,7 @@ Set to NaN if tooling motion not apply the axis motion.
<xref:Hi.Disp.DispEngine.KeyDown(System.Int64)> / <xref:Hi.Disp.DispEngine.KeyUp(System.Int64)> and <xref:Hi.Disp.DispEngine.KeyDownTransform(System.Int64,Hi.Native.key_table__transform_view_by_key_pressing_t)>
Fix Siemens coordinate transform for successive file running
+
Fix relief face collision floating-point precision issue
+
Replace MongoDB with SQLite for local step data storage (significant package size reduction)
+
Add machining and motion resolution dynamic adjustment functions
+
HiNc Packages Version 3.1.106
Rename mapping API for clearer naming:
diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json
index c057774..963d78f 100644
--- a/App/wwwroot/HiAPI-docsite/index.json
+++ b/App/wwwroot/HiAPI-docsite/index.json
@@ -12,7 +12,37 @@
"api/Hi.Cbtr.CbtrPickable.html": {
"href": "api/Hi.Cbtr.CbtrPickable.html",
"title": "Class CbtrPickable | HiAPI-C# 2025",
- "summary": "Class CbtrPickable Namespace Hi.Cbtr Assembly HiCbtr.dll Pickable of CubeTree grids. public class CbtrPickable : Pickable, IGetPickable, IDisposable Inheritance object Pickable CbtrPickable Implements IGetPickable IDisposable Derived DiffAttachment UnhighlightablePickable ClStripPos Inherited Members Pickable.Pickables Pickable.mark Pickable.PickingID Pickable.GetPickable() Pickable.OnKeyDown(key_event_t, panel_state_t) Pickable.OnKeyUp(key_event_t, panel_state_t) Pickable.OnMouseDown(mouse_button_event_t, panel_state_t) Pickable.OnMouseUp(mouse_button_event_t, panel_state_t) Pickable.OnMouseMove(mouse_move_event_t, panel_state_t) Pickable.OnMouseWheel(mouse_wheel_event_t, panel_state_t) Pickable.Dispose() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CbtrPickable() Initializes a new instance of the CbtrPickable class with default white color. public CbtrPickable() CbtrPickable(vec3f) Initializes a new instance of the CbtrPickable class with specified color. public CbtrPickable(vec3f rgb) Parameters rgb vec3f The RGB color for the pickable object. Properties AttachmentPriority The color and Pickable priority if several attachments occupied at the same pixel. NAN is the lowest priority. the smaller number is the lower priority. public virtual double AttachmentPriority { get; set; } Property Value double Rgb Color RGB. public virtual Vec3d Rgb { get; set; } Property Value Vec3d Methods CleanLinkedCbtrNodesDrawingCache() CleanLinkedNodesDrawingCache. Not thread safe with substraction process. public void CleanLinkedCbtrNodesDrawingCache() Dispose(bool) protected override void Dispose(bool disposing) Parameters disposing bool Highlight(bool) Highlight the CbtrPickable by triangles line. Only one CbtrPickable can be highlighted on a CubeTree. public void Highlight(bool b) Parameters b bool highligt or not OnMouseEnter(ui_event_type, panel_state_t) Behavior on mouse enter public override void OnMouseEnter(ui_event_type e, panel_state_t state) Parameters e ui_event_type event type state panel_state_t panel state OnMouseLeave(ui_event_type, panel_state_t) Behavior on mouse leave public override void OnMouseLeave(ui_event_type e, panel_state_t state) Parameters e ui_event_type event type state panel_state_t panel state ShrinkToFitNodeMap() ShrinkToFitNodeMap. Not thread safe with substraction process. public void ShrinkToFitNodeMap()"
+ "summary": "Class CbtrPickable Namespace Hi.Cbtr Assembly HiCbtr.dll Pickable of CubeTree grids. public class CbtrPickable : Pickable, IGetPickable, IDisposable Inheritance object Pickable CbtrPickable Implements IGetPickable IDisposable Derived DiffAttachment UnhighlightablePickable ClStripPos Inherited Members Pickable.Pickables Pickable.mark Pickable.PickingID Pickable.GetPickable() Pickable.OnKeyDown(key_event_t, DispEngine) Pickable.OnKeyUp(key_event_t, DispEngine) Pickable.OnMouseDown(mouse_button_event_t, DispEngine) Pickable.OnMouseUp(mouse_button_event_t, DispEngine) Pickable.OnMouseMove(mouse_move_event_t, DispEngine) Pickable.OnMouseWheel(mouse_wheel_event_t, DispEngine) Pickable.Dispose() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CbtrPickable() Initializes a new instance of the CbtrPickable class with default white color. public CbtrPickable() CbtrPickable(vec3f) Initializes a new instance of the CbtrPickable class with specified color. public CbtrPickable(vec3f rgb) Parameters rgb vec3f The RGB color for the pickable object. Properties AttachmentPriority The color and Pickable priority if several attachments occupied at the same pixel. NAN is the lowest priority. the smaller number is the lower priority. public virtual double AttachmentPriority { get; set; } Property Value double Rgb Color RGB. public virtual Vec3d Rgb { get; set; } Property Value Vec3d Methods CleanLinkedCbtrNodesDrawingCache() CleanLinkedNodesDrawingCache. Not thread safe with substraction process. public void CleanLinkedCbtrNodesDrawingCache() Dispose(bool) protected override void Dispose(bool disposing) Parameters disposing bool Highlight(bool) Highlight the CbtrPickable by triangles line. Only one CbtrPickable can be highlighted on a CubeTree. public void Highlight(bool b) Parameters b bool highligt or not OnMouseEnter(ui_event_type, DispEngine) Behavior on mouse enter public override void OnMouseEnter(ui_event_type e, DispEngine dispEngine) Parameters e ui_event_type event type dispEngine DispEngine display engine OnMouseLeave(ui_event_type, DispEngine) Behavior on mouse leave public override void OnMouseLeave(ui_event_type e, DispEngine dispEngine) Parameters e ui_event_type event type dispEngine DispEngine display engine ShrinkToFitNodeMap() ShrinkToFitNodeMap. Not thread safe with substraction process. public void ShrinkToFitNodeMap()"
+ },
+ "api/Hi.Cbtr.ConstructionDefectDisplayee.html": {
+ "href": "api/Hi.Cbtr.ConstructionDefectDisplayee.html",
+ "title": "Class ConstructionDefectDisplayee | HiAPI-C# 2025",
+ "summary": "Class ConstructionDefectDisplayee Namespace Hi.Cbtr Assembly HiCbtr.dll Encapsulates cube tree construction defect results, including both defect data and visualization drawings. public class ConstructionDefectDisplayee : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ConstructionDefectDisplayee Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ConstructionDefectDisplayee(List) Ctor. public ConstructionDefectDisplayee(List defectNodeInfos) Parameters defectNodeInfos List Defect node infos from cube tree construction. Properties DefectNodeInfos Defect node infos collected during cube tree construction. public List DefectNodeInfos { get; } Property Value List DefectNodesToShow Maximum number of defect nodes to show. public int DefectNodesToShow { get; set; } Property Value int HasDefects Whether any defects were found. public bool HasDefects { get; } Property Value bool Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetFittingView(Box3d, Mat4d) Gets a fitting view matrix for a defect box, preserving the current view rotation. public static Mat4d GetFittingView(Box3d defectBox, Mat4d sketchView) Parameters defectBox Box3d The defect box to fit. sketchView Mat4d The current sketch view matrix. Returns Mat4d A view matrix that fits the defect box, or the original sketch view if inputs are invalid. Events DefectBoxSelected Fired when a defect box flag is selected (clicked). The parameter is the Box3d of the selected defect box. public event Action DefectBoxSelected Event Type Action"
+ },
+ "api/Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html": {
+ "href": "api/Hi.Cbtr.CubeTree.DefectNodeInfo.TriWireInfo.html",
+ "title": "Class CubeTree.DefectNodeInfo.TriWireInfo | HiAPI-C# 2025",
+ "summary": "Class CubeTree.DefectNodeInfo.TriWireInfo Namespace Hi.Cbtr Assembly HiCbtr.dll A single triangle-wire relation entry within a defect node. public class CubeTree.DefectNodeInfo.TriWireInfo Inheritance object CubeTree.DefectNodeInfo.TriWireInfo Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties EdgeIndex The wire edge index (0-11). public int EdgeIndex { get; set; } Property Value int Tri The triangle geometry. public Tri3d Tri { get; set; } Property Value Tri3d TriWireRelation Tri-wire relation data. public CubeTree.TriWireRelationInterop TriWireRelation { get; set; } Property Value CubeTree.TriWireRelationInterop"
+ },
+ "api/Hi.Cbtr.CubeTree.DefectNodeInfo.html": {
+ "href": "api/Hi.Cbtr.CubeTree.DefectNodeInfo.html",
+ "title": "Class CubeTree.DefectNodeInfo | HiAPI-C# 2025",
+ "summary": "Class CubeTree.DefectNodeInfo Namespace Hi.Cbtr Assembly HiCbtr.dll Info for a single defect node detected during cube tree construction. public class CubeTree.DefectNodeInfo Inheritance object CubeTree.DefectNodeInfo Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Box Bounding box of the defect node. public Box3d Box { get; set; } Property Value Box3d Level Tree level of the defect node. public int Level { get; set; } Property Value int TriWireInfos Triangle-wire relation info for each triangle involved in this defect node. public List TriWireInfos { get; } Property Value List"
+ },
+ "api/Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html": {
+ "href": "api/Hi.Cbtr.CubeTree.DefectTriWireInfoInterop.html",
+ "title": "Struct CubeTree.DefectTriWireInfoInterop | HiAPI-C# 2025",
+ "summary": "Struct CubeTree.DefectTriWireInfoInterop Namespace Hi.Cbtr Assembly HiCbtr.dll Interop struct matching C++ defect_tri_wire_info_interop_t. public struct CubeTree.DefectTriWireInfoInterop Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields EdgeIndex Wire edge index (0-11). public int EdgeIndex Field Value int Tri Triangle geometry. public tri3d Tri Field Value tri3d TriWireRelation Tri-wire relation data. public CubeTree.TriWireRelationInterop TriWireRelation Field Value CubeTree.TriWireRelationInterop"
+ },
+ "api/Hi.Cbtr.CubeTree.InfNodeInfo.html": {
+ "href": "api/Hi.Cbtr.CubeTree.InfNodeInfo.html",
+ "title": "Class CubeTree.InfNodeInfo | HiAPI-C# 2025",
+ "summary": "Class CubeTree.InfNodeInfo Namespace Hi.Cbtr Assembly HiCbtr.dll Info for a single node with inf edge_cuts, containing box and edge indices. public class CubeTree.InfNodeInfo Inheritance object CubeTree.InfNodeInfo Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Box Bounding box of the node. public Box3d Box { get; set; } Property Value Box3d InfEdgeIndices Edge indices (0-11) of inf edge_cuts in this node. public List InfEdgeIndices { get; } Property Value List"
+ },
+ "api/Hi.Cbtr.CubeTree.TriWireRelationInterop.html": {
+ "href": "api/Hi.Cbtr.CubeTree.TriWireRelationInterop.html",
+ "title": "Struct CubeTree.TriWireRelationInterop | HiAPI-C# 2025",
+ "summary": "Struct CubeTree.TriWireRelationInterop Namespace Hi.Cbtr Assembly HiCbtr.dll Interop struct matching C++ tri_wire_relation_interop_t. public struct CubeTree.TriWireRelationInterop Inherited Members ValueType.Equals(object) ValueType.GetHashCode() ValueType.ToString() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields CachedPosCornerStateMask For unparallel: 2 corner_state_t at the pos (2 x 2 bits, {0th=min, 1th=max}). For parallel: 0. public int CachedPosCornerStateMask Field Value int Pos0 For parallel: min position. For unparallel: intersection position. public double Pos0 Field Value double Pos1 For parallel: max position. For unparallel: NaN. public double Pos1 Field Value double RelationMask Bitmask of tri_wire_relation_enum_t flags. public int RelationMask Field Value int Properties IsOutside Is outside relation. public bool IsOutside { get; } Property Value bool IsParallel Is parallel relation. public bool IsParallel { get; } Property Value bool IsUnparallel Is unparallel relation. public bool IsUnparallel { get; } Property Value bool"
},
"api/Hi.Cbtr.CubeTree.diff_response_func_t.html": {
"href": "api/Hi.Cbtr.CubeTree.diff_response_func_t.html",
@@ -22,7 +52,7 @@
"api/Hi.Cbtr.CubeTree.html": {
"href": "api/Hi.Cbtr.CubeTree.html",
"title": "Class CubeTree | HiAPI-C# 2025",
- "summary": "Class CubeTree Namespace Hi.Cbtr Assembly HiCbtr.dll Cube-based data structure. CubeTree has high performance for free-form geometry manipulation include volume removal and addition. public class CubeTree : IDisposable, IDisplayee, ICollidee, ICollidable, IExpandToBox3d, IGetCollidable Inheritance object CubeTree Implements IDisposable IDisplayee ICollidee ICollidable IExpandToBox3d IGetCollidable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods CollisionUtil.Detect(CubeTree, TriTree, Mat4d, double, int) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) SweptableUtil.RemoveBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool) CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CubeTree(NativeStl, double, CancellationToken, IProgress) Ctor. This ctor is faster than CubeTree(NativeStl, double, CancellationToken, IProgress). public CubeTree(NativeStl stl, double preferredGridWidth, CancellationToken token, IProgress progress) Parameters stl NativeStl Triangle Grid. The triangles must be manifold geometry. preferredGridWidth double The expected resolution. token CancellationToken Cancellation token for the operation progress IProgress Progress reporter for the operation Remarks 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. 與輸入幾何的誤差分布在菱角及曲面處。 CubeTree(Stl, double, CancellationToken, IProgress) 可使用Stl或NativeStl物件初始化,使用NativeStl的速度較快。輸入的三角網格必須是流形幾何(manifold geometry),即三角形的頂點對齊其他三角形的頂點,且為封閉幾何。 public CubeTree(Stl stl, double expectedResolution, CancellationToken token, IProgress progress) Parameters stl Stl expectedResolution double 設定裕度,實際裕度會小於等於設定裕度,大約以2的指數作為級距。 與輸入幾何的誤差分布在菱角及曲面處。 token CancellationToken Cancellation token for the operation progress IProgress Progress reporter for the operation CubeTree(string) Initializes a new instance of the CubeTree class from a file. public CubeTree(string file) Parameters file string The path to the cube tree file. Fields KeyDll Key dll path. public const string KeyDll = \"hi-key.dll\" Field Value string defaultPreferredGridWidth The default grid_width for the constructor. public const double defaultPreferredGridWidth = 0.0625 Field Value double Properties CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag CubetreePtr Private element. public nint CubetreePtr { get; } Property Value nint DispCacheMb Display cache size in Mb. The cahce cost from graphic card and RAM. public static long DispCacheMb { get; set; } Property Value long Resolution Get initialized resolution. public double Resolution { get; } Property Value double TotalCacheMb Cache size used by CubeTree. Sum of TrisCacheMb and DispCacheMb. TotalCacheMb Setter distributes (2/5 of the setting value) for DispCacheMb. public static long TotalCacheMb { get; set; } Property Value long TrisCacheMb Triangles cache size in Mb. The cache costs from RAM. public static long TrisCacheMb { get; set; } Property Value long Methods CleanCache() Call Hi.Cbtr.CubeTree.CleanTrisCache() and Hi.Cbtr.CubeTree.CleanDispCache_(). public static void CleanCache() CleanDispCachee() Clean display cache of this. public void CleanDispCachee() Diff(NativeStl, double, RangeColorRule, IProgress) Compares the cube tree with an ideal geometry and returns difference attachments. public ConcurrentBag Diff(NativeStl idealGeom, double diffRadius, RangeColorRule diffRangeColorRule, IProgress progress = null) Parameters idealGeom NativeStl The ideal geometry to compare with. diffRadius double The radius for difference detection. diffRangeColorRule RangeColorRule The color rule for visualizing differences. progress IProgress Progress reporter for the operation. Returns ConcurrentBag A collection of difference attachments. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box ~CubeTree() dtor protected ~CubeTree() GetCollidable() Gets the collidable object. public ICollidable GetCollidable() Returns ICollidable The collidable object (this instance). GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetRgbTrisNativeArray(double) Get triangles in type of double array. The returned triangles is non-manifold. It may not be closed model and the apexes of triangle grid may not be overlapped. public double[] GetRgbTrisNativeArray(double resolution = 0) Parameters resolution double The preferred resolution. The real resolution may be smaller or equal the prefered resolution. The real resolution is discrete. The resolution value is at 2^i. The geometric error mainly locate at corner. Returns double[] rgb traingle grid. In sequence of r,g,b,n.x,n.y,n.z,p0.x,p0.y,p0.z,p1.x,p1.y,p1.z,p2.x,p2.y,p2.z, repetitively. A triangle take 15 double. GetTris(double) Get triangles. The returned triangles is non-manifold. It may not be closed model and the apexes of triangle grid may not be overlapped. public List GetTris(double resolution = 0) Parameters resolution double 設定裕度,實際裕度會小於等於設定裕度,大約以2的指數作為級距。與輸入幾何的誤差分布在菱角及曲面處。裕度越大,三角網格數量越少,運算也較迅速。 Returns List 三角網格 RebuildAttach(CbtrPickable) Every node in CubeTree can contain one CbtrPickable object. This function put or replace the contained data of all nodes to src. 使用UpdateAttach(CbtrPickable)會將尚未儲存資料(CbtrPickable為null)的節點放入src。 public void RebuildAttach(CbtrPickable src) Parameters src CbtrPickable RemoveFlyPiece() Removes disconnected pieces (fly pieces) from the cube tree. public void RemoveFlyPiece() Substract(CachedTris, double, bool, bool) 使用BufferedTris效率比NativeStl好。 若差集區域的裕度與本體的裕度不同,則該部位採用較低的裕度。 public UnmanagedSubstraction Substract(CachedTris cutterBufferedTris, double preferredCubeWidth, bool isBuildContactContours = false, bool isAggressiveCut = false) Parameters cutterBufferedTris CachedTris 差集幾何 preferredCubeWidth double The preferred cube width for the operation. isBuildContactContours bool 為真,則回傳的Substraction中含有差集幾何與工件幾何相交處的圍線群,該圍線群可做後續分析使用。 isAggressiveCut bool If true, uses aggressive cutting mode. Returns UnmanagedSubstraction Substract(GeomBoolCache, bool, bool) Subtracts a geometry from the cube tree using a geometry boolean cache. public UnmanagedSubstraction Substract(GeomBoolCache geomBoolCache, bool isBuildContactContours = false, bool isAggressiveCut = false) Parameters geomBoolCache GeomBoolCache The geometry boolean cache containing the geometry to subtract. isBuildContactContours bool If true, the returned Substraction will contain contact contours. isAggressiveCut bool If true, uses aggressive cutting mode. Returns UnmanagedSubstraction The result of the subtraction operation. Substract(InitStickConvex, Mat4d, double, bool, bool) Subtracts a stick convex geometry from the cube tree. public UnmanagedSubstraction Substract(InitStickConvex initStickConvex, Mat4d mat, double preferredCubeWidth, bool isBuildContactContours = false, bool isAggressiveCut = false) Parameters initStickConvex InitStickConvex The stick convex geometry to subtract. mat Mat4d The transformation matrix to apply to the stick convex. preferredCubeWidth double The preferred cube width for the operation. isBuildContactContours bool If true, the returned Substraction will contain contact contours. isAggressiveCut bool If true, uses aggressive cutting mode. Returns UnmanagedSubstraction The result of the subtraction operation. Substract(NativeStl, double, bool, bool) 與Substract(BufferedTris,...)同功能。效率較差,多了一個轉換CachedTris的步驟。 public UnmanagedSubstraction Substract(NativeStl cutterStl, double preferredCubeWidth = 0, bool isBuildContactContours = false, bool isAggressiveCut = false) Parameters cutterStl NativeStl preferredCubeWidth double isBuildContactContours bool isAggressiveCut bool Returns UnmanagedSubstraction TestDiff(out CubeTree, out NativeStl) Tests the difference calculation between a cube tree and an ideal geometry. public static void TestDiff(out CubeTree cubeTree_, out NativeStl idealGeom_) Parameters cubeTree_ CubeTree The resulting cube tree. idealGeom_ NativeStl The ideal geometry used for comparison. TestIO() Tests the input/output operations for a cube tree. public static CubeTree TestIO() Returns CubeTree The cube tree created or loaded during the test. TestSimpleRemove(out CubeTree) Tests the simple removal operation on a cube tree. public static void TestSimpleRemove(out CubeTree cubeTree_) Parameters cubeTree_ CubeTree The resulting cube tree after the removal operation. UpdateAttach(CbtrPickable) Every node in CubeTree can contain one CbtrPickable object. This function put src to the nodes that contain null. public void UpdateAttach(CbtrPickable src) Parameters src CbtrPickable WriteFile(string) Writes the cube tree to a file. public void WriteFile(string file) Parameters file string The path where the cube tree will be written."
+ "summary": "Class CubeTree Namespace Hi.Cbtr Assembly HiCbtr.dll Cube-based data structure. CubeTree has high performance for free-form geometry manipulation include volume removal and addition. public class CubeTree : IDisposable, IDisplayee, ICollidee, ICollidable, IExpandToBox3d, IGetCollidable Inheritance object CubeTree Implements IDisposable IDisplayee ICollidee ICollidable IExpandToBox3d IGetCollidable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods CollisionUtil.Detect(CubeTree, TriTree, Mat4d, double, int) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) SweptableUtil.RemoveBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool) CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CubeTree(NativeStl, double, CancellationToken, IProgress) Ctor. This ctor is faster than CubeTree(NativeStl, double, CancellationToken, IProgress). public CubeTree(NativeStl stl, double preferredGridWidth, CancellationToken token, IProgress progress) Parameters stl NativeStl Triangle Grid. The triangles must be manifold geometry. preferredGridWidth double The expected resolution. token CancellationToken Cancellation token for the operation progress IProgress Progress reporter for the operation Remarks 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. 與輸入幾何的誤差分布在菱角及曲面處。 CubeTree(Stl, double, CancellationToken, IProgress) 可使用Stl或NativeStl物件初始化,使用NativeStl的速度較快。輸入的三角網格必須是流形幾何(manifold geometry),即三角形的頂點對齊其他三角形的頂點,且為封閉幾何。 public CubeTree(Stl stl, double expectedResolution, CancellationToken token, IProgress progress) Parameters stl Stl expectedResolution double 設定裕度,實際裕度會小於等於設定裕度,大約以2的指數作為級距。 與輸入幾何的誤差分布在菱角及曲面處。 token CancellationToken Cancellation token for the operation progress IProgress Progress reporter for the operation CubeTree(string) Initializes a new instance of the CubeTree class from a file. public CubeTree(string file) Parameters file string The path to the cube tree file. Fields KeyDll Key dll path. public const string KeyDll = \"hi-key.dll\" Field Value string defaultPreferredGridWidth The default grid_width for the constructor. public const double defaultPreferredGridWidth = 0.0625 Field Value double Properties CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag CubetreePtr Private element. public nint CubetreePtr { get; } Property Value nint DispCacheMb Display cache size in Mb. The cahce cost from graphic card and RAM. public static long DispCacheMb { get; set; } Property Value long Resolution Get initialized resolution. public double Resolution { get; } Property Value double TotalCacheMb Cache size used by CubeTree. Sum of TrisCacheMb and DispCacheMb. TotalCacheMb Setter distributes (2/5 of the setting value) for DispCacheMb. public static long TotalCacheMb { get; set; } Property Value long TrisCacheMb Triangles cache size in Mb. The cache costs from RAM. public static long TrisCacheMb { get; set; } Property Value long Methods CleanCache() Call Hi.Cbtr.CubeTree.CleanTrisCache() and Hi.Cbtr.CubeTree.CleanDispCache_(). public static void CleanCache() CleanDispCachee() Clean display cache of this. public void CleanDispCachee() ContainsInfEdgeCuts() Checks if any existing node in the cube tree contains inf or -inf in its edge_cuts array. public bool ContainsInfEdgeCuts() Returns bool true if any node contains inf or -inf in edge_cuts, false otherwise. Diff(NativeStl, double, RangeColorRule, IProgress