{ "api/Hi.Cbtr.CachedTris.SweepingMode.html": { "href": "api/Hi.Cbtr.CachedTris.SweepingMode.html", "title": "Enum CachedTris.SweepingMode | HiAPI-C# 2025", "summary": "Enum CachedTris.SweepingMode Namespace Hi.Cbtr Assembly HiCbtr.dll Defines the mode for sweeping operations. public enum CachedTris.SweepingMode 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 Auto = 0 Automatically choose the best sweeping mode. ForceLinear = 1 Force linear sweeping mode. ForceNonLinear = 2 Force non-linear sweeping mode." }, "api/Hi.Cbtr.CachedTris.html": { "href": "api/Hi.Cbtr.CachedTris.html", "title": "Class CachedTris | HiAPI-C# 2025", "summary": "Class CachedTris Namespace Hi.Cbtr Assembly HiCbtr.dll Feature-cached triangle for CubeTree computation. public class CachedTris : IDisposable, IDisplayee, IExpandToBox3d Inheritance object CachedTris Implements IDisposable IDisplayee IExpandToBox3d 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 CachedTris(NativeTopoStl3d, Mat4d, double) Ctor by the transformed stl. only available for geometry that does not contains near point or points on the same line on the same plane. public CachedTris(NativeTopoStl3d stl, Mat4d mat, double fractionTolerance) Parameters stl NativeTopoStl3d stl mat Mat4d transformation matrix fractionTolerance double fraction tolerance for the operation CachedTris(NativeTopoStl3d, NativeTopoStl3wfr, Mat4d, Mat4d, double, SweepingMode) Ctor by the swept stl. The sweeping is from the transformation of pre to cur. public CachedTris(NativeTopoStl3d tstl, NativeTopoStl3wfr tstlfr, Mat4d pre, Mat4d cur, double fractionTolerance, CachedTris.SweepingMode sweepingMode = SweepingMode.Auto) Parameters tstl NativeTopoStl3d Topo Stl tstlfr NativeTopoStl3wfr Topo Stl with fraction tolerance pre Mat4d previous transformation matrix cur Mat4d current transformation matrix fractionTolerance double fraction tolerance for the operation sweepingMode CachedTris.SweepingMode mode for the sweeping operation Properties CachedTrisPtr Native pointer of the object. public nint CachedTrisPtr { get; } Property Value nint 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 ~CachedTris() protected ~CachedTris()" }, "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, 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 IsColorTableCovered True when this attachment's color is served by the native attachment color table, i.e. a Rgb change reaches the screen without cleaning the affected drawing caches. When false (no picking id, or the id exceeds the table ceiling) callers must keep the legacy CleanAttachedCbtrNodesDrawingCache() after a recolor. public bool IsColorTableCovered { get; } Property Value bool Rgb Color RGB. public virtual Vec3d Rgb { get; set; } Property Value Vec3d Methods CleanAttachedCbtrNodesDrawingCache() CleanAttachedNodesDrawingCache. Not thread safe with substraction process. public void CleanAttachedCbtrNodesDrawingCache() 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, IProgress) Ctor. public ConstructionDefectDisplayee(List defectNodeInfos, IProgress messageProgress = null) Parameters defectNodeInfos List Defect node infos from cube tree construction. messageProgress IProgress Progress reporter for user-facing messages. 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", "title": "Delegate CubeTree.diff_response_func_t | HiAPI-C# 2025", "summary": "Delegate CubeTree.diff_response_func_t Namespace Hi.Cbtr Assembly HiCbtr.dll Delegate for handling difference responses during geometry comparison. public delegate void CubeTree.diff_response_func_t(nint node_sp, double diff, nint plus_arg) Parameters node_sp nint Pointer to the node. diff double The difference value. plus_arg nint Additional argument pointer. 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)" }, "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 CubeTreeExportExtensions.ToStl(CubeTree, double) CollisionUtil.Detect(CubeTree, TriTree, Mat4d, double, int) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) SweptableUtil.AddBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool) 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. Errors relative to the input geometry are distributed at sharp edges and curved surfaces. CubeTree(Stl, double, CancellationToken, IProgress) 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. public CubeTree(Stl stl, double expectedResolution, CancellationToken token, IProgress progress) Parameters stl Stl expectedResolution double 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. 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 IsDisposed Gets a value indicating whether this tree has been disposed. All native-backed members become no-ops afterwards (value getters return neutral defaults). public bool IsDisposed { get; } Property Value bool 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 Add(CachedTris, double, bool, bool) Boolean-union counterpart of Substract(CachedTris, double, bool, bool). Using BufferedTris is more efficient than NativeStl. If the resolution of the addition region differs from the body's resolution, the lower resolution is applied to that region. public UnmanagedAddition Add(CachedTris adderBufferedTris, double preferredCubeWidth, bool isBuildContactContours = false, bool isAggressiveAdd = false) Parameters adderBufferedTris CachedTris Addition geometry preferredCubeWidth double The preferred cube width for the operation. isBuildContactContours bool If true, the returned Addition contains contour groups of the newly created surface, which can be used for further analysis. isAggressiveAdd bool If true, uses aggressive adding mode. Returns UnmanagedAddition Add(GeomBoolCache, bool, bool) Adds (boolean union) a geometry to the cube tree using a geometry boolean cache. public UnmanagedAddition Add(GeomBoolCache geomBoolCache, bool isBuildContactContours = false, bool isAggressiveAdd = false) Parameters geomBoolCache GeomBoolCache The geometry boolean cache containing the geometry to add. isBuildContactContours bool If true, the returned Addition will contain the contours of the newly created surface. isAggressiveAdd bool If true, uses aggressive adding mode. Returns UnmanagedAddition The result of the addition operation. Add(NativeStl, double, bool, bool) Boolean-union counterpart of Substract(NativeStl, double, bool, bool). Same functionality as Add(CachedTris,...). Less efficient due to the additional step of converting to CachedTris. public UnmanagedAddition Add(NativeStl adderStl, double preferredCubeWidth = 0, bool isBuildContactContours = false, bool isAggressiveAdd = false) Parameters adderStl NativeStl preferredCubeWidth double isBuildContactContours bool isAggressiveAdd bool Returns UnmanagedAddition 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. DetachAttachments() Detach-ALL: nulls every node's attachment WITHOUT erasing nodes from those attachments' node maps — a fast reset of all colouring for when the attached attachments are about to be disposed (their own disposal clears their maps). Runs under the write gate so it also acts as a render barrier (in-flight renders drain, new renders read null), letting the detached attachments be freed in the background with no render holding a stale pointer. The caller MUST dispose the detached attachments. Must NOT be called while holding this tree's read gate. public void DetachAttachments() DetachUnderWriteGate(IReadOnlyCollection) Targeted detach: under the write gate (render barrier), nulls node->attachment for ONLY the given attachments' nodes (idempotent ==this guard; never touches other attachments). After this returns, dispose them in the background — the barrier guarantees no render still holds a stale pointer. Must NOT be called while holding this tree's read gate. public void DetachUnderWriteGate(IReadOnlyCollection attachments) Parameters attachments IReadOnlyCollection 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 messageProgress = 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. messageProgress 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 DisposeBackground() Frees the native cube tree on a background task. Disposals are serialized: if a previous background disposal has not finished, this one waits for it. Returns the task representing this disposal (see WaitForPendingDisposals() to drain). public Task DisposeBackground() Returns Task DisposeBackground(IReadOnlyCollection) Enqueues disposal of objects retired alongside a tree (typically its attachments) on the SAME serialized chain as DisposeBackground(), so there is a single drain point (WaitForPendingDisposals()). Disposing a CbtrPickable now clears its (possibly huge) attached node map — O(nodes) — which must not run on the hot path. Enqueue the owning tree's DisposeBackground() first so the gated tree teardown (which waits out in-flight renders) runs before its attachments are freed. public static Task DisposeBackground(IReadOnlyCollection disposables) Parameters disposables IReadOnlyCollection Returns Task 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 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 GetInfEdgeCutsInfo() Returns List A list of node info, each containing a box and its inf edge indices. 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 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. Returns List Triangle mesh NewWithDefectInfos(NativeStl, double, CancellationToken, IProgress) Creates a new CubeTree and collects defect node infos during construction. public static (CubeTree cubeTree, List defectInfos) NewWithDefectInfos(NativeStl stl, double preferredGridWidth, CancellationToken token, IProgress messageProgress) Parameters stl NativeStl preferredGridWidth double token CancellationToken messageProgress IProgress Returns (CubeTree cubeTree, List defectInfos) NewWithDefectInfos(Stl, double, CancellationToken, IProgress) Creates a new CubeTree and collects defect node infos during construction. public static (CubeTree cubeTree, List defectInfos) NewWithDefectInfos(Stl stl, double preferredGridWidth, CancellationToken token, IProgress messageProgress) Parameters stl Stl preferredGridWidth double token CancellationToken messageProgress IProgress Returns (CubeTree cubeTree, List defectInfos) RebuildAttach(CbtrPickable) Every node in CubeTree can contain one CbtrPickable object. This function put or replace the contained data of all nodes to src. Using UpdateAttach(CbtrPickable) will place nodes that have not yet stored data (CbtrPickable is null) into 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) 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. public UnmanagedSubstraction Substract(CachedTris cutterBufferedTris, double preferredCubeWidth, bool isBuildContactContours = false, bool isAggressiveCut = false) Parameters cutterBufferedTris CachedTris Subtraction geometry preferredCubeWidth double The preferred cube width for the operation. isBuildContactContours bool 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. 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) Same functionality as Substract(BufferedTris,...). Less efficient due to the additional step of converting to 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 WaitForPendingDisposals() A task that completes when all queued background disposals have finished. Await this at application shutdown before the native dll is unloaded. public static Task WaitForPendingDisposals() Returns Task 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." }, "api/Hi.Cbtr.CubeTreeExportExtensions.html": { "href": "api/Hi.Cbtr.CubeTreeExportExtensions.html", "title": "Class CubeTreeExportExtensions | HiAPI-C# 2025", "summary": "Class CubeTreeExportExtensions Namespace Hi.Cbtr Assembly HiCbtr.dll Mesh export helpers for CubeTree. public static class CubeTreeExportExtensions Inheritance object CubeTreeExportExtensions Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ToStl(CubeTree, double) Builds an Stl from the cube tree's surface triangles. Per-triangle face normals are rebuilt before returning. public static Stl ToStl(this CubeTree cubeTree, double resolution = 0) Parameters cubeTree CubeTree Source cube tree. resolution double Preferred resolution; 0 keeps the cube tree's default. Returns Stl STL containing triangles with rebuilt face normals." }, "api/Hi.Cbtr.CubeTreeFile.html": { "href": "api/Hi.Cbtr.CubeTreeFile.html", "title": "Class CubeTreeFile | HiAPI-C# 2025", "summary": "Class CubeTreeFile Namespace Hi.Cbtr Assembly HiCbtr.dll Represents a file containing cube tree data. public class CubeTreeFile : IMakeXmlSource, ISourceFile, IToPresentDto Inheritance object CubeTreeFile Implements IMakeXmlSource ISourceFile IToPresentDto 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) Constructors CubeTreeFile() Ctor. public CubeTreeFile() CubeTreeFile(string, string) Ctor. public CubeTreeFile(string relFile, string baseDirectory) Parameters relFile string baseDirectory string CubeTreeFile(XElement, string) Ctor. public CubeTreeFile(XElement src, string baseDirectory) Parameters src XElement XML baseDirectory string Base directory for relative paths. Properties BaseDirectory Gets or sets the base directory for file operations. public string BaseDirectory { get; set; } Property Value string SourceFile file path. public string SourceFile { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods LoadByFile() Loads a cube tree from the specified file. public CubeTree LoadByFile() Returns CubeTree The loaded cube tree, or null if the file path is empty or null. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert CubeTreeFile to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and SourceFile keys" }, "api/Hi.Cbtr.DiffAttachment.html": { "href": "api/Hi.Cbtr.DiffAttachment.html", "title": "Class DiffAttachment | HiAPI-C# 2025", "summary": "Class DiffAttachment Namespace Hi.Cbtr Assembly HiCbtr.dll Represents an attachment with a difference value for cube tree. public class DiffAttachment : CbtrPickable, IGetPickable, IDisposable Inheritance object Pickable CbtrPickable DiffAttachment Implements IGetPickable IDisposable Inherited Members CbtrPickable.Rgb CbtrPickable.IsColorTableCovered CbtrPickable.AttachmentPriority CbtrPickable.Highlight(bool) CbtrPickable.CleanAttachedCbtrNodesDrawingCache() CbtrPickable.ShrinkToFitNodeMap() CbtrPickable.OnMouseEnter(ui_event_type, DispEngine) CbtrPickable.OnMouseLeave(ui_event_type, DispEngine) 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 DiffAttachment(double) Initializes a new instance of the DiffAttachment class. public DiffAttachment(double diff) Parameters diff double The difference value. Properties Diff Gets or sets the difference value. public double Diff { get; set; } Property Value double Methods Dispose(bool) protected override void Dispose(bool disposing) Parameters disposing bool" }, "api/Hi.Cbtr.GeomBoolCache.html": { "href": "api/Hi.Cbtr.GeomBoolCache.html", "title": "Class GeomBoolCache | HiAPI-C# 2025", "summary": "Class GeomBoolCache Namespace Hi.Cbtr Assembly HiCbtr.dll Cache for geometry boolean operations. public class GeomBoolCache : IDisposable Inheritance object GeomBoolCache Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 GeomBoolCache(GeomBoolCacheEnum) Initializes a new instance of the GeomBoolCache class. public GeomBoolCache(GeomBoolCacheEnum boolGeomCacheEnum) Parameters boolGeomCacheEnum GeomBoolCacheEnum The type of geometry boolean cache. Properties CachedTris Gets or sets the cached triangles. public CachedTris CachedTris { get; set; } Property Value CachedTris ConvexTransformation Gets or sets the convex transformation matrix. public Mat4d ConvexTransformation { get; set; } Property Value Mat4d GeomBoolCacheEnum Gets or sets the type of geometry boolean cache. public GeomBoolCacheEnum GeomBoolCacheEnum { get; set; } Property Value GeomBoolCacheEnum InitStickConvex Gets or sets the initialization stick convex. public InitStickConvex InitStickConvex { get; set; } Property Value InitStickConvex PreferredCubeWidth Gets or sets the preferred cube width. public double PreferredCubeWidth { get; set; } Property Value double Methods 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 ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Cbtr.GeomBoolCacheEnum.html": { "href": "api/Hi.Cbtr.GeomBoolCacheEnum.html", "title": "Enum GeomBoolCacheEnum | HiAPI-C# 2025", "summary": "Enum GeomBoolCacheEnum Namespace Hi.Cbtr Assembly HiCbtr.dll Enumeration of geometry boolean cache types. public enum GeomBoolCacheEnum 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 CachedTris = 1 Cached triangles mode. StickConvex = 2 Stick convex mode." }, "api/Hi.Cbtr.IGetInitStickConvex.html": { "href": "api/Hi.Cbtr.IGetInitStickConvex.html", "title": "Interface IGetInitStickConvex | HiAPI-C# 2025", "summary": "Interface IGetInitStickConvex Namespace Hi.Cbtr Assembly HiCbtr.dll Interface of GetInitStickConvex(). public interface IGetInitStickConvex : IVolumeRemover 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) Methods GetInitStickConvex() Get InitStickConvex. InitStickConvex GetInitStickConvex() Returns InitStickConvex InitStickConvex" }, "api/Hi.Cbtr.InfDefectDisplayee.html": { "href": "api/Hi.Cbtr.InfDefectDisplayee.html", "title": "Class InfDefectDisplayee | HiAPI-C# 2025", "summary": "Class InfDefectDisplayee Namespace Hi.Cbtr Assembly HiCbtr.dll Encapsulates inf edge cuts defect visualization for a cube tree, including defect boxes, edge segments, and flag drawings. public class InfDefectDisplayee : IDisplayee, IExpandToBox3d, IDisposable Inheritance object InfDefectDisplayee 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 InfDefectDisplayee(List) Ctor. Builds drawings from the given inf node info list. public InfDefectDisplayee(List nodeInfoList) Parameters nodeInfoList List Properties DefectBoxes Defect boxes for display (capped to Hi.Cbtr.InfDefectDisplayee.defectBoxesToShow). public List DefectBoxes { get; } Property Value List HasDefects Whether any inf defects were found. public bool HasDefects { get; } Property Value bool NodeInfoList Inf node info list from cube tree. public List NodeInfoList { get; } Property Value List 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 ReportTo(IProgress) Reports defect information to a message host. public void ReportTo(IProgress messageProgress) Parameters messageProgress IProgress" }, "api/Hi.Cbtr.InitStickConvex.html": { "href": "api/Hi.Cbtr.InitStickConvex.html", "title": "Class InitStickConvex | HiAPI-C# 2025", "summary": "Class InitStickConvex Namespace Hi.Cbtr Assembly HiCbtr.dll Represents a stick convex initialization object. public class InitStickConvex : IDisposable Inheritance object InitStickConvex Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors InitStickConvex(IGetGeneralApt) Initializes a new instance of the InitStickConvex class. public InitStickConvex(IGetGeneralApt src) Parameters src IGetGeneralApt The source object that provides general APT information. Properties InitStickConvexPtr Gets the native pointer to the stick convex object. public nint InitStickConvexPtr { get; } Property Value nint Methods 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 ~InitStickConvex() protected ~InitStickConvex()" }, "api/Hi.Cbtr.Substraction.html": { "href": "api/Hi.Cbtr.Substraction.html", "title": "Class Substraction | HiAPI-C# 2025", "summary": "Class Substraction Namespace Hi.Cbtr Assembly HiCbtr.dll Represents the result of a volume subtraction operation. public class Substraction : IWriteBin, IDisplayee, IExpandToBox3d Inheritance object Substraction Implements IWriteBin IDisplayee IExpandToBox3d 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) MillingRemovalUtil.GetContoursOnToolRunningCoordinate(Substraction, MachineMotionStep) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Substraction() Ctor. for Entity Framework. public Substraction() Substraction(UnmanagedSubstraction) Initializes a new instance of the Substraction class from an unmanaged substraction. public Substraction(UnmanagedSubstraction unmanagedSubstraction) Parameters unmanagedSubstraction UnmanagedSubstraction The unmanaged substraction to copy data from. Substraction(BinaryReader) Initializes a new instance of the Substraction class from a binary reader. public Substraction(BinaryReader reader) Parameters reader BinaryReader The binary reader to read data from. Properties ContactContours Gets or sets the contact contours on workpiece coordinate. public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. public double ContactContoursArea { get; init; } Property Value double ContactContoursByteArray Gets or sets the byte array representation of the contact contours. public byte[] ContactContoursByteArray { get; set; } Property Value byte[] IsTouched Gets a value indicating whether the cutter and workpiece touched. public bool IsTouched { get; init; } Property Value bool StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; set; } Property Value int Methods ContactContoursReadBin(BinaryReader) Reads contact contours from a binary reader. public static List> ContactContoursReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from. Returns List> A list of contact contour lists. ContactContoursWriteBin(List>, BinaryWriter) Writes contact contours to a binary writer. public static void ContactContoursWriteBin(List> contactContours, BinaryWriter writer) Parameters contactContours List> The contact contours to write. writer BinaryWriter The binary writer to write to. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Cbtr.UnhighlightablePickable.html": { "href": "api/Hi.Cbtr.UnhighlightablePickable.html", "title": "Class UnhighlightablePickable | HiAPI-C# 2025", "summary": "Class UnhighlightablePickable Namespace Hi.Cbtr Assembly HiCbtr.dll Cbtr un-highlightable pickable. For initailizing purpose by RebuildAttach(CbtrPickable). public class UnhighlightablePickable : CbtrPickable, IGetPickable, IDisposable Inheritance object Pickable CbtrPickable UnhighlightablePickable Implements IGetPickable IDisposable Inherited Members CbtrPickable.Rgb CbtrPickable.IsColorTableCovered CbtrPickable.AttachmentPriority CbtrPickable.Highlight(bool) CbtrPickable.CleanAttachedCbtrNodesDrawingCache() CbtrPickable.ShrinkToFitNodeMap() CbtrPickable.Dispose(bool) 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 UnhighlightablePickable() Ctor. public UnhighlightablePickable() Methods 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" }, "api/Hi.Cbtr.UnmanagedAddition.html": { "href": "api/Hi.Cbtr.UnmanagedAddition.html", "title": "Class UnmanagedAddition | HiAPI-C# 2025", "summary": "Class UnmanagedAddition Namespace Hi.Cbtr Assembly HiCbtr.dll Data about the adding behavior of CubeTree. The dual of UnmanagedSubstraction. public class UnmanagedAddition : IDisplayee, IExpandToBox3d, IDisposable Inheritance object UnmanagedAddition 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) Fields preserveCount The count of preservations to prevent disposal. public int preserveCount Field Value int Properties ContactContours Contours of the newly created surface (the dual of the substraction's newly exposed surface). Each contour is composed by 3~12 points. public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. public double ContactContoursArea { get; } Property Value double IsTouched Is the adder and workpiece touched (any material actually added). public bool IsTouched { 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. DisplayContours(Bind) Display ContactContours by lines. public void DisplayContours(Bind bind) Parameters bind Bind 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 ~UnmanagedAddition() protected ~UnmanagedAddition() PreserveBegin() Preserve the object from arising Dispose(). Add preserve count for 1. public void PreserveBegin() See Also PreserveEnd() PreserveEnd() Minus preserve count for 1. If preserve count is eqaul or lower than 0, call Dispose(). public void PreserveEnd() See Also PreserveBegin()" }, "api/Hi.Cbtr.UnmanagedSubstraction.html": { "href": "api/Hi.Cbtr.UnmanagedSubstraction.html", "title": "Class UnmanagedSubstraction | HiAPI-C# 2025", "summary": "Class UnmanagedSubstraction Namespace Hi.Cbtr Assembly HiCbtr.dll Data about the removing behavior of CubeTree. public class UnmanagedSubstraction : IDisplayee, IExpandToBox3d, IDisposable Inheritance object UnmanagedSubstraction 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) Fields preserveCount The count of preservations to prevent disposal. public int preserveCount Field Value int Properties ContactContours Contact contours. Each contour is composed by 3~12 points. public List> ContactContours { get; } Property Value List> ContactContoursArea Gets the area of the contact contours. public double ContactContoursArea { get; } Property Value double IsTouched Is the cutter and workpiece touched. public bool IsTouched { get; } Property Value bool SubstractionPtr Internal Use Only. The native pointer to the substraction object. HiMech reads it to build the milling engagement natively at the substraction completion point, without copying contours through the managed heap. public nint SubstractionPtr { get; } Property Value nint Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. DisplayContours(Bind) Display ContactContours by lines. public void DisplayContours(Bind bind) Parameters bind Bind 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 ~UnmanagedSubstraction() protected ~UnmanagedSubstraction() PreserveBegin() Preserve the object from arising Dispose(). Add preserve count for 1. public void PreserveBegin() See Also PreserveEnd() PreserveEnd() Minus preserve count for 1. If preserve count is eqaul or lower than 0, call Dispose(). public void PreserveEnd() See Also PreserveBegin()" }, "api/Hi.Cbtr.WireCube.html": { "href": "api/Hi.Cbtr.WireCube.html", "title": "Class WireCube | HiAPI-C# 2025", "summary": "Class WireCube Namespace Hi.Cbtr Assembly HiCbtr.dll 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 Inheritance object WireCube Implements IDisplayee IExpandToBox3d 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) Methods Display(Bind) Displays the wire cube. public void Display(Bind bind) Parameters bind Bind The binding context for display. ExpandToBox3d(Box3d) Expands the destination box to include the unit cube. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The destination box to expand. GetCorner(int, bool) 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) Parameters edgeIndex int The edge index (0-11). isTail bool True for the tail endpoint (max in edge direction), false for head (min in edge direction). Returns int The corner index (0-7) where bit 0=X, bit 1=Y, bit 2=Z indicate min(0) or max(1) position. GetCornerVertex(Box3d, int) Gets the vertex position of a corner from a box. public static Vec3d GetCornerVertex(Box3d box, int corner) Parameters box Box3d The bounding box. corner int The corner index (0-7) where bit 0=X, bit 1=Y, bit 2=Z indicate min(0) or max(1) position. Returns Vec3d The vertex position. GetDir(int) Gets the direction (axis) of an edge. public static int GetDir(int edgeIndex) Parameters edgeIndex int The edge index (0-11). Returns int The direction: 0=X, 1=Y, 2=Z. GetEdgeIndex(int, int, int) Gets the edge index from direction and position flags. public static int GetEdgeIndex(int dir, int th0, int th1) Parameters dir int The edge direction (0=X, 1=Y, 2=Z). th0 int Position flag in (dir+1)%3 direction (0 or 1). th1 int Position flag in (dir+2)%3 direction (0 or 1). Returns int The edge index (0-11). GetEdgeSegment3d(Box3d, int) Gets the two endpoint vertices of an edge for a given box and edge index. public static Segment3d GetEdgeSegment3d(Box3d box, int edgeIndex) Parameters box Box3d The bounding box. edgeIndex int The edge index (0-11). Returns Segment3d A tuple containing the head (min in edge direction) and tail (max in edge direction) vertices of the edge." }, "api/Hi.Cbtr.html": { "href": "api/Hi.Cbtr.html", "title": "Namespace Hi.Cbtr | HiAPI-C# 2025", "summary": "Namespace Hi.Cbtr Classes CachedTris Feature-cached triangle for CubeTree computation. CbtrPickable Pickable of CubeTree grids. ConstructionDefectDisplayee Encapsulates cube tree construction defect results, including both defect data and visualization drawings. CubeTree Cube-based data structure. CubeTree has high performance for free-form geometry manipulation include volume removal and addition. CubeTree.DefectNodeInfo Info for a single defect node detected during cube tree construction. CubeTree.DefectNodeInfo.TriWireInfo A single triangle-wire relation entry within a defect node. CubeTree.InfNodeInfo Info for a single node with inf edge_cuts, containing box and edge indices. CubeTreeExportExtensions Mesh export helpers for CubeTree. CubeTreeFile Represents a file containing cube tree data. DiffAttachment Represents an attachment with a difference value for cube tree. GeomBoolCache Cache for geometry boolean operations. InfDefectDisplayee Encapsulates inf edge cuts defect visualization for a cube tree, including defect boxes, edge segments, and flag drawings. InitStickConvex Represents a stick convex initialization object. Substraction Represents the result of a volume subtraction operation. UnhighlightablePickable Cbtr un-highlightable pickable. For initailizing purpose by RebuildAttach(CbtrPickable). UnmanagedAddition Data about the adding behavior of CubeTree. The dual of UnmanagedSubstraction. UnmanagedSubstraction Data about the removing behavior of CubeTree. WireCube 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. Structs CubeTree.DefectTriWireInfoInterop Interop struct matching C++ defect_tri_wire_info_interop_t. CubeTree.TriWireRelationInterop Interop struct matching C++ tri_wire_relation_interop_t. node_diff_t Structure representing a node with a difference value. Interfaces IGetInitStickConvex Interface of GetInitStickConvex(). Enums CachedTris.SweepingMode Defines the mode for sweeping operations. GeomBoolCacheEnum Enumeration of geometry boolean cache types. Delegates CubeTree.diff_response_func_t Delegate for handling difference responses during geometry comparison." }, "api/Hi.Cbtr.node_diff_t.html": { "href": "api/Hi.Cbtr.node_diff_t.html", "title": "Struct node_diff_t | HiAPI-C# 2025", "summary": "Struct node_diff_t Namespace Hi.Cbtr Assembly HiCbtr.dll Structure representing a node with a difference value. public struct node_diff_t 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 diff Difference value. public double diff Field Value double node Pointer to the node. public nint node Field Value nint" }, "api/Hi.Collision.AnchoredCollidableLeaf.html": { "href": "api/Hi.Collision.AnchoredCollidableLeaf.html", "title": "Class AnchoredCollidableLeaf | HiAPI-C# 2025", "summary": "Class AnchoredCollidableLeaf Namespace Hi.Collision Assembly HiMech.dll Represents a leaf node in the anchored collidable hierarchy. public class AnchoredCollidableLeaf : IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable, IGetCollidable Inheritance object AnchoredCollidableLeaf Implements IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable IGetCollidable 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) CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors AnchoredCollidableLeaf() Initializes a new instance of the AnchoredCollidableLeaf class. public AnchoredCollidableLeaf() AnchoredCollidableLeaf(string, Anchor, ICollidable) Initializes a new instance of the AnchoredCollidableLeaf class with a name, anchor, and collidable object. public AnchoredCollidableLeaf(string collidableName, Anchor anchor, ICollidable collidable) Parameters collidableName string The name of the collidable object. anchor Anchor The anchor for the collidable object. collidable ICollidable The collidable object. Properties Anchor Gets or sets the anchor for this collidable leaf. public Anchor Anchor { get; set; } Property Value Anchor Collidable Gets or sets the collidable object. public ICollidable Collidable { get; set; } Property Value ICollidable CollidableName Gets or sets the name of the collidable object. public string CollidableName { get; set; } Property Value string CollisionFlag Gets or sets the collision flag indicating the collision status of this collidable object. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Methods GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidableAnchor() Gets the anchor associated with this collidable leaf. public Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetRootAnchor() public Anchor GetRootAnchor() Returns Anchor" }, "api/Hi.Collision.AnchoredCollidablePair.html": { "href": "api/Hi.Collision.AnchoredCollidablePair.html", "title": "Class AnchoredCollidablePair | HiAPI-C# 2025", "summary": "Class AnchoredCollidablePair Namespace Hi.Collision Assembly HiMech.dll Represents a pair of anchored collidable objects for collision detection. public class AnchoredCollidablePair : IMakeXmlSource Inheritance object AnchoredCollidablePair Implements IMakeXmlSource Inherited Members object.Equals(object, object) 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 AnchoredCollidablePair(IAnchoredCollidableBased, IAnchoredCollidableBased) Initializes a new instance of the AnchoredCollidablePair class with two collidable objects. public AnchoredCollidablePair(IAnchoredCollidableBased indexA, IAnchoredCollidableBased indexB) Parameters indexA IAnchoredCollidableBased The first collidable object. indexB IAnchoredCollidableBased The second collidable object. AnchoredCollidablePair(string, IAnchoredCollidableBased, IAnchoredCollidableBased) Initializes a new instance of the AnchoredCollidablePair class with a name and two collidable objects. public AnchoredCollidablePair(string name, IAnchoredCollidableBased indexA, IAnchoredCollidableBased indexB) Parameters name string The name of the pair. indexA IAnchoredCollidableBased The first collidable object. indexB IAnchoredCollidableBased The second collidable object. AnchoredCollidablePair(XElement, string, IProgress, object[]) Initializes a new instance of the AnchoredCollidablePair class from XML. public AnchoredCollidablePair(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement The XML element containing the pair data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resources for initialization. Fields XName The XML element name for serialization. public static string XName Field Value string Properties CollisionFlag Gets or sets the collision flag indicating the collision status between the two objects. public CollisionFlag CollisionFlag { get; } Property Value CollisionFlag IndexA Gets the first collidable object in the pair. public IAnchoredCollidableBased IndexA { get; } Property Value IAnchoredCollidableBased IndexB Gets the second collidable object in the pair. public IAnchoredCollidableBased IndexB { get; } Property Value IAnchoredCollidableBased MatAB Gets or sets the transformation matrix from object A to object B. public Mat4d MatAB { get; set; } Property Value Mat4d Name Gets or sets the pair name for UI manipulation. public string Name { get; set; } Property Value string SafeDistance Gets or sets the safe distance between the two collidable objects. public double SafeDistance { get; set; } Property Value double Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Collision.CollidableStl.html": { "href": "api/Hi.Collision.CollidableStl.html", "title": "Class CollidableStl | HiAPI-C# 2025", "summary": "Class CollidableStl Namespace Hi.Collision Assembly HiCbtr.dll Collidable Stl. public class CollidableStl : IDisposable, IGetTriTree, ICollidable, IGetCollidable Inheritance object CollidableStl Implements IDisposable IGetTriTree ICollidable IGetCollidable 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) CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CollidableStl(IGetStl) Ctor. public CollidableStl(IGetStl iGetStl) Parameters iGetStl IGetStl Properties CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Methods 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 GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetTriTree() Get TriTree. public TriTree GetTriTree() Returns TriTree TriTree" }, "api/Hi.Collision.CollisionFlag.html": { "href": "api/Hi.Collision.CollisionFlag.html", "title": "Enum CollisionFlag | HiAPI-C# 2025", "summary": "Enum CollisionFlag Namespace Hi.Collision Assembly HiCbtr.dll Collision flag. The definition is the same as native collision_flag. public enum CollisionFlag 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 Collision = 0 Collision. MAY_INSIDE_SAFE_DISTANCE = 1 May or may not be inside the safe distance. OUTSIDE_SAFE_DISTANCE = 2 Outside the safe distance. UNDEFINED = 3 Not defined behavior. _IGNORED = 4 Internal Use Only Remarks The int value is according to severity. The larger is severer." }, "api/Hi.Collision.CollisionIndexPair.html": { "href": "api/Hi.Collision.CollisionIndexPair.html", "title": "Class CollisionIndexPair | HiAPI-C# 2025", "summary": "Class CollisionIndexPair Namespace Hi.Collision Assembly HiMech.dll Represents a pair of collision indices for collision detection. public class CollisionIndexPair : IMakeXmlSource Inheritance object CollisionIndexPair Implements IMakeXmlSource Inherited Members object.Equals(object, object) 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 CollisionIndexPair(ICollisionIndex, ICollisionIndex) Initializes a new instance of the CollisionIndexPair class with two collision indices. public CollisionIndexPair(ICollisionIndex indexA, ICollisionIndex indexB) Parameters indexA ICollisionIndex The first collision index. indexB ICollisionIndex The second collision index. CollisionIndexPair(XElement, string, IProgress, object[]) Initializes a new instance of the CollisionIndexPair class from XML. public CollisionIndexPair(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement The XML element containing the pair data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resources for initialization. Fields XName The XML element name for serialization. public static string XName Field Value string Properties CollisionFlag Gets or sets the collision flag indicating the collision status between the two objects. public CollisionFlag CollisionFlag { get; } Property Value CollisionFlag IndexA Gets the first collision index in the pair. public ICollisionIndex IndexA { get; } Property Value ICollisionIndex IndexB Gets the second collision index in the pair. public ICollisionIndex IndexB { get; } Property Value ICollisionIndex MatAB Gets or sets the transformation matrix from object A to object B. public Mat4d MatAB { get; set; } Property Value Mat4d SafeDistance Gets or sets the safe distance between the two collision indices. public double SafeDistance { get; set; } Property Value double Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Collision.CollisionUtil.html": { "href": "api/Hi.Collision.CollisionUtil.html", "title": "Class CollisionUtil | HiAPI-C# 2025", "summary": "Class CollisionUtil Namespace Hi.Collision Assembly HiCbtr.dll Utility of tree grid related structure. public static class CollisionUtil Inheritance object CollisionUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Detect(CubeTree, TriTree, Mat4d, double, int) Get CollisionFlag between treeA and treeB*matAB. public static CollisionFlag Detect(this CubeTree treeA, TriTree treeB, Mat4d matAB, double safeDistance, int cap = 1024) Parameters treeA CubeTree treeA treeB TriTree treeB matAB Mat4d relative transform matrix to take B to the position relative to A. The mat is Inv(matA)*matB. safeDistance double safe distance for the flag judgement cap int Returns CollisionFlag CollisionFlag Detect(ICollidable, ICollidable, Mat4d, double, int) Get CollisionFlag between collidableA and collidableB*matAB. public static CollisionFlag Detect(this ICollidable collidableA, ICollidable collidableB, Mat4d matAB, double safeDistance = 0, int cap = 1024) Parameters collidableA ICollidable collidable A collidableB ICollidable collidable B matAB Mat4d relative transform matrix to take B to the position relative to A. The mat is Inv(matA)*matB. If one of collidableA and collidableB is null, return OUTSIDE_SAFE_DISTANCE. safeDistance double safe distance for the flag judgement cap int Returns CollisionFlag CollisionFlag Detect(TriTree, TriTree, Mat4d, double, int) Get CollisionFlag between treeA and treeB*matAB. public static CollisionFlag Detect(this TriTree treeA, TriTree treeB, Mat4d matAB, double safeDistance, int cap = 1024) Parameters treeA TriTree treeA treeB TriTree treeB matAB Mat4d relative transform matrix to take B to the position relative to A. The mat is Inv(matA)*matB. safeDistance double safe distance for the flag judgement cap int Returns CollisionFlag CollisionFlag" }, "api/Hi.Collision.FuncAnchoredCollidable.html": { "href": "api/Hi.Collision.FuncAnchoredCollidable.html", "title": "Class FuncAnchoredCollidable | HiAPI-C# 2025", "summary": "Class FuncAnchoredCollidable Namespace Hi.Collision Assembly HiMech.dll Represents a function-based implementation of an anchored collidable object. public class FuncAnchoredCollidable : IAnchoredCollidableBased Inheritance object FuncAnchoredCollidable Implements IAnchoredCollidableBased 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) Constructors FuncAnchoredCollidable(string, Func) Initializes a new instance of the FuncAnchoredCollidable class with a name and a function to get the anchored collidable node. public FuncAnchoredCollidable(string collidableName, Func getAnchoredCollidableNodeFunc) Parameters collidableName string The name of the collidable object. getAnchoredCollidableNodeFunc Func The function to get the anchored collidable node. Properties CollidableName Gets the name of the collidable object. public string CollidableName { get; set; } Property Value string CollisionFlag Gets or sets the collision flag indicating the collision status of this collidable object. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag GetAnchoredCollidableNodeFunc Gets or sets the function to get the anchored collidable node. public Func GetAnchoredCollidableNodeFunc { get; set; } Property Value Func Methods GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node." }, "api/Hi.Collision.IAnchoredCollidableBased.html": { "href": "api/Hi.Collision.IAnchoredCollidableBased.html", "title": "Interface IAnchoredCollidableBased | HiAPI-C# 2025", "summary": "Interface IAnchoredCollidableBased Namespace Hi.Collision Assembly HiMech.dll Interface for objects that are based on anchored collidable nodes. public interface IAnchoredCollidableBased 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 CollidableName Gets the name of the collidable object. string CollidableName { get; } Property Value string Methods GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node." }, "api/Hi.Collision.IAnchoredCollidableLeaf.html": { "href": "api/Hi.Collision.IAnchoredCollidableLeaf.html", "title": "Interface IAnchoredCollidableLeaf | HiAPI-C# 2025", "summary": "Interface IAnchoredCollidableLeaf Namespace Hi.Collision Assembly HiMech.dll Interface for leaf nodes in the anchored collidable hierarchy. A leaf node represents a collidable object that doesn't contain other collidable objects. public interface IAnchoredCollidableLeaf : IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable Inherited Members IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() ICollidable.CollisionFlag ICollidable.GetCollidee() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods GetCollidableAnchor() Gets the anchor associated with this collidable leaf. Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf." }, "api/Hi.Collision.IAnchoredCollidableNode.html": { "href": "api/Hi.Collision.IAnchoredCollidableNode.html", "title": "Interface IAnchoredCollidableNode | HiAPI-C# 2025", "summary": "Interface IAnchoredCollidableNode Namespace Hi.Collision Assembly HiMech.dll Base interface for anchored collidable nodes in the collision hierarchy. Do not inherit this interface directly. Only inherit directly from IAnchoredCollidableLeaf and IAnchoredCollidableStem. It is acceptable to inherit from IAnchoredCollidableLeaf and IAnchoredCollidableStem. public interface IAnchoredCollidableNode : IAnchoredCollidableBased Inherited Members IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() 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)" }, "api/Hi.Collision.IAnchoredCollidableStem.html": { "href": "api/Hi.Collision.IAnchoredCollidableStem.html", "title": "Interface IAnchoredCollidableStem | HiAPI-C# 2025", "summary": "Interface IAnchoredCollidableStem Namespace Hi.Collision Assembly HiMech.dll Interface for stem nodes in the anchored collidable hierarchy. A stem node represents a collidable object that contains other collidable objects. public interface IAnchoredCollidableStem : IAnchoredCollidableNode, IAnchoredCollidableBased, IExpandToBox3d Inherited Members IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() IExpandToBox3d.ExpandToBox3d(Box3d) 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) Methods GetAnchoredCollidables() Gets the list of anchored collidable nodes contained by this stem. List GetAnchoredCollidables() Returns List A list of anchored collidable nodes." }, "api/Hi.Collision.ICollidable.html": { "href": "api/Hi.Collision.ICollidable.html", "title": "Interface ICollidable | HiAPI-C# 2025", "summary": "Interface ICollidable Namespace Hi.Collision Assembly HiCbtr.dll Collidable geometry. public interface ICollidable Extension Methods CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) 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 CollisionFlag Gets or sets the collision flag. CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Methods GetCollidee() Get ICollidee. ICollidee GetCollidee() Returns ICollidee ICollidee" }, "api/Hi.Collision.ICollidee.html": { "href": "api/Hi.Collision.ICollidee.html", "title": "Interface ICollidee | HiAPI-C# 2025", "summary": "Interface ICollidee Namespace Hi.Collision Assembly HiCbtr.dll Dont inherit the interface. Only TriTree and CubeTree inherit the interface. public interface ICollidee : ICollidable, IExpandToBox3d Inherited Members ICollidable.CollisionFlag ICollidable.GetCollidee() IExpandToBox3d.ExpandToBox3d(Box3d) Extension Methods CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) 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)" }, "api/Hi.Collision.ICollisionArena.html": { "href": "api/Hi.Collision.ICollisionArena.html", "title": "Interface ICollisionArena | HiAPI-C# 2025", "summary": "Interface ICollisionArena Namespace Hi.Collision Assembly HiMech.dll Interface for a topological collision arena that manages collision detection between objects. public interface ICollisionArena : IGetCollisionIndexPairs, IGetAsmb, IGetAnchor, IGetTopoIndex Inherited Members IGetCollisionIndexPairs.GetCollisionIndexPairs() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object)" }, "api/Hi.Collision.ICollisionIndex.html": { "href": "api/Hi.Collision.ICollisionIndex.html", "title": "Interface ICollisionIndex | HiAPI-C# 2025", "summary": "Interface ICollisionIndex Namespace Hi.Collision Assembly HiMech.dll Interface for collision index objects that provide identification and anchoring for collidable objects. public interface ICollisionIndex : IGetCollidable, IMakeXmlSource Inherited Members IGetCollidable.GetCollidable() IMakeXmlSource.MakeXmlSource(string, string, bool) 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 Anchor Gets the anchor point for this collision index. Anchor Anchor { get; } Property Value Anchor Key Gets the unique identifier for this collision index. string Key { get; } Property Value string" }, "api/Hi.Collision.IGetAnchoredCollidablePairs.html": { "href": "api/Hi.Collision.IGetAnchoredCollidablePairs.html", "title": "Interface IGetAnchoredCollidablePairs | HiAPI-C# 2025", "summary": "Interface IGetAnchoredCollidablePairs Namespace Hi.Collision Assembly HiMech.dll Interface for objects that can provide pairs of anchored collidable objects for collision detection. public interface IGetAnchoredCollidablePairs 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) Methods GetAnchoredCollidablePairs() Gets a list of anchored collidable pairs for collision detection. List GetAnchoredCollidablePairs() Returns List A list of anchored collidable pairs." }, "api/Hi.Collision.IGetCollidable.html": { "href": "api/Hi.Collision.IGetCollidable.html", "title": "Interface IGetCollidable | HiAPI-C# 2025", "summary": "Interface IGetCollidable Namespace Hi.Collision Assembly HiCbtr.dll Interface for objects that can provide a collidable object. public interface IGetCollidable 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) Methods GetCollidable() Get ICollidable. ICollidable GetCollidable() Returns ICollidable The collidable object." }, "api/Hi.Collision.IGetCollisionIndexPairs.html": { "href": "api/Hi.Collision.IGetCollisionIndexPairs.html", "title": "Interface IGetCollisionIndexPairs | HiAPI-C# 2025", "summary": "Interface IGetCollisionIndexPairs Namespace Hi.Collision Assembly HiMech.dll Interface for objects that can provide pairs of collision indices for collision detection. public interface IGetCollisionIndexPairs 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) Methods GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects." }, "api/Hi.Collision.IGetDefaultCollidablePairs.html": { "href": "api/Hi.Collision.IGetDefaultCollidablePairs.html", "title": "Interface IGetDefaultCollidablePairs | HiAPI-C# 2025", "summary": "Interface IGetDefaultCollidablePairs Namespace Hi.Collision Assembly HiMech.dll Interface for objects that can provide default pairs of anchored collidable objects. public interface IGetDefaultCollidablePairs 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) Methods GetDefaultCollidablePairs() Gets a list of default anchored collidable pairs. List GetDefaultCollidablePairs() Returns List A list of default anchored collidable pairs." }, "api/Hi.Collision.IGetTriTree.html": { "href": "api/Hi.Collision.IGetTriTree.html", "title": "Interface IGetTriTree | HiAPI-C# 2025", "summary": "Interface IGetTriTree Namespace Hi.Collision Assembly HiCbtr.dll Interface of TriTree Getter. public interface IGetTriTree : ICollidable, IGetCollidable Inherited Members ICollidable.CollisionFlag ICollidable.GetCollidee() IGetCollidable.GetCollidable() Extension Methods CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) 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) Methods GetTriTree() Get TriTree. TriTree GetTriTree() Returns TriTree TriTree" }, "api/Hi.Collision.MechCollisionResult.html": { "href": "api/Hi.Collision.MechCollisionResult.html", "title": "Class MechCollisionResult | HiAPI-C# 2025", "summary": "Class MechCollisionResult Namespace Hi.Collision Assembly HiMech.dll Represents the result of a mechanical collision detection operation. public record MechCollisionResult : IEquatable Inheritance object MechCollisionResult Implements IEquatable 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) Constructors MechCollisionResult(Dictionary, List, CollisionFlag) Represents the result of a mechanical collision detection operation. public MechCollisionResult(Dictionary CollidableToFlagDictionary, List CollisionIndexPairList, CollisionFlag PrimaryCollisionFlag) Parameters CollidableToFlagDictionary Dictionary Dictionary mapping collidable objects to their collision flags. CollisionIndexPairList List List of collision index pairs involved in the detection. PrimaryCollisionFlag CollisionFlag The primary collision flag representing the overall collision status. Properties CollidableToFlagDictionary Dictionary mapping collidable objects to their collision flags. public Dictionary CollidableToFlagDictionary { get; init; } Property Value Dictionary CollisionIndexPairList List of collision index pairs involved in the detection. public List CollisionIndexPairList { get; init; } Property Value List PrimaryCollisionFlag The primary collision flag representing the overall collision status. public CollisionFlag PrimaryCollisionFlag { get; init; } Property Value CollisionFlag" }, "api/Hi.Collision.MechCollisionUtil.html": { "href": "api/Hi.Collision.MechCollisionUtil.html", "title": "Class MechCollisionUtil | HiAPI-C# 2025", "summary": "Class MechCollisionUtil Namespace Hi.Collision Assembly HiMech.dll Utility class providing methods for mechanical collision detection and management. public static class MechCollisionUtil Inheritance object MechCollisionUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Detect(IEnumerable, Dictionary, out Dictionary) Performs collision detection on a collection of collision index pairs. public static CollisionFlag Detect(this IEnumerable CollisionIndexPairs, Dictionary matMap, out Dictionary itemToFlag) Parameters CollisionIndexPairs IEnumerable The collection of collision index pairs to check. matMap Dictionary Dictionary mapping anchors to transformation matrices. itemToFlag Dictionary Output dictionary mapping collidable objects to their collision flags. Returns CollisionFlag The primary collision flag representing the overall collision status. PrepareCollidableItems(IEnumerable) Prepares collidable items for collision detection by ensuring their triangle trees are initialized. public static void PrepareCollidableItems(this IEnumerable collisionIndexPairs) Parameters collisionIndexPairs IEnumerable The collection of collision index pairs to prepare. ResetCollisionFlags(IEnumerable) Resets the collision flags for all collision index pairs to undefined. public static void ResetCollisionFlags(this IEnumerable collisionIndexPairs) Parameters collisionIndexPairs IEnumerable The collection of collision index pairs to reset." }, "api/Hi.Collision.TriTree.html": { "href": "api/Hi.Collision.TriTree.html", "title": "Class TriTree | HiAPI-C# 2025", "summary": "Class TriTree Namespace Hi.Collision Assembly HiCbtr.dll A wrapper provides native tree-grid-based structure. It wraps NativeStl. public class TriTree : IDisposable, IGetTriTree, ICollidee, ICollidable, IExpandToBox3d, IGetCollidable Inheritance object TriTree Implements IDisposable IGetTriTree 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(ICollidable, ICollidable, Mat4d, double, int) CollisionUtil.Detect(TriTree, TriTree, Mat4d, double, int) 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 TriTree(NativeStl) Ctor. public TriTree(NativeStl nativeStl) Parameters nativeStl NativeStl Native Stl Properties CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag NativeStl For internal. public NativeStl NativeStl { get; set; } Property Value NativeStl TriTreePtr For internal. public nint TriTreePtr { get; set; } Property Value nint Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Remarks If NativeStl is disposed, this object will also be disposed. 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 ~TriTree() protected ~TriTree() GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetTriTree() Get TriTree. public TriTree GetTriTree() Returns TriTree TriTree" }, "api/Hi.Collision.html": { "href": "api/Hi.Collision.html", "title": "Namespace Hi.Collision | HiAPI-C# 2025", "summary": "Namespace Hi.Collision Classes AnchoredCollidableLeaf Represents a leaf node in the anchored collidable hierarchy. AnchoredCollidablePair Represents a pair of anchored collidable objects for collision detection. CollidableStl Collidable Stl. CollisionIndexPair Represents a pair of collision indices for collision detection. CollisionUtil Utility of tree grid related structure. FuncAnchoredCollidable Represents a function-based implementation of an anchored collidable object. MechCollisionResult Represents the result of a mechanical collision detection operation. MechCollisionUtil Utility class providing methods for mechanical collision detection and management. TriTree A wrapper provides native tree-grid-based structure. It wraps NativeStl. Interfaces IAnchoredCollidableBased Interface for objects that are based on anchored collidable nodes. IAnchoredCollidableLeaf Interface for leaf nodes in the anchored collidable hierarchy. A leaf node represents a collidable object that doesn't contain other collidable objects. IAnchoredCollidableNode Base interface for anchored collidable nodes in the collision hierarchy. Do not inherit this interface directly. Only inherit directly from IAnchoredCollidableLeaf and IAnchoredCollidableStem. It is acceptable to inherit from IAnchoredCollidableLeaf and IAnchoredCollidableStem. IAnchoredCollidableStem Interface for stem nodes in the anchored collidable hierarchy. A stem node represents a collidable object that contains other collidable objects. ICollidable Collidable geometry. ICollidee Dont inherit the interface. Only TriTree and CubeTree inherit the interface. ICollisionArena Interface for a topological collision arena that manages collision detection between objects. ICollisionIndex Interface for collision index objects that provide identification and anchoring for collidable objects. IGetAnchoredCollidablePairs Interface for objects that can provide pairs of anchored collidable objects for collision detection. IGetCollidable Interface for objects that can provide a collidable object. IGetCollisionIndexPairs Interface for objects that can provide pairs of collision indices for collision detection. IGetDefaultCollidablePairs Interface for objects that can provide default pairs of anchored collidable objects. IGetTriTree Interface of TriTree Getter. Enums CollisionFlag Collision flag. The definition is the same as native collision_flag." }, "api/Hi.Collisions.AnchoredCollidabled.html": { "href": "api/Hi.Collisions.AnchoredCollidabled.html", "title": "Class AnchoredCollidabled | HiAPI-C# 2025", "summary": "Class AnchoredCollidabled Namespace Hi.Collisions Assembly HiMech.dll Represents a collidable object that is associated with an Anchor. public class AnchoredCollidabled : IAnchoredCollidabled, IGetCollidable, IGetAnchor, IGetTopoIndex Inheritance object AnchoredCollidabled Implements IAnchoredCollidabled IGetCollidable IGetAnchor IGetTopoIndex 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) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors AnchoredCollidabled() Initializes a new instance of the AnchoredCollidabled class. public AnchoredCollidabled() AnchoredCollidabled(Anchor, ICollidable) Initializes a new instance of the AnchoredCollidabled class with the specified anchor and collidable. public AnchoredCollidabled(Anchor anchor, ICollidable collidable) Parameters anchor Anchor The anchor bound to the collidable. collidable ICollidable The collidable instance. Properties Anchor Gets or sets the anchor associated with the collidable object. public Anchor Anchor { get; set; } Property Value Anchor Collidable Gets or sets the collidable instance. public ICollidable Collidable { get; set; } Property Value ICollidable Methods GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidableAnchor() Gets the anchor associated with the collidable object. public Anchor GetCollidableAnchor() Returns Anchor The Anchor instance." }, "api/Hi.Collisions.IAnchoredCollidabled.html": { "href": "api/Hi.Collisions.IAnchoredCollidabled.html", "title": "Interface IAnchoredCollidabled | HiAPI-C# 2025", "summary": "Interface IAnchoredCollidabled Namespace Hi.Collisions Assembly HiMech.dll Defines a collidable object that has an associated Anchor. public interface IAnchoredCollidabled : IGetCollidable, IGetAnchor, IGetTopoIndex Inherited Members IGetCollidable.GetCollidable() IGetAnchor.GetAnchor() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods GetCollidableAnchor() Gets the anchor associated with the collidable object. Anchor GetCollidableAnchor() Returns Anchor The Anchor instance." }, "api/Hi.Collisions.html": { "href": "api/Hi.Collisions.html", "title": "Namespace Hi.Collisions | HiAPI-C# 2025", "summary": "Namespace Hi.Collisions Classes AnchoredCollidabled Represents a collidable object that is associated with an Anchor. Interfaces IAnchoredCollidabled Defines a collidable object that has an associated Anchor." }, "api/Hi.Coloring.ColorUtil.html": { "href": "api/Hi.Coloring.ColorUtil.html", "title": "Class ColorUtil | HiAPI-C# 2025", "summary": "Class ColorUtil Namespace Hi.Coloring Assembly HiGeom.dll Utility for handling color. Includes handle of RGB and HSL. public static class ColorUtil Inheritance object ColorUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties EnvDiscreteRgbSeed public static int EnvDiscreteRgbSeed { get; set; } Property Value int The seed is applied to GetDiscreteRGB_Env(double, double). ExceptionRed Exception RGB. Also for nan value. public static Vec3d ExceptionRed { get; } Property Value Vec3d Gray Generate gray color. RGB=(0.2, 0.2, 0.2). public static Vec3d Gray { get; } Property Value Vec3d NoValueGreen No value RGB. public static Vec3d NoValueGreen { get; } Property Value Vec3d NullDark Generate dark RGB for null value. RGB=(0,0,0). public static Vec3d NullDark { get; } Property Value Vec3d UndeterminedPurple Undetermined RGB. public static Vec3d UndeterminedPurple { get; } Property Value Vec3d Methods FromDualHexString(string) Parses an RRGGBB hexadecimal string (optionally prefixed with #) back to an RGB color vector with channels in 0~1. Inverse of ToDualHexString(Vec3d) up to 8-bit rounding. public static Vec3d FromDualHexString(string hex) Parameters hex string The hexadecimal color string, e.g. #3fa0c8. Returns Vec3d RGB color vector. GetDiscreteRGBWithoutPurpleAndRed(int, double, double) Get discrete RGB without purple and red color ranges. public static Vec3d GetDiscreteRGBWithoutPurpleAndRed(int seed, double saturation = 1, double light = 0.5) Parameters seed int Color seed. Determines the hue value. saturation double Saturation value of the color. light double Light value of the color. Returns Vec3d RGB color vector without purple and red ranges. GetDiscreteRGB_Env(double, double) Get discrete color using EnvDiscreteRgbSeed. The functionality is the same as GetDiscreteRgb(int, double, double). The function call makes EnvDiscreteRgbSeed plus 1. public static Vec3d GetDiscreteRGB_Env(double saturation = 1, double light = 0.5) Parameters saturation double saturation light double light Returns Vec3d RGB GetDiscreteRgb(int, double, double) Get discrete color(RGB). The term ‘discrete’ means there is big color difference between nearby seed. This function is good to auto set color for lot of components. public static Vec3d GetDiscreteRgb(int seed, double saturation = 1, double light = 0.5) Parameters seed int color seed. Determine the hue value by BinaryDividentSequence(int). saturation double saturation light double light Returns Vec3d RGB GetDiscreteRgbByBoundary(int, double, double, double, double) Get discrete RGB by boundary. public static Vec3d GetDiscreteRgbByBoundary(int seed, double hueBegin = 0, double hueEnd = 1, double saturation = 1, double light = 0.5) Parameters seed int Color seed. Determines the hue value. hueBegin double The beginning of the hue range. hueEnd double The end of the hue range. saturation double Saturation value of the color. light double Light value of the color. Returns Vec3d RGB color vector with boundary. GetGloomyColor(Guid, double, double) Gloomy color (blue tune by default) seeded by a persisted identity. The same Guid always yields the same color — across loads, threads, processes and platforms — unlike GetGloomyColor(object, double, double), whose identity-hash seed is stable only within one thread's allocation order. public static Vec3d GetGloomyColor(this Guid seed, double hueMin = 0.5, double hueMax = 0.7) Parameters seed Guid Persisted identity, e.g. an anchor's Guid. hueMin double The beginning of the hue range. hueMax double The end of the hue range. Returns Vec3d RGB color vector. Remarks Uses an FNV-1a hash over ToByteArray() rather than GetHashCode() or GetHashCode(): the latter are not guaranteed stable across runtimes, and string hashing is randomized per process on .NET Core. GetGloomyColor(object, double, double) The default value is blue tune. public static Vec3d GetGloomyColor(this object seed, double hueMin = 0.5, double hueMax = 0.7) Parameters seed object hueMin double hueMax double Returns Vec3d Remarks The hue is seeded by GetHashCode(). For a type that does not override it, that is the CLR identity hash — drawn per thread on the first call — so the color depends on which thread asks first and in what order, and two loads of the same data get different colors. When a persisted identity is available, prefer GetGloomyColor(Guid, double, double). GetRgb(double, RatioRgbFuncEnum) Get RGB by funcEnum. public static Vec3d GetRgb(double v, RatioRgbFuncEnum funcEnum) Parameters v double value funcEnum RatioRgbFuncEnum function enum Returns Vec3d RGB GetRgbByErf(double) Get RGB interpolated from blue to green to red by erf function. The range suits for -2 to 0 to 2. public static Vec3d GetRgbByErf(double v) Parameters v double input of the erf Returns Vec3d RGB GetRgbByHslOffset(Vec3d, Vec3d) Convert RGB by HSL offset. This is a three step process: RGB convert to HSL, HSL+=hslOffset, HSL convert to RGB. public static Vec3d GetRgbByHslOffset(Vec3d rgb, Vec3d hslOffset) Parameters rgb Vec3d RGB hslOffset Vec3d HSL offset Returns Vec3d RGB GetRgbByLinearRatio(double) 0 ~ 0.5 ~ 1 is linearly interpolated to blue to green to red. The below range data is pure blue. The exceeding range data is pure red. public static Vec3d GetRgbByLinearRatio(double ratio) Parameters ratio double the interpolation range is 0~1 Returns Vec3d RGB GetRgbByNormalizedErf(double) 0 ~ 0.5 ~ 1 is interpolated to blue to green to red. The below range data is pure blue. The exceeding range data is pure red. return GetRgbByLinearRatio(MathUtil.Erf(ratio*2) / MathUtil.Erf(2)); public static Vec3d GetRgbByNormalizedErf(double ratio) Parameters ratio double the interpolation range is 0~1 Returns Vec3d RGB GetRgbByNormalizedPositiveErf(double) 0 ~ 0.5 ~ 1 is interpolated to blue to green to red. The below range data is pure blue. The exceeding range data is pure red. Only the positive half form is used. return GetRgbByLinearRatio(MathUtil.Erf(ratio*2) / MathUtil.Erf(2)); public static Vec3d GetRgbByNormalizedPositiveErf(double ratio) Parameters ratio double the interpolation range is 0~1 Returns Vec3d RGB GetRgbByPositiveErf(double) Get RGB interpolated from blue to green to red by modified erf function. public static Vec3d GetRgbByPositiveErf(double v) Parameters v double input of the modified erf Returns Vec3d color Remarks If v is equal or lower than 0, the color is blue; if v is equal or larger than 1, the color is red; otherwise, the color varied from blue to green to red by modified erf function. GetRgbByPositiveErf(double, double, double) Get RGB interpolated from blue to green to red by modified erf function. public static Vec3d GetRgbByPositiveErf(double v, double floor, double ceil) Parameters v double input of the modified erf floor double floor value of v ceil double ceil value of v Returns Vec3d color Remarks If v is equal or lower than floor, the color is blue; if v is equal or larger than ceil, the color is red; otherwise, the color varied from blue to green to red by modified erf function. HslToRgb(Vec3d) Convert color convention from HSL to RGB. public static Vec3d HslToRgb(Vec3d hsl) Parameters hsl Vec3d HSL Returns Vec3d RGB HslToRgb(double, double, double) Convert color convention from HSL to RGB. public static Vec3d HslToRgb(double hue, double saturation, double light) Parameters hue double hue saturation double saturation light double light Returns Vec3d RGB RgbToHsl(Vec3d) Convert color convention from RGB to HSL. public static Vec3d RgbToHsl(Vec3d rgb) Parameters rgb Vec3d RGB Returns Vec3d HSL RgbToHsl(double, double, double) Convert color convention from RGB to HSL. public static Vec3d RgbToHsl(double r, double g, double b) Parameters r double red g double green b double blue Returns Vec3d HSL ToDualHexString(Vec3d) Converts an RGB color vector to a hexadecimal string representation. public static string ToDualHexString(Vec3d rgb) Parameters rgb Vec3d The RGB color vector to convert. Returns string A hexadecimal string representation of the RGB color." }, "api/Hi.Coloring.DictionaryColorGuide.html": { "href": "api/Hi.Coloring.DictionaryColorGuide.html", "title": "Class DictionaryColorGuide | HiAPI-C# 2025", "summary": "Class DictionaryColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that manages a dictionary of color guides and allows selection of one active guide. public class DictionaryColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide Inheritance object DictionaryColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide 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) Constructors DictionaryColorGuide() Initializes a new instance of the DictionaryColorGuide class. public DictionaryColorGuide() DictionaryColorGuide(DictionaryColorGuide) Initializes a new instance of the DictionaryColorGuide class by copying from another instance. public DictionaryColorGuide(DictionaryColorGuide src) Parameters src DictionaryColorGuide The source color guide to copy from. DictionaryColorGuide(XElement, string, IProgress, Dictionary) Initializes a new instance of the DictionaryColorGuide class from XML. public DictionaryColorGuide(XElement src, string baseDirectory, IProgress progress, Dictionary colorGuideCtorArgDictionary) Parameters src XElement The XML element containing the color guide data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. colorGuideCtorArgDictionary Dictionary Dictionary containing constructor arguments for color guides. Properties KeyToColorGuide Gets or sets the dictionary mapping keys to color guides. public Dictionary KeyToColorGuide { get; set; } Property Value Dictionary SelectedColorGuide Gets the currently selected color guide. public IColorGuide SelectedColorGuide { get; } Property Value IColorGuide SelectedKey Gets or sets the key of the currently selected color guide. public string SelectedKey { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. RefreshSelectedColorGuide() Refreshes the selected color guide based on the current SelectedKey. public void RefreshSelectedColorGuide() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.DiscreteQuantityColorGuide.html": { "href": "api/Hi.Coloring.DiscreteQuantityColorGuide.html", "title": "Class DiscreteQuantityColorGuide | HiAPI-C# 2025", "summary": "Class DiscreteQuantityColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that assigns colors based on discrete quantity values. public class DiscreteQuantityColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide Inheritance object DiscreteQuantityColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide 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) Constructors DiscreteQuantityColorGuide() Initializes a new instance of the DiscreteQuantityColorGuide class. public DiscreteQuantityColorGuide() DiscreteQuantityColorGuide(string) Initializes a new instance of the DiscreteQuantityColorGuide class with a specified quantity key. public DiscreteQuantityColorGuide(string quantityKey) Parameters quantityKey string The key used to retrieve quantity values. DiscreteQuantityColorGuide(XElement) Initializes a new instance of the DiscreteQuantityColorGuide class from XML. public DiscreteQuantityColorGuide(XElement src) Parameters src XElement The XML element containing the color guide data. Properties QuantityKey Gets or sets the key used to retrieve the quantity value. public string QuantityKey { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.FilteredColorGuide.html": { "href": "api/Hi.Coloring.FilteredColorGuide.html", "title": "Class FilteredColorGuide | HiAPI-C# 2025", "summary": "Class FilteredColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that combines a filter color guide with a dictionary color guide. public class FilteredColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide Inheritance object FilteredColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide 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) Constructors FilteredColorGuide() Initializes a new instance of the FilteredColorGuide class. public FilteredColorGuide() FilteredColorGuide(XElement, string, IProgress, Dictionary) Initializes a new instance of the FilteredColorGuide class from XML. public FilteredColorGuide(XElement src, string baseDirectory, IProgress progress, Dictionary colorGuideCtorArgDictionary) Parameters src XElement The XML element containing the color guide data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. colorGuideCtorArgDictionary Dictionary Dictionary containing constructor arguments for color guides. Properties DictionaryColorGuide Gets or sets the dictionary color guide that is used when the filter color guide returns null. public DictionaryColorGuide DictionaryColorGuide { get; set; } Property Value DictionaryColorGuide FilterColorGuide Gets or sets the filter color guide that is applied first. public IColorGuide FilterColorGuide { get; set; } Property Value IColorGuide XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.FuncRangeColorGuide.html": { "href": "api/Hi.Coloring.FuncRangeColorGuide.html", "title": "Class FuncRangeColorGuide | HiAPI-C# 2025", "summary": "Class FuncRangeColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that uses a function to get a numeric value and maps it to a color using a range color rule. public class FuncRangeColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide, IGetRangeColorRule Inheritance object FuncRangeColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide IGetRangeColorRule 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) Constructors FuncRangeColorGuide(Func, RangeColorRule) Initializes a new instance of the FuncRangeColorGuide class. public FuncRangeColorGuide(Func colorIndexFunc, RangeColorRule rangeColorRule) Parameters colorIndexFunc Func The function to get the numeric value for coloring. rangeColorRule RangeColorRule The rule that maps numeric values to colors. FuncRangeColorGuide(XElement, Func) Initializes a new instance of the FuncRangeColorGuide class from XML. public FuncRangeColorGuide(XElement src, Func colorIndexFunc) Parameters src XElement The XML element containing the color guide data. colorIndexFunc Func The function to get the numeric value for coloring. Properties ColorIndexFunc Gets or sets the function that extracts a numeric value from the input object for coloring. public Func ColorIndexFunc { get; set; } Property Value Func RangeColorRule Gets or sets the rule that maps numeric values to colors. public RangeColorRule RangeColorRule { get; set; } Property Value RangeColorRule XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRangeColorRule() Gets the range color rule. public RangeColorRule GetRangeColorRule() Returns RangeColorRule The range color rule. GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.IColorGuide.html": { "href": "api/Hi.Coloring.IColorGuide.html", "title": "Interface IColorGuide | HiAPI-C# 2025", "summary": "Interface IColorGuide Namespace Hi.Coloring Assembly HiMech.dll Interface of setting color and the rendering priority. public interface IColorGuide : IMakeXmlSource, IGetColorGuide Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IGetColorGuide.GetColorGuide() 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) Methods GetRgb(object) Get rgb bystep. Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority." }, "api/Hi.Coloring.IColorGuideProperty.html": { "href": "api/Hi.Coloring.IColorGuideProperty.html", "title": "Interface IColorGuideProperty | HiAPI-C# 2025", "summary": "Interface IColorGuideProperty Namespace Hi.Coloring Assembly HiMech.dll Interface for objects that have a color guide property. public interface IColorGuideProperty 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 ColorGuide Gets or sets the color guide associated with this object. IColorGuide ColorGuide { get; set; } Property Value IColorGuide" }, "api/Hi.Coloring.IGetColorGuide.html": { "href": "api/Hi.Coloring.IGetColorGuide.html", "title": "Interface IGetColorGuide | HiAPI-C# 2025", "summary": "Interface IGetColorGuide Namespace Hi.Coloring Assembly HiMech.dll Interface of GetColorGuide(). public interface IGetColorGuide 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) Methods GetColorGuide() Get IColorGuide. IColorGuide GetColorGuide() Returns IColorGuide IColorGuide" }, "api/Hi.Coloring.IGetRangeColorRule.html": { "href": "api/Hi.Coloring.IGetRangeColorRule.html", "title": "Interface IGetRangeColorRule | HiAPI-C# 2025", "summary": "Interface IGetRangeColorRule Namespace Hi.Coloring Assembly HiGeom.dll Interface for retrieving a range color rule. public interface IGetRangeColorRule 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) Methods GetRangeColorRule() Gets the range color rule. RangeColorRule GetRangeColorRule() Returns RangeColorRule The range color rule." }, "api/Hi.Coloring.IGetRgb.html": { "href": "api/Hi.Coloring.IGetRgb.html", "title": "Interface IGetRgb | HiAPI-C# 2025", "summary": "Interface IGetRgb Namespace Hi.Coloring Assembly HiGeom.dll Rgb getter interface public interface IGetRgb 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) Methods GetRgb() Get RGB. Vec3d GetRgb() Returns Vec3d RGB" }, "api/Hi.Coloring.IGetRgbWithPriority.html": { "href": "api/Hi.Coloring.IGetRgbWithPriority.html", "title": "Interface IGetRgbWithPriority | HiAPI-C# 2025", "summary": "Interface IGetRgbWithPriority Namespace Hi.Coloring Assembly HiMech.dll Interface ofGetRgbWithPriority(out Vec3d, out double). public interface IGetRgbWithPriority 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) Methods GetRgbWithPriority(out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d rgb priority double priority" }, "api/Hi.Coloring.PlainColorGuide.html": { "href": "api/Hi.Coloring.PlainColorGuide.html", "title": "Class PlainColorGuide | HiAPI-C# 2025", "summary": "Class PlainColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that provides a constant color value. public class PlainColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide Inheritance object PlainColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide 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) Constructors PlainColorGuide() Initializes a new instance of the PlainColorGuide class. public PlainColorGuide() PlainColorGuide(XElement) Initializes a new instance of the PlainColorGuide class from XML. public PlainColorGuide(XElement src) Parameters src XElement The XML element containing the color guide data. Properties Rgb Gets or sets the RGB color value. public Vec3d Rgb { get; set; } Property Value Vec3d XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.QuantityColorGuide.html": { "href": "api/Hi.Coloring.QuantityColorGuide.html", "title": "Class QuantityColorGuide | HiAPI-C# 2025", "summary": "Class QuantityColorGuide Namespace Hi.Coloring Assembly HiMech.dll A color guide that maps numeric quantities to colors using a range color rule. public class QuantityColorGuide : IColorGuide, IMakeXmlSource, IGetColorGuide, IGetRangeColorRule Inheritance object QuantityColorGuide Implements IColorGuide IMakeXmlSource IGetColorGuide IGetRangeColorRule 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) Constructors QuantityColorGuide() Initializes a new instance of the QuantityColorGuide class. public QuantityColorGuide() QuantityColorGuide(string, RangeColorRule) Initializes a new instance of the QuantityColorGuide class with specified quantity key and range color rule. public QuantityColorGuide(string quantityKey, RangeColorRule rangeColorRule) Parameters quantityKey string The key used to retrieve quantity values. rangeColorRule RangeColorRule The rule that maps numeric values to colors. QuantityColorGuide(XElement) Initializes a new instance of the QuantityColorGuide class from XML. public QuantityColorGuide(XElement src) Parameters src XElement The XML element containing the color guide data. Properties QuantityKey Gets or sets the key used to retrieve the quantity value. public string QuantityKey { get; set; } Property Value string RangeColorRule Gets or sets the rule that maps numeric values to colors. public RangeColorRule RangeColorRule { get; set; } Property Value RangeColorRule XName Name for XML IO. public static string XName { get; } Property Value string Methods GetColorGuide() Get IColorGuide. public IColorGuide GetColorGuide() Returns IColorGuide IColorGuide GetRangeColorRule() Gets the range color rule. public RangeColorRule GetRangeColorRule() Returns RangeColorRule The range color rule. GetRgb(object) Get rgb bystep. public Vec3d GetRgb(object step) Parameters step object step Returns Vec3d rgb GetRgbWithPriority(object, out Vec3d, out double) Get color with the showing priority if the showing area overlapped by shrinking. Only effect on CubeTree. public void GetRgbWithPriority(object step, out Vec3d rgb, out double attachmentPriority) Parameters step object step rgb Vec3d rgb attachmentPriority double priority. Larger one takes priority. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.RangeColorRule.html": { "href": "api/Hi.Coloring.RangeColorRule.html", "title": "Class RangeColorRule | HiAPI-C# 2025", "summary": "Class RangeColorRule Namespace Hi.Coloring Assembly HiGeom.dll Defines a rule for mapping numeric values to colors based on a range. public class RangeColorRule : IMakeXmlSource, IGetRangeColorRule Inheritance object RangeColorRule Implements IMakeXmlSource IGetRangeColorRule 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RangeColorRule() Ctor. public RangeColorRule() RangeColorRule(double, double, RatioRgbFuncEnum) Constructor with range and color function specification. public RangeColorRule(double floor, double ceiling, RatioRgbFuncEnum ratioRgbFuncEnum = RatioRgbFuncEnum.NormalizedPositiveErf) Parameters floor double The lower bound of the range. ceiling double The upper bound of the range. ratioRgbFuncEnum RatioRgbFuncEnum The function to map ratio values to RGB colors. RangeColorRule(XElement) Ctor. public RangeColorRule(XElement src) Parameters src XElement XML Fields RatioRgbFuncEnum The function used to map ratio values to RGB colors. public RatioRgbFuncEnum RatioRgbFuncEnum Field Value RatioRgbFuncEnum Properties Ceiling Gets or sets the upper bound of the range. public double Ceiling { get; set; } Property Value double Floor Gets or sets the lower bound of the range. public double Floor { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods GetRangeColorRule() Gets the range color rule. public RangeColorRule GetRangeColorRule() Returns RangeColorRule The range color rule. GetRgb(double) Gets the RGB color for a given value based on the range and color function. public Vec3d GetRgb(double v) Parameters v double The value to convert to a color. Returns Vec3d RGB color vector. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.RatioRgbFuncEnum.html": { "href": "api/Hi.Coloring.RatioRgbFuncEnum.html", "title": "Enum RatioRgbFuncEnum | HiAPI-C# 2025", "summary": "Enum RatioRgbFuncEnum Namespace Hi.Coloring Assembly HiGeom.dll Ratio-based RGB function enum. public enum RatioRgbFuncEnum 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 Linear = 2 Represent GetRgbByLinearRatio(double). NormalizedErf = 1 Represent GetRgbByErf(double). NormalizedPositiveErf = 0 Represent GetRgbByPositiveErf(double)." }, "api/Hi.Coloring.RgbSeed.html": { "href": "api/Hi.Coloring.RgbSeed.html", "title": "Class RgbSeed | HiAPI-C# 2025", "summary": "Class RgbSeed Namespace Hi.Coloring Assembly HiGeom.dll A simple object contains RGB value. public class RgbSeed : IGetRgb, IMakeXmlSource Inheritance object RgbSeed Implements IGetRgb IMakeXmlSource 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RgbSeed() Ctor. public RgbSeed() RgbSeed(Vec3d) Ctor. public RgbSeed(Vec3d rgb) Parameters rgb Vec3d RGB RgbSeed(XElement) Ctor. public RgbSeed(XElement src) Parameters src XElement XML Properties Rgb RGB. public Vec3d Rgb { get; set; } Property Value Vec3d XName Name for XML IO. public static string XName { get; } Property Value string Methods GetRgb() Get RGB. public Vec3d GetRgb() Returns Vec3d RGB MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Coloring.html": { "href": "api/Hi.Coloring.html", "title": "Namespace Hi.Coloring | HiAPI-C# 2025", "summary": "Namespace Hi.Coloring Classes ColorUtil Utility for handling color. Includes handle of RGB and HSL. DictionaryColorGuide A color guide that manages a dictionary of color guides and allows selection of one active guide. DiscreteQuantityColorGuide A color guide that assigns colors based on discrete quantity values. FilteredColorGuide A color guide that combines a filter color guide with a dictionary color guide. FuncRangeColorGuide A color guide that uses a function to get a numeric value and maps it to a color using a range color rule. PlainColorGuide A color guide that provides a constant color value. QuantityColorGuide A color guide that maps numeric quantities to colors using a range color rule. RangeColorRule Defines a rule for mapping numeric values to colors based on a range. RgbSeed A simple object contains RGB value. Interfaces IColorGuide Interface of setting color and the rendering priority. IColorGuideProperty Interface for objects that have a color guide property. IGetColorGuide Interface of GetColorGuide(). IGetRangeColorRule Interface for retrieving a range color rule. IGetRgb Rgb getter interface IGetRgbWithPriority Interface ofGetRgbWithPriority(out Vec3d, out double). Enums RatioRgbFuncEnum Ratio-based RGB function enum." }, "api/Hi.Common.BinIoUtil.html": { "href": "api/Hi.Common.BinIoUtil.html", "title": "Class BinIoUtil | HiAPI-C# 2025", "summary": "Class BinIoUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for binary I/O operations. public static class BinIoUtil Inheritance object BinIoUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetBytesWithWriter(Action) Gets a byte array by executing an action with a BinaryWriter. public static byte[] GetBytesWithWriter(Action action) Parameters action Action The action to execute with the BinaryWriter. Returns byte[] The resulting byte array. GetWithReader(Func, byte[]) Gets a result by executing a function with a BinaryReader created from the provided byte array. public static T GetWithReader(Func Func, byte[] bytes) Parameters Func Func The function to execute with the BinaryReader. bytes byte[] The byte array to read from. Returns T The result of the function execution. Type Parameters T The type of the result. RunWithReader(Action, byte[]) Executes an action with a BinaryReader created from the provided byte array. public static void RunWithReader(Action action, byte[] bytes) Parameters action Action The action to execute with the BinaryReader. bytes byte[] The byte array to read from. ToBytes(IWriteBin) Converts an object implementing IWriteBin interface to a byte array. public static byte[] ToBytes(this IWriteBin src) Parameters src IWriteBin The source object that implements IWriteBin. Returns byte[] The byte array representation of the object." }, "api/Hi.Common.BitUtil.html": { "href": "api/Hi.Common.BitUtil.html", "title": "Class BitUtil | HiAPI-C# 2025", "summary": "Class BitUtil Namespace Hi.Common Assembly HiGeom.dll Utility for bit control for integer. public static class BitUtil Inheritance object BitUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetBit(int, int) Get bit from the given position of the target integer. public static bool GetBit(this int src, int pos) Parameters src int target integer pos int the bit position Returns bool the bit at the given position GetSetBit(int, int, bool) Sets a bit at the specified position and returns the modified value without changing the original. public static int GetSetBit(this int src, int pos, bool v) Parameters src int Source integer value pos int Bit position to set v bool Value to set (true for 1, false for 0) Returns int The modified integer with the bit set at the specified position SetBit(ref int, int, bool) set bit value at given position of an integer public static int SetBit(this ref int src, int pos, bool v) Parameters src int target integer pos int the bit position v bool given value Returns int the target integer SwitchBit(BitArray, int) Switches (toggles) the bit at the specified position in a BitArray. public static BitArray SwitchBit(this BitArray hdl, int pos) Parameters hdl BitArray The BitArray to modify pos int The position of the bit to toggle Returns BitArray The modified BitArray" }, "api/Hi.Common.BlockingTimer.html": { "href": "api/Hi.Common.BlockingTimer.html", "title": "Class BlockingTimer | HiAPI-C# 2025", "summary": "Class BlockingTimer Namespace Hi.Common Assembly HiGeom.dll Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. public class BlockingTimer : IMakeXmlSource, IDisposable Inheritance object BlockingTimer Implements IMakeXmlSource 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors BlockingTimer() Ctor. public BlockingTimer() BlockingTimer(TimeSpan) Initializes a new instance of the BlockingTimer class with the specified period. public BlockingTimer(TimeSpan period) Parameters period TimeSpan The time interval between timer events BlockingTimer(XElement) Constructor that initializes the timer from XML data. public BlockingTimer(XElement src) Parameters src XElement XML element containing timer configuration Fields XName XML element name for serialization. public static string XName Field Value string Properties Period The time period between timer events. public TimeSpan Period { get; set; } Property Value TimeSpan WorkingTask Gets the task that represents the timer's working process. public Task WorkingTask { get; } Property Value Task Methods 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 EnsureRunOnce() Ensures the timer runs at least once. public Task EnsureRunOnce() Returns Task The task representing the timer's working process MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Start() Starts the timer in long-term mode. public Task Start() Returns Task The task representing the timer's working process Stop() Stops the timer and cancels any ongoing operations. public Task Stop() Returns Task The task representing the timer's working process Events Elapsed Event that is triggered when the timer elapses. public event Action Elapsed Event Type Action" }, "api/Hi.Common.BytesUtil.html": { "href": "api/Hi.Common.BytesUtil.html", "title": "Class BytesUtil | HiAPI-C# 2025", "summary": "Class BytesUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for byte array operations and memory size conversions. public static class BytesUtil Inheritance object BytesUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ConcatByteArray(IEnumerable) Concatenates multiple byte arrays into a single byte array. public static byte[] ConcatByteArray(this IEnumerable src_) Parameters src_ IEnumerable The source byte arrays to concatenate. Returns byte[] A single byte array containing all the bytes from the source arrays. FromBytes(byte[]) Converts a byte array to a structure. public static T FromBytes(byte[] arr) where T : new() Parameters arr byte[] The byte array containing the structure data. Returns T The structure created from the byte array. Type Parameters T The type of the structure to create. GetMemorySizeValueUnit(long) Gets the value and unit for a memory size in bytes. public static (double val, string unit) GetMemorySizeValueUnit(long num) Parameters num long The size in bytes. Returns (double val, string unit) A tuple containing the converted value and the appropriate unit. SplitByteArray(IEnumerable, int, bool) Splits a byte array into multiple arrays of a specified size. public static byte[][] SplitByteArray(this IEnumerable src_, int sliceSize, bool allowReferenceBySource = false) Parameters src_ IEnumerable The source byte enumerable to split. sliceSize int The size of each slice. allowReferenceBySource bool If true and the source array is smaller than or equal to the slice size, returns the source array directly. Returns byte[][] An array of byte arrays, each containing a slice of the original array. ToBytes(BitArray) Converts a BitArray to a byte array. public static byte[] ToBytes(this BitArray bitArray) Parameters bitArray BitArray The BitArray to convert. Returns byte[] A byte array representing the BitArray. ToBytes(T) Converts a structure to a byte array. public static byte[] ToBytes(T str) Parameters str T The structure to convert. Returns byte[] A byte array containing the structure data. Type Parameters T The type of the structure to convert. ToLongByMemorySizeString(string) Parses a memory size string (e.g., “10MB”, “2.5GB”) into a long value representing bytes. public static long ToLongByMemorySizeString(this string memorySizeString) Parameters memorySizeString string The memory size string to parse. Returns long The parsed value in bytes. Exceptions FormatException Thrown when the parsing fails. ToMemorySizeString(int, string) Converts an integer value representing bytes to a formatted memory size string. public static string ToMemorySizeString(this int num, string format = \"{0,6:###.00} {1,-2:##}\") Parameters num int The size in bytes. format string The format string to use for formatting the output. Returns string A formatted string representing the memory size. ToMemorySizeString(long, string) Converts a long value representing bytes to a formatted memory size string. public static string ToMemorySizeString(this long num, string format = \"{0,6:###.00} {1,-2:##}\") Parameters num long The size in bytes. format string The format string to use for formatting the output. Returns string A formatted string representing the memory size. TryParseLongByMemorySizeString(string, out long) Tries to parse a memory size string (e.g., “10MB”, “2.5GB”) into a long value representing bytes. public static bool TryParseLongByMemorySizeString(this string memorySizeString, out long dst) Parameters memorySizeString string The memory size string to parse. dst long When this method returns, contains the parsed value if the parsing succeeded, or long.MaxValue if the parsing failed. Returns bool true if the parsing succeeded; otherwise, false." }, "api/Hi.Common.Collections.DictionaryUtil.html": { "href": "api/Hi.Common.Collections.DictionaryUtil.html", "title": "Class DictionaryUtil | HiAPI-C# 2025", "summary": "Class DictionaryUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility class providing extension methods for dictionary operations. public static class DictionaryUtil Inheritance object DictionaryUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetOrCreate(IDictionary, TKey) Gets the value for key, or creates a new TValue via its parameterless constructor, stores it in the dictionary, and returns it. public static TValue GetOrCreate(this IDictionary src, TKey key) where TValue : new() Parameters src IDictionary key TKey Returns TValue Type Parameters TKey TValue GetOrCreate(IDictionary, TKey, Func) Gets the value for key, or invokes factory to create, store, and return a new value if the key is absent. public static TValue GetOrCreate(this IDictionary src, TKey key, Func factory) Parameters src IDictionary key TKey factory Func Returns TValue Type Parameters TKey TValue GetOrCreate(IDictionary, TKey, TValue) Gets the value for key, or stores and returns defaultValue if the key is absent. public static TValue GetOrCreate(this IDictionary src, TKey key, TValue defaultValue) Parameters src IDictionary key TKey defaultValue TValue Returns TValue Type Parameters TKey TValue Retrieve(Dictionary, K, out V, bool) Retrieves a value from a dictionary by key, with an option to remove it from the source. public static bool Retrieve(this Dictionary src, K key, out V v, bool removeFromSource) Parameters src Dictionary The source dictionary. key K The key to look for. v V When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. removeFromSource bool If true, removes the key-value pair from the dictionary if found. Returns bool true if the key was found; otherwise, false. Type Parameters K The type of the keys in the dictionary. V The type of the values in the dictionary. TryGetValueByKeys(IDictionary, IEnumerable, out TValue) Tries to get a value from a dictionary by checking multiple keys in sequence. public static bool TryGetValueByKeys(this IDictionary src, IEnumerable keys, out TValue v) Parameters src IDictionary The source dictionary. keys IEnumerable The collection of keys to check. v TValue When this method returns, contains the value associated with the first matching key, if a key is found; otherwise, the default value for the type of the value parameter. Returns bool true if any of the keys was found; otherwise, false. Type Parameters TKey The type of the keys in the dictionary. TValue The type of the values in the dictionary." }, "api/Hi.Common.Collections.EnumerableUtil.html": { "href": "api/Hi.Common.Collections.EnumerableUtil.html", "title": "Class EnumerableUtil | HiAPI-C# 2025", "summary": "Class EnumerableUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility class providing extension methods for enumerable collections. public static class EnumerableUtil Inheritance object EnumerableUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetIntensiveItems(IEnumerable, double, Func) Gets a collection of items with additional interpolated items inserted where the distance between consecutive items exceeds a specified resolution. public static IEnumerable GetIntensiveItems(this IEnumerable src, double resolution, Func keyFunc) where TItem : IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IDivisionOperators Parameters src IEnumerable The source collection. resolution double The maximum allowed distance between consecutive items. keyFunc Func A function that extracts a double value from an item, used to measure the distance between items. Returns IEnumerable A collection containing the original items and additional interpolated items where needed. Type Parameters TItem The type of items in the collection, which must support arithmetic operations. Remarks This method ensures that the distance between consecutive items in the resulting collection does not exceed the specified resolution. When the distance between two consecutive items in the source collection exceeds the resolution, additional items are interpolated between them." }, "api/Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html": { "href": "api/Hi.Common.Collections.FixedSizeConcurrentLinkedListUtil.html", "title": "Class FixedSizeConcurrentLinkedListUtil | HiAPI-C# 2025", "summary": "Class FixedSizeConcurrentLinkedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility of Fixed Size Concurrent LinkedList. public static class FixedSizeConcurrentLinkedListUtil Inheritance object FixedSizeConcurrentLinkedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetThreadSafeEnumerable(LinkedList, object) Gets a thread-safe enumerable from the linked list by creating a copy of the list under a lock. public static IEnumerable GetThreadSafeEnumerable(this LinkedList delegatorLinkedList, object locker = null) Parameters delegatorLinkedList LinkedList The source linked list. locker object The object to use as a lock for synchronization. If null, the linked list itself will be used as the lock object. Returns IEnumerable A thread-safe enumerable of the elements in the linked list. Type Parameters T The type of elements in the linked list. ThreadSafeEnqueue(LinkedList, T, int, object) Enqueue data to delegatorLinkedList synchronizely. public static void ThreadSafeEnqueue(this LinkedList delegatorLinkedList, T data, int bufferCapacity, object locker = null) Parameters delegatorLinkedList LinkedList data T bufferCapacity int if capacity smaller or equal to zero. The capacity is assume infinity. locker object locker is locker for delegatorLinkedList synchronization. if null, apply delegatorLinkedList as locker. Type Parameters T" }, "api/Hi.Common.Collections.LazyLinkedList-1.html": { "href": "api/Hi.Common.Collections.LazyLinkedList-1.html", "title": "Class LazyLinkedList | HiAPI-C# 2025", "summary": "Class LazyLinkedList Namespace Hi.Common.Collections Assembly HiGeom.dll A singly-growable linked list that can lazily materialize nodes from an IEnumerable source. Without a source it behaves like a regular append-only linked list. With a source, nodes are pulled on demand when Next is accessed on the tail, or when First is accessed on an empty list. public class LazyLinkedList : IEnumerable, IEnumerable, IDisposable Type Parameters T Inheritance object LazyLinkedList Implements IEnumerable IEnumerable 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) StringUtil.ToDotSplitedString(IEnumerable) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Examples // Lazy: nodes materialize as you walk .Next using var list = new LazyLinkedList(File.ReadLines(path)); var node = list.First; // materializes line 0 var next = node.Next; // materializes line 1 // Manual: just like a regular linked list var list2 = new LazyLinkedList(); list2.AddLast(1); list2.AddLast(2); Constructors LazyLinkedList() Creates an empty list (no lazy source). public LazyLinkedList() LazyLinkedList(IEnumerable) Creates a list backed by a lazy source. Nodes are materialized on demand via Next or First. public LazyLinkedList(IEnumerable source) Parameters source IEnumerable Properties Count Number of nodes currently materialized in the list. public int Count { get; } Property Value int ExhaustedLast Forces full materialization of the lazy source and returns the last node. Walks the source to completion (no-op if already exhausted), then returns Last. Use when callers need the definitive tail at this point in time (e.g. as a stable predecessor before AppendSource(IEnumerable)). public LazyLinkedListNode ExhaustedLast { get; } Property Value LazyLinkedListNode First Gets the first node, materializing from source if the list is empty. public LazyLinkedListNode First { get; } Property Value LazyLinkedListNode IsExhausted Whether all items from the source have been materialized (or no source was provided). public bool IsExhausted { get; } Property Value bool Last Gets the last materialized node in the list. public LazyLinkedListNode Last { get; } Property Value LazyLinkedListNode Methods AddLast(T) Appends a new node with the specified value to the end of the list. public LazyLinkedListNode AddLast(T value) Parameters value T The value to add. Returns LazyLinkedListNode The newly created node. AppendSource(IEnumerable) Appends a new lazy source after the current source. The existing source's remaining items (if any) are drained first, then the new source is yielded. Re-opens the list for further on-demand materialization, so calling Next on the prior tail materializes the next item and links Previous across the boundary. public void AppendSource(IEnumerable src) Parameters src IEnumerable The new source to append. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() GetEnumerator() Returns an enumerator that iterates through the collection. public IEnumerator GetEnumerator() Returns IEnumerator An enumerator that can be used to iterate through the collection. PrependSource(IEnumerable) Prepends a new source ahead of the current source's remaining items. On the next on-demand materialization (triggered by Next on the present tail or First on an empty list), src is yielded first; once exhausted, the previous source's untouched tail resumes. The materialized prefix of the list — including the present tail — is unaffected, so this is the natural way to splice extra items in immediately after the current tail (for example, inlining an M98 subprogram's blocks after the host node so the rest of the pipeline picks them up via ordinary walkNode.Next traversal). public void PrependSource(IEnumerable src) Parameters src IEnumerable The source to insert ahead of the remaining items. Remarks Constraint: the caller must treat the present tail as the splice point. There is no way to prepend “after some interior node” — the prepended items are queued ahead of whatever the current source would have produced next. Use this when the splice point coincides with the tail at the moment of the call (which is how SoftNcRunner's pipeline drives node-by-node lazy materialization in lock-step with syntax/semantic processing). ReplaceSource(IEnumerable) Replaces the current source's remaining items with src. Discards anything the old source had queued (it is disposed); the next on-demand materialization (triggered by Next on the present tail or First on an empty list) yields from src only. Already-materialized nodes — including the present tail — are unaffected, so this is the natural way to redirect future execution from the current tail onwards (for example, a GOTO that re-segments the file from the target N{seq} line: the GOTO host block stays materialized as the predecessor, and the post-target re-segmentation becomes the new source while the original between-here- and-EOF source is dropped). public void ReplaceSource(IEnumerable src) Parameters src IEnumerable The new source. Yielded from on the next materialization. Remarks Constraint: same as PrependSource(IEnumerable) — the present tail is the splice point. Differs from PrependSource(IEnumerable) in that the old source's untouched tail is NOT preserved after src runs out; ReplaceSource(IEnumerable) drops it. Use PrependSource(IEnumerable) for inline expansion (M98 / G65) where the caller's tail must resume after the inlined body; use ReplaceSource(IEnumerable) for control-flow redirection (GOTO, M99 P{seq}) where the original tail is no longer reachable." }, "api/Hi.Common.Collections.LazyLinkedListNode-1.html": { "href": "api/Hi.Common.Collections.LazyLinkedListNode-1.html", "title": "Class LazyLinkedListNode | HiAPI-C# 2025", "summary": "Class LazyLinkedListNode Namespace Hi.Common.Collections Assembly HiGeom.dll Node for LazyLinkedList. Accessing Next on the tail node automatically materializes the next item from the list's source (if any). public class LazyLinkedListNode Type Parameters T Inheritance object LazyLinkedListNode Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 LazyLinkedListNode(T) Initializes a new instance with the specified value. public LazyLinkedListNode(T value) Parameters value T The value. Properties List Gets the list that this node belongs to. public LazyLinkedList List { get; } Property Value LazyLinkedList Next Gets the next node. When this is the last materialized node and the list has a pending source, accessing this property triggers on-demand materialization. Thread-safe: concurrent accesses from multiple threads are serialized via an internal lock. public LazyLinkedListNode Next { get; } Property Value LazyLinkedListNode Previous Gets the previous node in the list. public LazyLinkedListNode Previous { get; } Property Value LazyLinkedListNode Value Gets or sets the value of this node. public T Value { get; set; } Property Value T Methods Enumerate() Enumerates from this node forward to the end. public IEnumerable> Enumerate() Returns IEnumerable> EnumerateBack() Enumerates backwards from this node to the head. public IEnumerable> EnumerateBack() Returns IEnumerable> ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.Collections.LinkedListUtil.html": { "href": "api/Hi.Common.Collections.LinkedListUtil.html", "title": "Class LinkedListUtil | HiAPI-C# 2025", "summary": "Class LinkedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility methods for working with linked lists. public static class LinkedListUtil Inheritance object LinkedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods EnumerateBack(LinkedListNode) Enumerates linked list nodes backwards from this node to the head. public static IEnumerable> EnumerateBack(this LinkedListNode beginNode) Parameters beginNode LinkedListNode The node to start tracing backwards from (inclusive). Returns IEnumerable> An backward enumerable sequence. Type Parameters T The type of elements in the linked list. Enumerate(LinkedListNode) Enumerates linked list nodes from the beginning node to the end node (exclusive). public static IEnumerable> Enumerate(this LinkedListNode beginNode) Parameters beginNode LinkedListNode The starting node (inclusive). Returns IEnumerable> An enumerable sequence of linked list nodes. Type Parameters T The type of elements in the linked list." }, "api/Hi.Common.Collections.ListIndexBasedEnumerable-1.html": { "href": "api/Hi.Common.Collections.ListIndexBasedEnumerable-1.html", "title": "Class ListIndexBasedEnumerable | HiAPI-C# 2025", "summary": "Class ListIndexBasedEnumerable Namespace Hi.Common.Collections Assembly HiGeom.dll Provides an enumerable wrapper for a list that iterates over a specified range of indices. public class ListIndexBasedEnumerable : IEnumerable, IEnumerable Type Parameters T The type of elements in the list. Inheritance object ListIndexBasedEnumerable Implements IEnumerable IEnumerable 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) StringUtil.ToDotSplitedString(IEnumerable) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ListIndexBasedEnumerable(IList, int, int) Initializes a new instance of the ListIndexBasedEnumerable class. public ListIndexBasedEnumerable(IList source, int begin, int end) Parameters source IList The source list to enumerate. begin int The starting index (inclusive). end int The ending index (inclusive). Properties Begin Gets or sets the beginning index (inclusive) for enumeration. public int Begin { get; set; } Property Value int End Gets or sets the ending index (inclusive) for enumeration. public int End { get; set; } Property Value int Source Gets or sets the source list. public IList Source { get; set; } Property Value IList Methods GetEnumerator() Returns an enumerator that iterates through the collection. public IEnumerator GetEnumerator() Returns IEnumerator An enumerator that can be used to iterate through the collection." }, "api/Hi.Common.Collections.ListIndexBasedIEnumerator-1.html": { "href": "api/Hi.Common.Collections.ListIndexBasedIEnumerator-1.html", "title": "Class ListIndexBasedIEnumerator | HiAPI-C# 2025", "summary": "Class ListIndexBasedIEnumerator Namespace Hi.Common.Collections Assembly HiGeom.dll Provides an enumerator that iterates over a specified range of indices in a list. public class ListIndexBasedIEnumerator : IEnumerator, IEnumerator, IDisposable Type Parameters T The type of elements in the list. Inheritance object ListIndexBasedIEnumerator Implements IEnumerator IEnumerator 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ListIndexBasedIEnumerator(IList, int, int, int) Initializes a new instance of the ListIndexBasedIEnumerator class. public ListIndexBasedIEnumerator(IList source, int index, int begin, int end) Parameters source IList The source list to enumerate. index int The current index. begin int The starting index (inclusive). end int The ending index (exclusive). Properties Begin Gets or sets the beginning index of the enumeration range. public int Begin { get; set; } Property Value int Current Gets the element in the collection at the current position of the enumerator. public T Current { get; } Property Value T The element in the collection at the current position of the enumerator. End Gets or sets the ending index of the enumeration range. public int End { get; set; } Property Value int Index Gets or sets the current index in the enumeration. public int Index { get; set; } Property Value int Source Gets or sets the source list being enumerated. public IList Source { get; set; } Property Value IList Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() MoveNext() Advances the enumerator to the next element of the collection. public bool MoveNext() Returns bool true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. Exceptions InvalidOperationException The collection was modified after the enumerator was created. Reset() Sets the enumerator to its initial position, which is before the first element in the collection. public void Reset() Exceptions InvalidOperationException The collection was modified after the enumerator was created. NotSupportedException The enumerator does not support being reset." }, "api/Hi.Common.Collections.ListUtil.OuterPolationMode.html": { "href": "api/Hi.Common.Collections.ListUtil.OuterPolationMode.html", "title": "Enum ListUtil.OuterPolationMode | HiAPI-C# 2025", "summary": "Enum ListUtil.OuterPolationMode Namespace Hi.Common.Collections Assembly HiGeom.dll Defines the mode for handling values outside the range of a collection during interpolation. public enum ListUtil.OuterPolationMode 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 Extrapolation = 1 Extrapolates a value based on the trend of the collection when the key is outside the range. Nearest = 0 Uses the nearest value in the collection when the key is outside the range. TypeDefault = 2 Uses the default value for the type when the key is outside the range." }, "api/Hi.Common.Collections.ListUtil.html": { "href": "api/Hi.Common.Collections.ListUtil.html", "title": "Class ListUtil | HiAPI-C# 2025", "summary": "Class ListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Provides utility methods for working with lists and collections. public static class ListUtil Inheritance object ListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCeilBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) Gets the ceil item by seeking with the specified direction. public static SearchResult GetCeilBySeek(this IList src, TKey key, Func getKeyFunc, out TItem ceilValue, out int ceilIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. ceilValue TItem The output ceil value. ceilIndex int The output ceil index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. GetCeilIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) Gets the ceil index by seeking with the specified direction. public static SearchResult GetCeilIndexBySeek(this IList src, TKey key, Func getKeyFunc, out int ceilIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. ceilIndex int The output ceil index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartIndex bound. GetCeilIndex(IList, ItemKey, Func, out int) Gets the ceiling index of an item in a sorted list based on a key comparison. public static SearchResult GetCeilIndex(this IList sortedItems, ItemKey key, Func comparingFunc, out int index) Parameters sortedItems IList The sorted list to search in. key ItemKey The key to search for. comparingFunc Func A function that compares an item to the key. index int When this method returns, contains the index of the ceiling item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters Item The type of items in the list. ItemKey The type of the key to search for. GetCeilIndex(IList, TKey, Func, out int) Gets the ceiling index of an item in a sorted list based on a key selector function. public static SearchResult GetCeilIndex(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out int index) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. index int When this method returns, contains the index of the ceiling item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetCeil(IList, TKey, Func, out Item) Gets the ceiling item in a sorted list based on a key selector function. public static SearchResult GetCeil(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out Item dst) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. dst Item When this method returns, contains the ceiling item if found; otherwise, the default value for the type. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetFloorBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) Gets the floor item by seeking with the specified direction. public static SearchResult GetFloorBySeek(this IList src, TKey key, Func getKeyFunc, out TItem floorValue, out int floorIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. floorValue TItem The output floor value. floorIndex int The output floor index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. GetFloorIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) Gets the floor index by seeking with the specified direction. public static SearchResult GetFloorIndexBySeek(this IList src, TKey key, Func getKeyFunc, out int floorIndex, int seekingStartIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src IList The source list. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. floorIndex int The output floor index. seekingStartIndex int The start index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The search result. Type Parameters TItem The type of items in the list. TKey The type of the key. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartIndex bound. GetFloorIndex(IList, ItemKey, Func, out int) Gets the floor index of an item in a sorted list based on a key comparison. public static SearchResult GetFloorIndex(this IList sortedItems, ItemKey key, Func comparingFunc, out int index) Parameters sortedItems IList The sorted list to search in. key ItemKey The key to search for. comparingFunc Func A function that compares an item to the key. index int When this method returns, contains the index of the floor item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters Item The type of items in the list. ItemKey The type of the key to search for. GetFloorIndex(IList, TKey, Func, out int) Gets the floor index of an item in a sorted list based on a key selector function. public static SearchResult GetFloorIndex(this IList sortedItems, TKey key, Func getKeyFunc, out int index) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. key TKey The key to search for. getKeyFunc Func A function that extracts the key from an item. index int When this method returns, contains the index of the floor item if found; otherwise, -1. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetFloor(IList, TKey, Func, out Item) Gets the floor item in a sorted list based on a key selector function. public static SearchResult GetFloor(this IList sortedItems, TKey keyQuantity, Func getKeyQuantityFunc, out Item dst) where TKey : IComparable Parameters sortedItems IList The sorted list to search in. keyQuantity TKey The key to search for. getKeyQuantityFunc Func A function that extracts the key from an item. dst Item When this method returns, contains the floor item if found; otherwise, the default value for the type. Returns SearchResult A SearchResult indicating the result of the search. Type Parameters TKey The type of the key. Item The type of items in the list. GetIndexBasedEnumerable(IList) Creates an enumerable that provides access to all elements in a list by index. public static ListIndexBasedEnumerable GetIndexBasedEnumerable(this IList src) Parameters src IList The source list Returns ListIndexBasedEnumerable A ListIndexBasedEnumerable for the entire list Type Parameters TItem The type of elements in the list GetIndexBasedEnumerable(IList, int, int) Creates an enumerable that provides access to a range of elements in a list by index. public static ListIndexBasedEnumerable GetIndexBasedEnumerable(this IList src, int begin, int end) Parameters src IList The source list begin int The starting index (inclusive) end int The ending index (exclusive) Returns ListIndexBasedEnumerable A ListIndexBasedEnumerable for the specified range Type Parameters TItem The type of elements in the list GetIndexByBinarySearch(IList, TItem) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TItem value) Parameters sortedItems IList The list to be searched. value TItem The value to search for. Returns int Type Parameters TItem The type of the item. GetIndexByBinarySearch(IList, TItem, IComparer) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TItem value, IComparer comparer) Parameters sortedItems IList The list to be searched. value TItem The value to search for. comparer IComparer The comparer that is used to compare the value with the list items. Returns int Type Parameters TItem The type of the item. GetIndexByBinarySearch(IList, TSearch, Func) Performs a binary search on the specified collection. public static int GetIndexByBinarySearch(this IList sortedItems, TSearch value, Func comparer) Parameters sortedItems IList The list to be searched. value TSearch The value to search for. comparer Func The comparer that is used to compare the value with the list items. Returns int Type Parameters TItem The type of the item. TSearch The type of the searched item. GetInterpolatedBoundary(List, double, double, Func, out TItem, out TItem, out TItem) Gets interpolated boundary items from a list based on a key value and interval. public static void GetInterpolatedBoundary(this List scpList, double z, double zInterval, Func keyFunc, out TItem cur, out TItem floor, out TItem ceil) where TItem : IAdditionOperators, IMultiplyOperators Parameters scpList List The source list. z double The key value to find or interpolate at. zInterval double The interval to consider around the key value. keyFunc Func A function that extracts the key from an item. cur TItem When this method returns, contains the interpolated item at the key value. floor TItem When this method returns, contains the floor item. ceil TItem When this method returns, contains the ceiling item. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, double, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a double key, using operators for addition and multiplication. public static TItem GetInterpolatedValue(this List sortedItems, double keyQuantity, Func getKeyQuantityFunc, ListUtil.OuterPolationMode outerPolationMode) where TItem : IAdditionOperators, IMultiplyOperators Parameters sortedItems List The sorted list to interpolate from. keyQuantity double The key to find or interpolate at. getKeyQuantityFunc Func A function that extracts the key from an item. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, double, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a double key. public static TItem GetInterpolatedValue(this List sortedItems, double key, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list to interpolate from. key double The key to find or interpolate at. getKeyFunc Func A function that extracts the key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list. GetInterpolatedValue(List, TimeSpan, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a TimeSpan key, using operators for addition and multiplication. public static TItem GetInterpolatedValue(this List sortedItems, TimeSpan keyQuantity, Func getKeyQuantityFunc, ListUtil.OuterPolationMode outerPolationMode) where TItem : IAdditionOperators, IMultiplyOperators Parameters sortedItems List The sorted list to interpolate from. keyQuantity TimeSpan The TimeSpan key to find or interpolate at. getKeyQuantityFunc Func A function that extracts the TimeSpan key from an item. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list, which must support addition and multiplication operators. GetInterpolatedValue(List, TimeSpan, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a TimeSpan key. public static TItem GetInterpolatedValue(this List sortedItems, TimeSpan key, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list to interpolate from. key TimeSpan The TimeSpan key to find or interpolate at. getKeyFunc Func A function that extracts the TimeSpan key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. outerPolationMode ListUtil.OuterPolationMode The mode to use when the key is outside the range of the list. Returns TItem The interpolated value. Type Parameters TItem The type of items in the list. GetInterpolatedValue(List, TKey, Func, Func, Func, Func, Func, Func, OuterPolationMode) Gets an interpolated value from a sorted list based on a key using custom comparison and arithmetic functions. public static TItem GetInterpolatedValue(this List sortedItems, TKey key, Func getKeyFunc, Func keyCompareFunc, Func keyMinusFunc, Func keyDivFunc, Func addingFunc, Func scalingFunc, ListUtil.OuterPolationMode outerPolationMode) Parameters sortedItems List The sorted list of items key TKey The key to search for getKeyFunc Func A function that extracts the key from an item keyCompareFunc Func A function that compares two keys keyMinusFunc Func A function that subtracts one key from another keyDivFunc Func A function that divides one key by another addingFunc Func A function that adds two items scalingFunc Func A function that scales an item by a factor outerPolationMode ListUtil.OuterPolationMode The mode for handling values outside the range Returns TItem The interpolated value Type Parameters TKey The type of the key TItem The type of elements in the list GetListByKeyBoundary(List, Func, TKey, bool, TKey, bool) Gets a subset of a sorted list based on key boundaries. public static List GetListByKeyBoundary(this List sortedItems, Func getKeyQuantityFunc, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil) where TKey : IComparable Parameters sortedItems List The sorted list to filter. getKeyQuantityFunc Func A function that extracts the key from an item. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling of the ending key. Returns List A new list containing only the items within the specified key range. return empty new list instead of null if no elements in the boundary. Type Parameters TKey The type of the key, which must be comparable. TItem The type of items in the list. GetNearestIndex(IList, TItemKey, Func, out int) Finds the index of the element in a sorted list that is nearest to the specified key. public static SearchResult GetNearestIndex(this IList src, TItemKey key, Func itemToKeyDistanceFunc, out int index) Parameters src IList The source list key TItemKey The key to search for itemToKeyDistanceFunc Func A function that calculates the distance between an item and the key index int When this method returns, contains the index of the nearest element if found; otherwise, -1 Returns SearchResult A BinarySearchResult indicating the result of the search Type Parameters TItem The type of elements in the list TItemKey The type of the key to search for GetNearestIndex(IList, TItemKey, Func, Func, out int) Finds the index of the element in a sorted list that is nearest to the specified key using custom comparison functions. public static SearchResult GetNearestIndex(this IList src, TItemKey key, Func itemCompareToKeyFunc, Func itemToKeyDistanceFunc, out int index) Parameters src IList The source list (must be in ascending order) key TItemKey The key to search for itemCompareToKeyFunc Func A function that compares an item to the key itemToKeyDistanceFunc Func A function that calculates the distance between an item and the key index int When this method returns, contains the index of the nearest element if found; otherwise, -1 Returns SearchResult A BinarySearchResult indicating the result of the search Type Parameters TItem The type of elements in the list TItemKey The type of the key to search for Exceptions InvalidProgramException Thrown when an unexpected search result occurs GetSubListWithInterpolatedHeadAndTail(List, double, double, Func, Func, Func) Creates a new list with interpolated head and tail items based on the specified double key range. public static List GetSubListWithInterpolatedHeadAndTail(this List src, double beginKey, double endKey, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters src List The source list. beginKey double The beginning key of the range. endKey double The ending key of the range. getKeyFunc Func A function that extracts the double key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. Returns List A new list with interpolated head and tail items. Type Parameters TItem The type of items in the list. GetSubListWithInterpolatedHeadAndTail(List, TimeSpan, TimeSpan, Func, Func, Func) Creates a new list with interpolated head and tail items based on the specified TimeSpan key range. public static List GetSubListWithInterpolatedHeadAndTail(this List src, TimeSpan beginKey, TimeSpan endKey, Func getKeyFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters src List The source list. beginKey TimeSpan The beginning TimeSpan key of the range. endKey TimeSpan The ending TimeSpan key of the range. getKeyFunc Func A function that extracts the TimeSpan key from an item. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. Returns List A new list with interpolated head and tail items. Type Parameters TItem The type of items in the list. GetSubListWithInterpolatedHeadAndTail(List, TKey, TKey, Func, Func, Func, Func, Func, Func) Creates a new list with interpolated head and tail items based on the specified key range. public static List GetSubListWithInterpolatedHeadAndTail(this List src, TKey beginKey, TKey endKey, Func getKeyFunc, Func keyCompareFunc, Func keyMinusFunc, Func keyDivFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters src List The source list. beginKey TKey The beginning key of the range. endKey TKey The ending key of the range. getKeyFunc Func A function that extracts the key from an item. keyCompareFunc Func A function that compares two keys. keyMinusFunc Func A function that subtracts one key from another. keyDivFunc Func A function that divides one key by another to get a ratio. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. Returns List A new list with interpolated head and tail items. Type Parameters TKey The type of the key. TItem The type of items in the list. GetSubListWithInterpolatedTail(List, TimeSpan, Func, Func, Func) Creates a new list with an interpolated tail item based on the specified TimeSpan key. public static List GetSubListWithInterpolatedTail(this List src, TimeSpan endKey, Func getKeyFunc, Func addingFunc, Func scalingFunc) Parameters src List The source list. endKey TimeSpan The ending TimeSpan key for interpolation. getKeyFunc Func A function that extracts the TimeSpan key from an item. addingFunc Func A function that adds two items together. scalingFunc Func A function that scales an item by a factor. Returns List A new list with an interpolated tail item. Type Parameters TItem The type of items in the list. GetSubListWithInterpolatedTail(List, TKey, Func) Creates a new list with an interpolated tail item based on the specified key, using operators for both key and item operations. public static List GetSubListWithInterpolatedTail(this List src, TKey endKey, Func getKeyFunc) where TKey : IComparable, ISubtractionOperators, IDivisionOperators where TItem : IAdditionOperators, IMultiplyOperators Parameters src List The source list. endKey TKey The ending key for interpolation. getKeyFunc Func A function that extracts the key from an item. Returns List A new list with an interpolated tail item. Type Parameters TKey The type of the key, which must support comparison, subtraction, and division operators. TItem The type of items in the list, which must support addition and multiplication operators. GetSubListWithInterpolatedTail(List, TKey, Func, Func, Func, Func, Func, Func) Creates a new list with an interpolated tail item based on the specified key. public static List GetSubListWithInterpolatedTail(this List src, TKey endKey, Func getKeyFunc, Func keyCompareFunc, Func keyMinusFunc, Func keyDivFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters src List The source list. endKey TKey The ending key for interpolation. getKeyFunc Func A function that extracts the key from an item. keyCompareFunc Func A function that compares two keys. keyMinusFunc Func A function that subtracts one key from another. keyDivFunc Func A function that divides one key by another to get a ratio. itemAddingFunc Func A function that adds two items together. itemScalingFunc Func A function that scales an item by a factor. Returns List A new list with an interpolated tail item. Type Parameters TKey The type of the key. TItem The type of items in the list. GetSubListWithInterpolatedTail(List, TKey, Func, Func, Func) Creates a new list with an interpolated tail item based on the specified key, using operators for key operations. public static List GetSubListWithInterpolatedTail(this List src, TKey endKey, Func getKeyFunc, Func addingFunc, Func scalingFunc) where TKey : IComparable, ISubtractionOperators, IDivisionOperators Parameters src List The source list. endKey TKey The ending key for interpolation. getKeyFunc Func A function that extracts the key from an item. addingFunc Func A function that adds two items together. scalingFunc Func A function that scales an item by a factor. Returns List A new list with an interpolated tail item. Type Parameters TKey The type of the key, which must support comparison, subtraction, and division operators. TItem The type of items in the list. GetSubList(IList, int, int) Gets a sub-list view of the specified list within the given index range. public static SubList GetSubList(this IList src, int beginIndex, int endIndex) Parameters src IList The source list. beginIndex int The starting index (inclusive). endIndex int The ending index (exclusive). Returns SubList A sub-list view of the specified range. Type Parameters TItem The type of items in the list. Swap(IList, int, int) Swaps two elements in a list at the specified indices. public static void Swap(this IList src, int indexA, int indexB) Parameters src IList The source list indexA int The index of the first element to swap indexB int The index of the second element to swap Type Parameters TItem The type of elements in the list TestFloorCeil() Tests the floor and ceiling functionality with sample data. public static void TestFloorCeil()" }, "api/Hi.Common.Collections.SearchTargetMode.html": { "href": "api/Hi.Common.Collections.SearchTargetMode.html", "title": "Enum SearchTargetMode | HiAPI-C# 2025", "summary": "Enum SearchTargetMode Namespace Hi.Common.Collections Assembly HiGeom.dll Specifies the search method to use when looking for values in a sorted list. public enum SearchTargetMode 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 Ceil = 1 Find the smallest element greater than or equal to the key. Floor = 0 Find the largest element less than or equal to the key." }, "api/Hi.Common.Collections.SeekDirection.html": { "href": "api/Hi.Common.Collections.SeekDirection.html", "title": "Enum SeekDirection | HiAPI-C# 2025", "summary": "Enum SeekDirection Namespace Hi.Common.Collections Assembly HiGeom.dll Specifies the seek direction for sorted list operations. public enum SeekDirection 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 Backward = 2 Backward seek direction. Forward = 1 Forward seek direction. Free = 0 Free seek direction without additional performance cost." }, "api/Hi.Common.Collections.SortedListUtil.html": { "href": "api/Hi.Common.Collections.SortedListUtil.html", "title": "Class SortedListUtil | HiAPI-C# 2025", "summary": "Class SortedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility class providing extension methods for SortedList operations. public static class SortedListUtil Inheritance object SortedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetByMethod(SortedList, TKey, SearchTargetMode, out V, int, int) Get value by searchMethod. If return value is NotExisted, resultValue will be the default value of V. public static SearchResult GetByMethod(this SortedList src, TKey key, SearchTargetMode searchMethod, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key searchMethod SearchTargetMode search method resultValue V searched value beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult search result Type Parameters TKey Key type V Value type GetCeilBySeek(SortedList, TKey, out V, out int, int, SeekDirection) Gets the ceil value by seeking with the specified direction. public static SearchResult GetCeilBySeek(this SortedList src, TKey key, out V ceilValue, out int ceilListIndex, int seekingStartListIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. ceilValue V The output ceil value. ceilListIndex int The output ceil list index. seekingStartListIndex int The start list index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The binary search result. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetCeilListIndexBySeek(SortedList, TKey, out int, int, SeekDirection) Gets the ceil list index by seeking with the specified direction. public static SearchResult GetCeilListIndexBySeek(this SortedList src, TKey key, out int ceilListIndex, int seekingStartListIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. ceilListIndex int The output ceil list index. seekingStartListIndex int Start list index for seeking. seekDirection SeekDirection The seek direction. Default is Free. Returns SearchResult The search result. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartListIndex bound. GetCeilListIndex(SortedList, TKey, out int, int, int) Gets the index of the element in a sorted list that has a key greater than or equal to a specified key. public static SearchResult GetCeilListIndex(this SortedList src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. resultListIndex int When this method returns, contains the index of the ceiling element if found; otherwise, -1. beginListIndex int The starting index for the search range (inclusive). endListIndex int The ending index for the search range (exclusive). Returns SearchResult A value indicating whether an exact match was found, a ceiling value was found, or no suitable element exists. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetCeil(SortedList, TKey, out V, int, int) Get ceil value by key without returning the ceil index. public static SearchResult GetCeil(this SortedList src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. resultValue V The ceil value. beginIndex int The starting index for the search range (inclusive). endIndex int The ending index for the search range (exclusive). Returns SearchResult The binary search result. Type Parameters TKey Key type. V Value type. GetCeil(SortedList, TKey, out V, out int, int, int) Get ceil value by key. If return value is NotExisted, resultValue will be the default value of V. public static SearchResult GetCeil(this SortedList src, TKey key, out V resultValue, out int ceilIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V ceil value ceilIndex int The output ceil index. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult search result Type Parameters TKey Key type V Value type GetEnumerableByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Gets a sequence of key-value pairs from a sorted list within a specified key range. public static IEnumerable> GetEnumerableByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns IEnumerable> A sequence of key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloorBySeek(SortedList, TKey, out V, out int, int, SeekDirection) Gets the floor value by seeking with the specified direction. public static SearchResult GetFloorBySeek(this SortedList src, TKey key, out V floorValue, out int floorListIndex, int seekingStartListIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. floorValue V The output floor value. floorListIndex int The output floor list index. seekingStartListIndex int The start list index for seeking. seekDirection SeekDirection The seek direction. Returns SearchResult The binary search result. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloorListIndexBySeek(SortedList, TKey, out int, int, SeekDirection) Gets the floor list index by seeking with the specified direction. public static SearchResult GetFloorListIndexBySeek(this SortedList src, TKey key, out int floorListIndex, int seekingStartListIndex, SeekDirection seekDirection = SeekDirection.Free) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. floorListIndex int The output floor list index. seekingStartListIndex int Start list index for seeking. seekDirection SeekDirection The seek direction. Default is Free. Returns SearchResult The search result. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. Remarks The Free seek direction does not loss additional performance. The seek direction only effect the resulting value by the seekingStartListIndex bound. GetFloorListIndex(SortedList, TKey, out int, int, int) Gets the index of the element in a sorted list that has a key less than or equal to a specified key. public static SearchResult GetFloorListIndex(this SortedList src, TKey key, out int resultListIndex, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. key TKey The key to search for. resultListIndex int When this method returns, contains the index of the floor element if found; otherwise, -1. beginListIndex int The starting index for the search range (inclusive). endListIndex int The ending index for the search range (exclusive). Returns SearchResult A value indicating whether an exact match was found, a floor value was found, or no suitable element exists. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetFloor(SortedList, TKey, out V, int, int) Get floor value by key. If return value is NotExisted, resultValue will be the default value of V. public static SearchResult GetFloor(this SortedList src, TKey key, out V resultValue, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V floor value beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult search result Type Parameters TKey Key type V Value type GetFloor(SortedList, TKey, out V, out int, int, int) Get floor value by key. If return value is NotExisted, resultValue will be the default value of V. public static SearchResult GetFloor(this SortedList src, TKey key, out V resultValue, out int floorIndex, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList source key TKey key resultValue V floor value floorIndex int The output floor index. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult search result Type Parameters TKey Key type V Value type GetIndexRangeByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Gets the index range by key boundary. public static Range GetIndexRangeByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginListIndex = 0, int endListIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The begin key. isIncludingBeginFloor bool Whether to include the floor of begin key. end TKey The end key. isIncludingEndCeil bool Whether to include the ceil of end key. beginListIndex int The starting index for the search range (inclusive). endListIndex int The ending index for the search range (exclusive). Returns Range The index range, or null if not found. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetNearestIndex(SortedList, double, out int, int, int) Gets the index of the element in a sorted list that has a key nearest to a specified key. public static SearchResult GetNearestIndex(this SortedList src, double key, out int resultIndex, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultIndex int When this method returns, contains the index of the nearest element if found; otherwise, -1. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetNearestKey(SortedList, double, out double, int, int) Gets the key in a sorted list that is nearest to a specified key. public static SearchResult GetNearestKey(this SortedList src, double key, out double resultKey, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultKey double When this method returns, contains the nearest key if found; otherwise, NaN. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetNearestValue(SortedList, double, out V, int, int) Gets the value in a sorted list that corresponds to the key nearest to a specified key. public static SearchResult GetNearestValue(this SortedList src, double key, out V resultValue, int beginIndex = 0, int endIndex = -1) Parameters src SortedList The source sorted list. key double The key to search for. resultValue V When this method returns, contains the value corresponding to the nearest key if found; otherwise, the default value for the type. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SearchResult A value indicating whether an exact match was found, or the nearest floor/ceiling value. Type Parameters V The type of values in the sorted list. GetSortedListByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Creates a new sorted list containing key-value pairs from a source sorted list within a specified key range. public static SortedList GetSortedListByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns SortedList A new sorted list containing key-value pairs within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. GetValuesByKeyBoundary(SortedList, TKey, bool, TKey, bool, int, int) Gets a list of values from a sorted list within a specified key range. public static List GetValuesByKeyBoundary(this SortedList src, TKey begin, bool isIncludingBeginFloor, TKey end, bool isIncludingEndCeil, int beginIndex = 0, int endIndex = -1) where TKey : IComparable Parameters src SortedList The source sorted list. begin TKey The beginning key of the range. isIncludingBeginFloor bool Whether to include the floor value of the beginning key. end TKey The ending key of the range. isIncludingEndCeil bool Whether to include the ceiling value of the ending key. beginIndex int The starting index for the search range (inclusive). Default is 0. endIndex int The ending index for the search range (exclusive). Default is -1, which means the end of the list. Returns List A list of values within the specified range. Type Parameters TKey The type of keys in the sorted list. V The type of values in the sorted list. ToSortedList(List, Func) Converts a list of values to a sorted list using a key selector function. public static SortedList ToSortedList(this List src, Func keyFunc) where TKey : IComparable Parameters src List The source list of values. keyFunc Func A function to extract a key from each value. Returns SortedList A sorted list containing the values from the source list, keyed by the extracted keys. Type Parameters TKey The type of keys in the resulting sorted list. TValue The type of values in the list and the resulting sorted list." }, "api/Hi.Common.Collections.SubList-1.html": { "href": "api/Hi.Common.Collections.SubList-1.html", "title": "Class SubList | HiAPI-C# 2025", "summary": "Class SubList Namespace Hi.Common.Collections Assembly HiGeom.dll Represents a sub-list view of a source list within a specified index range. public class SubList : IList, ICollection, IEnumerable, IEnumerable Type Parameters T The type of elements in the list. Inheritance object SubList Implements IList ICollection IEnumerable IEnumerable 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) StringUtil.ToDotSplitedString(IEnumerable) ListUtil.GetCeilBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetCeilIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetCeilIndex(IList, ItemKey, Func, out int) ListUtil.GetCeilIndex(IList, TKey, Func, out int) ListUtil.GetCeil(IList, TKey, Func, out Item) ListUtil.GetFloorBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetFloorIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetFloorIndex(IList, ItemKey, Func, out int) ListUtil.GetFloorIndex(IList, TKey, Func, out int) ListUtil.GetFloor(IList, TKey, Func, out Item) ListUtil.GetIndexBasedEnumerable(IList) ListUtil.GetIndexBasedEnumerable(IList, int, int) ListUtil.GetIndexByBinarySearch(IList, TItem) ListUtil.GetIndexByBinarySearch(IList, TItem, IComparer) ListUtil.GetIndexByBinarySearch(IList, TSearch, Func) ListUtil.GetNearestIndex(IList, TItemKey, Func, out int) ListUtil.GetNearestIndex(IList, TItemKey, Func, Func, out int) ListUtil.GetSubList(IList, int, int) ListUtil.Swap(IList, int, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SubList(IList, int, int) Initializes a new instance. public SubList(IList source, int beginIndex, int endIndex) Parameters source IList The source list. beginIndex int The starting index (inclusive). endIndex int The ending index (exclusive). Properties Count Gets the number of elements contained in the ICollection. public int Count { get; } Property Value int The number of elements contained in the ICollection. IsReadOnly Gets a value indicating whether the ICollection is read-only. public bool IsReadOnly { get; } Property Value bool true if the ICollection is read-only; otherwise, false. this[int] Gets or sets the element at the specified index. public T this[int index] { get; set; } Parameters index int The zero-based index of the element to get or set. Property Value T The element at the specified index. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The property is set and the IList is read-only. Methods Add(T) Adds an item to the ICollection. public void Add(T item) Parameters item T The object to add to the ICollection. Exceptions NotSupportedException The ICollection is read-only. Clear() Removes all items from the ICollection. public void Clear() Exceptions NotSupportedException The ICollection is read-only. Contains(T) Determines whether the ICollection contains a specific value. public bool Contains(T item) Parameters item T The object to locate in the ICollection. Returns bool true if item is found in the ICollection; otherwise, false. CopyTo(T[], int) Copies the elements of the ICollection to an Array, starting at a particular Array index. public void CopyTo(T[] array, int arrayIndex) Parameters array T[] The one-dimensional Array that is the destination of the elements copied from ICollection. The Array must have zero-based indexing. arrayIndex int The zero-based index in array at which copying begins. Exceptions ArgumentNullException array is null. ArgumentOutOfRangeException arrayIndex is less than 0. ArgumentException The number of elements in the source ICollection is greater than the available space from arrayIndex to the end of the destination array. GetEnumerator() Returns an enumerator that iterates through the collection. public IEnumerator GetEnumerator() Returns IEnumerator An enumerator that can be used to iterate through the collection. IndexOf(T) Determines the index of a specific item in the IList. public int IndexOf(T item) Parameters item T The object to locate in the IList. Returns int The index of item if found in the list; otherwise, -1. Insert(int, T) Inserts an item to the IList at the specified index. public void Insert(int index, T item) Parameters index int The zero-based index at which item should be inserted. item T The object to insert into the IList. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The IList is read-only. Remove(T) Removes the first occurrence of a specific object from the ICollection. public bool Remove(T item) Parameters item T The object to remove from the ICollection. Returns bool true if item was successfully removed from the ICollection; otherwise, false. This method also returns false if item is not found in the original ICollection. Exceptions NotSupportedException The ICollection is read-only. RemoveAt(int) Removes the IList item at the specified index. public void RemoveAt(int index) Parameters index int The zero-based index of the item to remove. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The IList is read-only." }, "api/Hi.Common.Collections.SynList-1.html": { "href": "api/Hi.Common.Collections.SynList-1.html", "title": "Class SynList | HiAPI-C# 2025", "summary": "Class SynList Namespace Hi.Common.Collections Assembly HiGeom.dll Thread-safe List. public class SynList : IList, ICollection, IEnumerable, IEnumerable Type Parameters T T Inheritance object SynList Implements IList ICollection IEnumerable IEnumerable Derived DispList 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) StringUtil.ToDotSplitedString(IEnumerable) ListUtil.GetCeilBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetCeilIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetCeilIndex(IList, ItemKey, Func, out int) ListUtil.GetCeilIndex(IList, TKey, Func, out int) ListUtil.GetCeil(IList, TKey, Func, out Item) ListUtil.GetFloorBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetFloorIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetFloorIndex(IList, ItemKey, Func, out int) ListUtil.GetFloorIndex(IList, TKey, Func, out int) ListUtil.GetFloor(IList, TKey, Func, out Item) ListUtil.GetIndexBasedEnumerable(IList) ListUtil.GetIndexBasedEnumerable(IList, int, int) ListUtil.GetIndexByBinarySearch(IList, TItem) ListUtil.GetIndexByBinarySearch(IList, TItem, IComparer) ListUtil.GetIndexByBinarySearch(IList, TSearch, Func) ListUtil.GetNearestIndex(IList, TItemKey, Func, out int) ListUtil.GetNearestIndex(IList, TItemKey, Func, Func, out int) ListUtil.GetSubList(IList, int, int) ListUtil.Swap(IList, int, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors SynList(SynList) public SynList(SynList src) Parameters src SynList SynList(IEnumerable) public SynList(IEnumerable ts) Parameters ts IEnumerable SynList(int) public SynList(int cap = 8) Parameters cap int Properties Count Gets the number of elements contained in the ICollection. public int Count { get; } Property Value int The number of elements contained in the ICollection. Data public List Data { get; set; } Property Value List IsReadOnly Gets a value indicating whether the ICollection is read-only. public bool IsReadOnly { get; } Property Value bool true if the ICollection is read-only; otherwise, false. this[int] Gets or sets the element at the specified index. public T this[int index] { get; set; } Parameters index int The zero-based index of the element to get or set. Property Value T The element at the specified index. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The property is set and the IList is read-only. Lock Lock object, which is Data public object Lock { get; } Property Value object Methods Add(T) Adds an item to the ICollection. public void Add(T item) Parameters item T The object to add to the ICollection. Exceptions NotSupportedException The ICollection is read-only. AddAndGetIndex(T) Atomically appends item and returns the index it was inserted at. Use this instead of Add(T) + Count when the caller needs the position of the just-added item under concurrent appends (computing Count - 1 after Add(T) would race with other writers). public int AddAndGetIndex(T item) Parameters item T Returns int Clear() Removes all items from the ICollection. public void Clear() Exceptions NotSupportedException The ICollection is read-only. Contains(T) Determines whether the ICollection contains a specific value. public bool Contains(T item) Parameters item T The object to locate in the ICollection. Returns bool true if item is found in the ICollection; otherwise, false. CopyTo(T[], int) Copies the elements of the ICollection to an Array, starting at a particular Array index. public void CopyTo(T[] array, int arrayIndex) Parameters array T[] The one-dimensional Array that is the destination of the elements copied from ICollection. The Array must have zero-based indexing. arrayIndex int The zero-based index in array at which copying begins. Exceptions ArgumentNullException array is null. ArgumentOutOfRangeException arrayIndex is less than 0. ArgumentException The number of elements in the source ICollection is greater than the available space from arrayIndex to the end of the destination array. GetEnumerator() Returns an enumerator that iterates through the collection. public IEnumerator GetEnumerator() Returns IEnumerator An enumerator that can be used to iterate through the collection. IndexOf(T) Determines the index of a specific item in the IList. public int IndexOf(T item) Parameters item T The object to locate in the IList. Returns int The index of item if found in the list; otherwise, -1. Insert(int, T) Inserts an item to the IList at the specified index. public void Insert(int index, T item) Parameters index int The zero-based index at which item should be inserted. item T The object to insert into the IList. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The IList is read-only. Remove(T) Removes the first occurrence of a specific object from the ICollection. public bool Remove(T item) Parameters item T The object to remove from the ICollection. Returns bool true if item was successfully removed from the ICollection; otherwise, false. This method also returns false if item is not found in the original ICollection. Exceptions NotSupportedException The ICollection is read-only. RemoveAt(int) Removes the IList item at the specified index. public void RemoveAt(int index) Parameters index int The zero-based index of the item to remove. Exceptions ArgumentOutOfRangeException index is not a valid index in the IList. NotSupportedException The IList is read-only. ToList() Creates a new List containing all elements from this synchronized list. This operation is thread-safe as it acquires a lock on the underlying data. public List ToList() Returns List A new List containing all elements from this synchronized list." }, "api/Hi.Common.Collections.html": { "href": "api/Hi.Common.Collections.html", "title": "Namespace Hi.Common.Collections | HiAPI-C# 2025", "summary": "Namespace Hi.Common.Collections Classes DictionaryUtil Utility class providing extension methods for dictionary operations. EnumerableUtil Utility class providing extension methods for enumerable collections. FixedSizeConcurrentLinkedListUtil Utility of Fixed Size Concurrent LinkedList. LazyLinkedListNode Node for LazyLinkedList. Accessing Next on the tail node automatically materializes the next item from the list's source (if any). LazyLinkedList A singly-growable linked list that can lazily materialize nodes from an IEnumerable source. Without a source it behaves like a regular append-only linked list. With a source, nodes are pulled on demand when Next is accessed on the tail, or when First is accessed on an empty list. LinkedListUtil Utility methods for working with linked lists. ListIndexBasedEnumerable Provides an enumerable wrapper for a list that iterates over a specified range of indices. ListIndexBasedIEnumerator Provides an enumerator that iterates over a specified range of indices in a list. ListUtil Provides utility methods for working with lists and collections. SortedListUtil Utility class providing extension methods for SortedList operations. SubList Represents a sub-list view of a source list within a specified index range. SynList Thread-safe List. Enums ListUtil.OuterPolationMode Defines the mode for handling values outside the range of a collection during interpolation. SearchTargetMode Specifies the search method to use when looking for values in a sorted list. SeekDirection Specifies the seek direction for sorted list operations." }, "api/Hi.Common.ConcurrentTimeCounter.html": { "href": "api/Hi.Common.ConcurrentTimeCounter.html", "title": "Class ConcurrentTimeCounter | HiAPI-C# 2025", "summary": "Class ConcurrentTimeCounter Namespace Hi.Common Assembly HiGeom.dll Thread-safe utility for measuring and tracking execution time across multiple tasks. public static class ConcurrentTimeCounter Inheritance object ConcurrentTimeCounter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks This is the concurrent version of TimeCounter, designed for multi-threaded environments. It measures the time elapsed between paired calls to Bound(object) with the same key in the same task. The timing starts on the first (odd-numbered) call to Bound(object) and stops on the second (even-numbered) call, accumulating statistics for each key. Methods Bound(object) Marks a boundary for time measurement for the specified key. public static void Bound(object key) Parameters key object The key to identify this measurement Remarks This method acts as both the start and end point for timing: On first call with a key, starts the timer On second call with the same key, stops the timer and records the elapsed time Subsequent calls alternate between starting and stopping Pass(object) Cancels an active time measurement for the specified key without recording the elapsed time. public static void Pass(object key) Parameters key object The key identifying the measurement to cancel Remarks If timing has not been started for the key, this method has no effect. This is useful when you want to abort a measurement without affecting statistics. Reset() Resets all time measurements across all tasks. Clears all accumulated statistics and counters. public static void Reset() Show() Displays all accumulated time measurements to the console. public static void Show() Remarks For each task and key, shows the count of measurements, total time, and average time. ShowExt(int) Displays time measurements and resets counters periodically based on call frequency. public static void ShowExt(int gap) Parameters gap int The number of calls to this method before showing results and resetting Remarks This method increments an internal counter with each call. When the counter reaches the specified gap value, it displays all measurements, resets the counters, and resets the internal counter to zero." }, "api/Hi.Common.ConsoleUtil.html": { "href": "api/Hi.Common.ConsoleUtil.html", "title": "Class ConsoleUtil | HiAPI-C# 2025", "summary": "Class ConsoleUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for console window operations. public static class ConsoleUtil Inheritance object ConsoleUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyCppConsole() Applies the console handle to standard output and error streams for C++ compatibility. public static void ApplyCppConsole() Hide() Hides the console window. public static void Hide() SetStdHandle(int, nint) Sets the handle for the specified standard device (standard input, standard output, or standard error). public static extern int SetStdHandle(int stdHandle, nint handle) Parameters stdHandle int The standard device handle nint The handle Returns int Nonzero if the function succeeds; otherwise, zero Show() Shows the console window. If the console doesn't exist, it creates a new one. public static void Show()" }, "api/Hi.Common.CppLogUtil.LogDelegate.html": { "href": "api/Hi.Common.CppLogUtil.LogDelegate.html", "title": "Delegate CppLogUtil.LogDelegate | HiAPI-C# 2025", "summary": "Delegate CppLogUtil.LogDelegate Namespace Hi.Common Assembly HiDisp.dll Internal Use Only. public delegate void CppLogUtil.LogDelegate(string msg) Parameters msg string Internal Use Only. 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)" }, "api/Hi.Common.CppLogUtil.html": { "href": "api/Hi.Common.CppLogUtil.html", "title": "Class CppLogUtil | HiAPI-C# 2025", "summary": "Class CppLogUtil Namespace Hi.Common Assembly HiDisp.dll Internal Use Only. public static class CppLogUtil Inheritance object CppLogUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SetLogFunc(LogDelegate) Sets the logging function for C++ code. public static void SetLogFunc(CppLogUtil.LogDelegate logFunc) Parameters logFunc CppLogUtil.LogDelegate The logging delegate to use." }, "api/Hi.Common.CsvUtils.CsvInputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvInputKit.html", "title": "Class CsvInputKit | HiAPI-C# 2025", "summary": "Class CsvInputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Utility class for parsing and processing CSV input data. public class CsvInputKit Inheritance object CsvInputKit 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) Constructors CsvInputKit() Initializes a new instance of the CsvInputKit class. public CsvInputKit() Properties TitleLine Gets or sets the CSV header line as a comma-separated string. public string TitleLine { get; set; } Property Value string TitleList Gets or sets the list of column titles from the CSV header. public List TitleList { get; set; } Property Value List TypeDictionary Dictionary mapping type names to their corresponding Type objects. public Dictionary TypeDictionary { get; } Property Value Dictionary Methods GetCsvDictionary(IList, string) Splits a CSV row into a title→cell dictionary. Stateless allocation-light variant of GetCsvDictionary(string); use this when the caller already has the title list and does not need to hold a CsvInputKit instance. public static Dictionary GetCsvDictionary(IList titleList, string row) Parameters titleList IList Column titles, in CSV column order. row string CSV data row (not the header line). Returns Dictionary Dictionary keyed by column title; cells past titleList are keyed by column[i]. GetCsvDictionary(string) Creates a dictionary from a CSV row, mapping column titles to their values. The row should not be the header line, and TitleLine or TitleList must be set first. public Dictionary GetCsvDictionary(string row) Parameters row string The CSV row to process Returns Dictionary A dictionary mapping column titles to their values" }, "api/Hi.Common.CsvUtils.CsvOutputKit.html": { "href": "api/Hi.Common.CsvUtils.CsvOutputKit.html", "title": "Class CsvOutputKit | HiAPI-C# 2025", "summary": "Class CsvOutputKit Namespace Hi.Common.CsvUtils Assembly HiGeom.dll CSV output toolkit. Toolkit for getting Comma-seperated Csv lines. public class CsvOutputKit Inheritance object CsvOutputKit 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) Constructors CsvOutputKit(List) Ctor. public CsvOutputKit(List prefixTitleList = null) Parameters prefixTitleList List Custom title order at the leading columns. If no custom order needed, keep the parameter null. Methods BuildCsvTitleByCsvRow(IGetCsvDictionary) Builds the CSV title structure based on the keys in the dictionary provided by an IGetCsvDictionary object. public void BuildCsvTitleByCsvRow(IGetCsvDictionary row) Parameters row IGetCsvDictionary An object implementing IGetCsvDictionary interface. BuildCsvTitleByCsvRow(Dictionary) Builds the CSV title structure based on the keys in the provided dictionary. public void BuildCsvTitleByCsvRow(Dictionary row) Parameters row Dictionary Dictionary containing key-value pairs to be used for building the CSV title. GetCsvRowText(IGetCsvDictionary) Converts an object implementing IGetCsvDictionary to a CSV row text. public string GetCsvRowText(IGetCsvDictionary row) Parameters row IGetCsvDictionary An object implementing IGetCsvDictionary interface. Returns string A comma-separated string representing the row, or null if the input is null. GetCsvRowText(Dictionary) Converts a dictionary of string keys and object values to a CSV row text. public string GetCsvRowText(Dictionary row) Parameters row Dictionary Dictionary containing key-value pairs to be converted to CSV format. Returns string A comma-separated string representing the row, or null if the input is null. GetCsvRowText(Dictionary) Converts a dictionary of string keys and values to a CSV row text. public string GetCsvRowText(Dictionary row) Parameters row Dictionary Dictionary containing key-value pairs to be converted to CSV format. Returns string A comma-separated string representing the row, or null if the input is null. GetCsvTitle() The title is obtained by the previous added csv row. public string GetCsvTitle() Returns string" }, "api/Hi.Common.CsvUtils.CsvUtil.html": { "href": "api/Hi.Common.CsvUtils.CsvUtil.html", "title": "Class CsvUtil | HiAPI-C# 2025", "summary": "Class CsvUtil Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Provides utility methods for working with CSV (Comma-Separated Values) data. public static class CsvUtil Inheritance object CsvUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCsvLines(IEnumerable, List) Get Comma-seperated Csv lines. The title line is at the last return. public static IEnumerable GetCsvLines(this IEnumerable rows, List prefixTitleList = null) Parameters rows IEnumerable rows prefixTitleList List Custom title order at the leading columns. If no custom order needed, keep the parameter null. Returns IEnumerable CSV lines. GetCsvLines(IEnumerable>, List) Get Comma-seperated Csv lines. The title line is at the last return. public static IEnumerable GetCsvLines(IEnumerable> rows, List prefixTitleList = null) Parameters rows IEnumerable> rows prefixTitleList List Custom title order at the leading columns. If no custom order needed, keep the parameter null. Returns IEnumerable CSV lines. GetCsvRowText(object[]) Converts an array of objects to a CSV row text. public static string GetCsvRowText(object[] objs) Parameters objs object[] Array of objects to be converted to CSV format. Returns string A comma-separated string representing the objects." }, "api/Hi.Common.CsvUtils.ICsvRowIo.html": { "href": "api/Hi.Common.CsvUtils.ICsvRowIo.html", "title": "Interface ICsvRowIo | HiAPI-C# 2025", "summary": "Interface ICsvRowIo Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Object that can be two-way converting between CSV row. public interface ICsvRowIo 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 CsvText Csv text. string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. string CsvTitleText { get; } Property Value string" }, "api/Hi.Common.CsvUtils.IGetCsvDictionary.html": { "href": "api/Hi.Common.CsvUtils.IGetCsvDictionary.html", "title": "Interface IGetCsvDictionary | HiAPI-C# 2025", "summary": "Interface IGetCsvDictionary Namespace Hi.Common.CsvUtils Assembly HiGeom.dll Interface of GetCsvDictionary(). It suits for CSV output. public interface IGetCsvDictionary 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) Methods GetCsvDictionary() Get row dictionary. It suits for CSV output. Dictionary GetCsvDictionary() Returns Dictionary csv row dictionary" }, "api/Hi.Common.CsvUtils.html": { "href": "api/Hi.Common.CsvUtils.html", "title": "Namespace Hi.Common.CsvUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.CsvUtils Classes CsvInputKit Utility class for parsing and processing CSV input data. CsvOutputKit CSV output toolkit. Toolkit for getting Comma-seperated Csv lines. CsvUtil Provides utility methods for working with CSV (Comma-Separated Values) data. Interfaces ICsvRowIo Object that can be two-way converting between CSV row. IGetCsvDictionary Interface of GetCsvDictionary(). It suits for CSV output." }, "api/Hi.Common.CultureTextAttribute.html": { "href": "api/Hi.Common.CultureTextAttribute.html", "title": "Class CultureTextAttribute | HiAPI-C# 2025", "summary": "Class CultureTextAttribute Namespace Hi.Common Assembly HiGeom.dll Declares one culture's text for one vocabulary key on the member carrying the attribute — the static wording of command titles and labels, owned by the declaring library as a DEFAULT: a GUI layer may override it or add cultures the library never declared (see SetTextOverride(string, string, string)), and a culture left undeclared is not an error — lookups fall back toward the English key. The key defaults to the member's own display name: its DisplayNameAttribute value when present, otherwise the member name spaced into words (SpacePascalWords(string)). Set Key to declare a word the member does not itself name (a shared switch word, a mode label). Apply the attribute once per culture. [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Interface, AllowMultiple = true, Inherited = false)] public sealed class CultureTextAttribute : Attribute Inheritance object Attribute CultureTextAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() 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 CultureTextAttribute(string, string) Declares text as the wording of this member's vocabulary key in the culture named cultureName. public CultureTextAttribute(string cultureName, string text) Parameters cultureName string Culture name the text is written in (e.g. zh-Hant). text string The text in that culture. Properties CultureName Culture name the text is written in (e.g. zh-Hant). public string CultureName { get; } Property Value string Key Explicit vocabulary key. Default (null): the member's display name as described on the class summary. public string Key { get; set; } Property Value string Text The text in that culture. public string Text { get; } Property Value string" }, "api/Hi.Common.CultureUtil.html": { "href": "api/Hi.Common.CultureUtil.html", "title": "Class CultureUtil | HiAPI-C# 2025", "summary": "Class CultureUtil Namespace Hi.Common Assembly HiGeom.dll The English culture the engine formats and parses with, and the one call that pins a thread to it. public static class CultureUtil Inheritance object CultureUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties English English, with NaNSymbol forced to “NaN” so a non-finite value round-trips through text. public static CultureInfo English { get; } Property Value CultureInfo Remarks Read-only, and safe to hand to APIs that keep the reference: ASP.NET request localization matches by name and returns ReadOnly(CultureInfo) clones, which preserve the patched symbol. Methods SetCurrentCultureEn() Pins the calling thread to English. public static void SetCurrentCultureEn()" }, "api/Hi.Common.DuplicateUtil.html": { "href": "api/Hi.Common.DuplicateUtil.html", "title": "Class DuplicateUtil | HiAPI-C# 2025", "summary": "Class DuplicateUtil Namespace Hi.Common Assembly HiGeom.dll Utility methods for duplication operations. public static class DuplicateUtil Inheritance object DuplicateUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods TryDuplicate(TSelf, params object[]) Attempts to create a duplicate of the source object using the most appropriate method available. public static TSelf TryDuplicate(this TSelf src, params object[] res) where TSelf : class Parameters src TSelf The source object to duplicate res object[] Optional parameters that may be needed during the duplication process Returns TSelf A duplicate of the source object if it implements IDuplicate or ICloneable; otherwise, null. Type Parameters TSelf The type of the source object Remarks The method first tries to use Duplicate(params object[]) if the source implements IDuplicate. If that's not available, it falls back to Clone() if the source implements ICloneable." }, "api/Hi.Common.EnumUtil.html": { "href": "api/Hi.Common.EnumUtil.html", "title": "Class EnumUtil | HiAPI-C# 2025", "summary": "Class EnumUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for enum operations. public static class EnumUtil Inheritance object EnumUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetEnumBitArrayCap(Type) Gets the capacity needed for a bit array to represent all values of an enum type. public static int GetEnumBitArrayCap(Type enumType) Parameters enumType Type The enum type Returns int The maximum value in the enum plus 1 GetEnumBitArrayCap() Gets the capacity needed for a bit array to represent all values of an enum type. public static int GetEnumBitArrayCap() where TEnum : struct, Enum Returns int The maximum value in the enum plus 1 Type Parameters TEnum The enum type" }, "api/Hi.Common.EnumerablePlayer.html": { "href": "api/Hi.Common.EnumerablePlayer.html", "title": "Class EnumerablePlayer | HiAPI-C# 2025", "summary": "Class EnumerablePlayer Namespace Hi.Common Assembly HiGeom.dll Run enumerable with Pause(), Resume() and etc. functions. public class EnumerablePlayer : IDisposable Inheritance object EnumerablePlayer Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors EnumerablePlayer() Ctor. public EnumerablePlayer() Properties Actions Collection of actions to be executed by the player. public IEnumerable Actions { get; set; } Property Value IEnumerable ExceptionAction Action to handle exceptions that occur during execution. public Action ExceptionAction { get; set; } Property Value Action IsFinished Is the process finished from Start(). public bool IsFinished { get; } Property Value bool IsLocked Is started but not finished. IsLocked keeps true even if Pause() is called. The property is true if a task started and the task has not yet finished. public bool IsLocked { get; } Property Value bool IsRunning Is running. Not paused either finished. The property is true if a task started and the task has not yet finished and Pause() is not called. public bool IsRunning { get; } Property Value bool ResettingSemaphore internal use. public SemaphoreSlim ResettingSemaphore { get; set; } Property Value SemaphoreSlim Methods BreakAsync() Breaks the current execution asynchronously. public Task BreakAsync() Returns Task A task representing the asynchronous operation. 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 Pause() Pauses the execution of actions. public void Pause() Reset() Resets the player synchronously. public void Reset() ResetAsync() Asynchronously resets the player. public Task ResetAsync() Returns Task A task representing the asynchronous operation. Resume() Resume the process. public void Resume() RunToOneActionEnd() Runs the player until one action completes. public void RunToOneActionEnd() Start() Start the process. public Task Start() Returns Task Terminate() Terminates the execution of actions synchronously. public void Terminate() TerminateAsync() Terminates the execution of actions asynchronously. public Task TerminateAsync() Returns Task A task representing the asynchronous operation. WaitPlayingTask() Wait playing to an end. Wait Hi.Common.EnumerablePlayer.PlayingTask. public void WaitPlayingTask() Events EndedEvent Event triggered when the player ends. public event Action EndedEvent Event Type Action IsLockedEventHandler Event triggered when the lock state changes. public event Action IsLockedEventHandler Event Type Action IsRunningChangedEvent Event triggered when the running state changes. public event Action IsRunningChangedEvent Event Type Action OnCallingTerminate Event triggered when termination is being called. public event EventHandler OnCallingTerminate Event Type EventHandler OnFinished Event triggered when the player has finished playing all actions public event EventHandler OnFinished Event Type EventHandler ResetedEvent Event triggered after the player has been reset. public event Func ResetedEvent Event Type Func ResetingEvent Event triggered before resetting the player. public event Func ResetingEvent Event Type Func StartingEvent Event triggered when the player starts. public event Action StartingEvent Event Type Action" }, "api/Hi.Common.FileLines.FileBeginEventArgs.html": { "href": "api/Hi.Common.FileLines.FileBeginEventArgs.html", "title": "Class FileBeginEventArgs | HiAPI-C# 2025", "summary": "Class FileBeginEventArgs Namespace Hi.Common.FileLines Assembly HiGeom.dll Event arguments for when a file processing begins. public class FileBeginEventArgs : EventArgs Inheritance object EventArgs FileBeginEventArgs Inherited Members EventArgs.Empty 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 FileBeginEventArgs() Initializes a new instance of the FileBeginEventArgs class. public FileBeginEventArgs() FileBeginEventArgs(string) Initializes a new instance of the FileBeginEventArgs class with a specified file path. public FileBeginEventArgs(string file) Parameters file string The file path being processed. Properties File Gets or sets the file path being processed. public string File { get; set; } Property Value string" }, "api/Hi.Common.FileLines.FileEndEventArgs.html": { "href": "api/Hi.Common.FileLines.FileEndEventArgs.html", "title": "Class FileEndEventArgs | HiAPI-C# 2025", "summary": "Class FileEndEventArgs Namespace Hi.Common.FileLines Assembly HiGeom.dll Event arguments for when a file processing ends. public class FileEndEventArgs : EventArgs Inheritance object EventArgs FileEndEventArgs Inherited Members EventArgs.Empty 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 FileEndEventArgs() Initializes a new instance of the FileEndEventArgs class. public FileEndEventArgs() FileEndEventArgs(string) Initializes a new instance of the FileEndEventArgs class with a specified file path. public FileEndEventArgs(string file) Parameters file string The file path that was processed. Properties File Gets or sets the file path that was processed. public string File { get; set; } Property Value string" }, "api/Hi.Common.FileLines.FileLineCharIndex.html": { "href": "api/Hi.Common.FileLines.FileLineCharIndex.html", "title": "Class FileLineCharIndex | HiAPI-C# 2025", "summary": "Class FileLineCharIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a character-level position within a file by file index, line index, and character index. All indices are 0-based. public class FileLineCharIndex : IFileLineCharIndex, IFileLineIndex, IGetFileLineIndex, IComparable, IEquatable Inheritance object FileLineCharIndex Implements IFileLineCharIndex IFileLineIndex IGetFileLineIndex IComparable IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MathUtil.Clamp(T, T, T) FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileLineCharIndex() Initializes a new instance of the FileLineCharIndex class. public FileLineCharIndex() FileLineCharIndex(IFileLineCharIndex) Initializes a new instance of the FileLineCharIndex class by copying another instance. public FileLineCharIndex(IFileLineCharIndex src) Parameters src IFileLineCharIndex The source to copy from. FileLineCharIndex(int, int, int) Initializes a new instance of the FileLineCharIndex class with specified indices. public FileLineCharIndex(int fileIndex, int lineIndex, int charIndex) Parameters fileIndex int The zero-based file index. lineIndex int The zero-based line index. charIndex int The zero-based character index within the line. Properties CharIndex Character index within the line. 0-based. public int CharIndex { get; set; } Property Value int FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int Methods AtLineBegin(int, int) Creates a FileLineCharIndex at the beginning of a line (CharIndex = 0). public static FileLineCharIndex AtLineBegin(int fileIndex, int lineIndex) Parameters fileIndex int The zero-based file index. lineIndex int The zero-based line index. Returns FileLineCharIndex CompareTo(FileLineCharIndex) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. public int CompareTo(FileLineCharIndex other) Parameters other FileLineCharIndex An object to compare with this instance. Returns int A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes other in the sort order. Zero This instance occurs in the same position in the sort order as other. Greater than zero This instance follows other in the sort order. Equals(FileLineCharIndex) Indicates whether the current object is equal to another object of the same type. public bool Equals(FileLineCharIndex other) Parameters other FileLineCharIndex An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToUserString() Returns a user-friendly string representation. public string ToUserString() Returns string Operators operator ==(FileLineCharIndex, FileLineCharIndex) Returns true when both operands point to the same position, treating two null references as equal. public static bool operator ==(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool operator >(FileLineCharIndex, FileLineCharIndex) Returns true when left orders after right; a null left is never after any value. public static bool operator >(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool operator >=(FileLineCharIndex, FileLineCharIndex) Returns true when left orders at or after right; treats two null references as equal. public static bool operator >=(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool operator !=(FileLineCharIndex, FileLineCharIndex) Returns true when the operands point to different positions. Inverse of operator ==(FileLineCharIndex, FileLineCharIndex). public static bool operator !=(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool operator <(FileLineCharIndex, FileLineCharIndex) Returns true when left orders before right; a null left is treated as the lowest position. public static bool operator <(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool operator <=(FileLineCharIndex, FileLineCharIndex) Returns true when left orders at or before right; a null left is always at-or-before any value. public static bool operator <=(FileLineCharIndex left, FileLineCharIndex right) Parameters left FileLineCharIndex right FileLineCharIndex Returns bool" }, "api/Hi.Common.FileLines.FileLineCharIndexSegment.html": { "href": "api/Hi.Common.FileLines.FileLineCharIndexSegment.html", "title": "Class FileLineCharIndexSegment | HiAPI-C# 2025", "summary": "Class FileLineCharIndexSegment Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a character-level segment within file(s). Begin is inclusive, End is exclusive: [Begin, End). public class FileLineCharIndexSegment : IEquatable Inheritance object FileLineCharIndexSegment Implements IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 FileLineCharIndexSegment() Initializes a new instance of the FileLineCharIndexSegment class. public FileLineCharIndexSegment() FileLineCharIndexSegment(FileLineCharIndex, FileLineCharIndex) Initializes a new instance of the FileLineCharIndexSegment class with specified begin and end positions. public FileLineCharIndexSegment(FileLineCharIndex begin, FileLineCharIndex end) Parameters begin FileLineCharIndex The beginning position (inclusive). end FileLineCharIndex The ending position (exclusive). FileLineCharIndexSegment(FileLineCharIndexSegment) Initializes a new instance of the FileLineCharIndexSegment class by copying another instance. public FileLineCharIndexSegment(FileLineCharIndexSegment src) Parameters src FileLineCharIndexSegment The source to copy from. FileLineCharIndexSegment(IIndexedFileLine) Initializes a new instance that spans the entire indexedFileLine — from its first character to one past its last character. public FileLineCharIndexSegment(IIndexedFileLine indexedFileLine) Parameters indexedFileLine IIndexedFileLine The file line whose full extent the segment should cover. Properties Begin Beginning position (inclusive). public FileLineCharIndex Begin { get; set; } Property Value FileLineCharIndex End Ending position (exclusive). public FileLineCharIndex End { get; set; } Property Value FileLineCharIndex IsMultiLine Whether the segment spans multiple lines. public bool IsMultiLine { get; } Property Value bool Methods Any() Whether this segment contains any characters (End > Begin). public bool Any() Returns bool Equals(FileLineCharIndexSegment) Indicates whether the current object is equal to another object of the same type. public bool Equals(FileLineCharIndexSegment other) Parameters other FileLineCharIndexSegment An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.FileLines.FileLineIndex.html": { "href": "api/Hi.Common.FileLines.FileLineIndex.html", "title": "Class FileLineIndex | HiAPI-C# 2025", "summary": "Class FileLineIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a location in a file by its file index and line number. public class FileLineIndex : IFileLineIndex, IGetFileLineIndex, IComparable, IComparable, IMakeXmlSource, IToXElement, IToPresentDto Inheritance object FileLineIndex Implements IFileLineIndex IGetFileLineIndex IComparable IComparable IMakeXmlSource IToXElement IToPresentDto Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MathUtil.Clamp(T, T, T) FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors FileLineIndex() Initializes a new instance of the FileLineIndex class. public FileLineIndex() FileLineIndex(IFileLineIndex) Initializes a new instance of the FileLineIndex class by copying another instance. public FileLineIndex(IFileLineIndex src) Parameters src IFileLineIndex The source FileLineIndex to copy from FileLineIndex(int, int) Initializes a new instance of the FileLineIndex class with specified indices. public FileLineIndex(int fileIndex, int lineIndex) Parameters fileIndex int The zero-based file index lineIndex int The zero-based line index FileLineIndex(XElement) Initializes a new instance of the FileLineIndex class from an XML element. public FileLineIndex(XElement src) Parameters src XElement The XML element containing the file and line indices Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo Gets or sets the one-based file number (FileIndex + 1) public int FileNo { get; set; } Property Value int LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo Gets or sets the one-based line number (LineIndex + 1) public int LineNo { get; set; } Property Value int XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Methods CompareTo(FileLineIndex) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. public int CompareTo(FileLineIndex other) Parameters other FileLineIndex An object to compare with this instance. Returns int A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes other in the sort order. Zero This instance occurs in the same position in the sort order as other. Greater than zero This instance follows other in the sort order. CompareTo(IFileLineIndex) Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. public int CompareTo(IFileLineIndex other) Parameters other IFileLineIndex An object to compare with this instance. Returns int A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes other in the sort order. Zero This instance occurs in the same position in the sort order as other. Greater than zero This instance follows other in the sort order. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ToPresentDto() Convert FileLineIndex to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, FileIndex, LineIndex keys ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToUserString() Returns a user-friendly string representation of the file and line numbers. public string ToUserString() Returns string A string in the format “(FileNo:X,LineNo:Y)” ToXElement() Converts the current instance to an XElement. public XElement ToXElement() Returns XElement An XElement representing this index. Operators operator ==(FileLineIndex, FileLineIndex) Determines whether two FileLineIndex instances are equal. public static bool operator ==(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool operator >(FileLineIndex, FileLineIndex) Determines whether left is greater than right. public static bool operator >(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool operator >=(FileLineIndex, FileLineIndex) Determines whether left is greater than or equal to right. public static bool operator >=(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool operator !=(FileLineIndex, FileLineIndex) Determines whether two FileLineIndex instances are not equal. public static bool operator !=(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool operator <(FileLineIndex, FileLineIndex) Determines whether left is less than right. public static bool operator <(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool operator <=(FileLineIndex, FileLineIndex) Determines whether left is less than or equal to right. public static bool operator <=(FileLineIndex left, FileLineIndex right) Parameters left FileLineIndex right FileLineIndex Returns bool" }, "api/Hi.Common.FileLines.FileLineUtil.html": { "href": "api/Hi.Common.FileLines.FileLineUtil.html", "title": "Class FileLineUtil | HiAPI-C# 2025", "summary": "Class FileLineUtil Namespace Hi.Common.FileLines Assembly HiGeom.dll Utility of IFileLineIndex. public static class FileLineUtil Inheritance object FileLineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CompareFileLine(IFileLineIndex, IFileLineIndex) Orders two file-line positions by FileIndex then LineIndex. Both operands must be non-null; callers decide how a missing (null) position sorts. public static int CompareFileLine(this IFileLineIndex a, IFileLineIndex b) Parameters a IFileLineIndex b IFileLineIndex Returns int GetFileNo(IFileLineIndex) Gets the file number (1-based) from the file line index. public static int GetFileNo(this IFileLineIndex src) Parameters src IFileLineIndex The file line index. Returns int The file number (1-based). GetLineNo(IFileLineIndex) Gets the line number (1-based) from the file line index. public static int GetLineNo(this IFileLineIndex src) Parameters src IFileLineIndex The file line index. Returns int The line number (1-based)." }, "api/Hi.Common.FileLines.FileUtil.html": { "href": "api/Hi.Common.FileLines.FileUtil.html", "title": "Class FileUtil | HiAPI-C# 2025", "summary": "Class FileUtil Namespace Hi.Common.FileLines Assembly HiGeom.dll Utility to manage files. public static class FileUtil Inheritance object FileUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CopyDirectory(string, string) Copies a directory and all its contents to a destination folder. public static void CopyDirectory(string sourceFolder, string destFolder) Parameters sourceFolder string Source directory path destFolder string Destination directory path CreateWithDirectoryAndGetFileStream(string) Creates or loads a file with directory. public static FileStream CreateWithDirectoryAndGetFileStream(string filePath) Parameters filePath string file path Returns FileStream file stream CreateWithDirectoryIfNotExisted(string) public static bool CreateWithDirectoryIfNotExisted(string filePath) Parameters filePath string Returns bool true if file created. DetectRoundTripEncoding(string) Detects a text encoding for filePath that survives a read-modify-write round trip byte for byte on untouched lines. public static Encoding DetectRoundTripEncoding(string filePath) Parameters filePath string The path of the file to sniff. Returns Encoding The encoding of the UTF-8 / UTF-16 byte-order mark when one is present; otherwise strict-validated UTF-8 (without a mark); otherwise Latin-1. Remarks The Latin-1 fallback maps every byte to the char of the same value, so a file in any ANSI-family encoding (GBK, Big5, Shift-JIS, ...) re-encodes to its original bytes. ASCII-keyed parsing is unaffected: those encodings never reuse bytes below 0x40 as trail bytes, so delimiters such as ‘;’ and ‘(’ cannot occur inside a multi-byte character. The BCL's default UTF-8 reader instead replaces every undecodable byte with U+FFFD, which irreversibly destroys such content on write-back. EnsureDirectory(string) Ensures that the specified directory exists, creating it if necessary. public static void EnsureDirectory(string directory) Parameters directory string The directory path to ensure exists. GetAbsentPath(string, string) Gets a path that doesn't exist by appending a number to the base path. public static string GetAbsentPath(string pathWithoutExtension, string extension) Parameters pathWithoutExtension string The base path without extension. extension string The file extension. Returns string A path that doesn't exist. GetAbsentRelPath(string, string, string) Gets a relative path that doesn't exist by appending a number to the base path. public static string GetAbsentRelPath(string baseDirectory, string relPathWithoutExtension, string extension) Parameters baseDirectory string The base directory. relPathWithoutExtension string The relative path without extension. extension string The file extension. Returns string A relative path that doesn't exist. GetDescendentPath(string) Get descendent path if the path is descendent of current path; otherwise return path. public static string GetDescendentPath(string path) Parameters path string path Returns string descendent path if the path is descendent of current path; otherwise return path GetFileSizeString(FileInfo, string) Gets a formatted string representing the file size. public static string GetFileSizeString(this FileInfo fileInfo, string format = \"{0,6:###.00} {1,-2:##}\") Parameters fileInfo FileInfo The file information. format string The format string to use. Returns string A formatted string representing the file size. IsBinaryFile(string) Determines if a file is likely to be a binary file by checking for control characters. public static bool IsBinaryFile(string filePath) Parameters filePath string Path to the file to check Returns bool True if the file appears to be binary, false otherwise ReadAllTextWithFileShareAsync(string) Reads all text from a file with file sharing enabled. public static Task ReadAllTextWithFileShareAsync(string filePath) Parameters filePath string The path of the file to read. Returns Task A task that represents the asynchronous read operation, which wraps the file contents. ToIndexedFile(IEnumerable) Converts a collection of file paths to a collection of indexed files. public static IEnumerable ToIndexedFile(this IEnumerable files) Parameters files IEnumerable The collection of file paths. Returns IEnumerable A collection of indexed files." }, "api/Hi.Common.FileLines.IFileChangedEventSupport.html": { "href": "api/Hi.Common.FileLines.IFileChangedEventSupport.html", "title": "Interface IFileChangedEventSupport | HiAPI-C# 2025", "summary": "Interface IFileChangedEventSupport Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface for supporting file change events. public interface IFileChangedEventSupport 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) Events FileBeginEventHandler Event that is raised when file processing begins. event EventHandler FileBeginEventHandler Event Type EventHandler FileEndEventHandler Event that is raised when file processing ends. event EventHandler FileEndEventHandler Event Type EventHandler" }, "api/Hi.Common.FileLines.IFileLine.html": { "href": "api/Hi.Common.FileLines.IFileLine.html", "title": "Interface IFileLine | HiAPI-C# 2025", "summary": "Interface IFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface of file line. public interface IFileLine 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 FilePath File path. string FilePath { get; } Property Value string Line The line. string Line { get; } Property Value string" }, "api/Hi.Common.FileLines.IFileLineCharIndex.html": { "href": "api/Hi.Common.FileLines.IFileLineCharIndex.html", "title": "Interface IFileLineCharIndex | HiAPI-C# 2025", "summary": "Interface IFileLineCharIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface for a character-level position within a file: file, line, and character index. All indices are 0-based. public interface IFileLineCharIndex : IFileLineIndex, IGetFileLineIndex Inherited Members IFileLineIndex.FileIndex IFileLineIndex.LineIndex IGetFileLineIndex.GetFileLineIndex() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties CharIndex Character index within the line. 0-based. int CharIndex { get; } Property Value int" }, "api/Hi.Common.FileLines.IFileLineIndex.html": { "href": "api/Hi.Common.FileLines.IFileLineIndex.html", "title": "Interface IFileLineIndex | HiAPI-C# 2025", "summary": "Interface IFileLineIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface of file number and line number. public interface IFileLineIndex : IGetFileLineIndex Inherited Members IGetFileLineIndex.GetFileLineIndex() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) 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 FileIndex File Index. Start on 0. int FileIndex { get; } Property Value int LineIndex Line Index. Start on 0. int LineIndex { get; } Property Value int" }, "api/Hi.Common.FileLines.IGetFileLineIndex.html": { "href": "api/Hi.Common.FileLines.IGetFileLineIndex.html", "title": "Interface IGetFileLineIndex | HiAPI-C# 2025", "summary": "Interface IGetFileLineIndex Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface of GetFileLineIndex(). public interface IGetFileLineIndex 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) Methods GetFileLineIndex() Get FileLineIndex. FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex" }, "api/Hi.Common.FileLines.IGetIndexedFileLine.html": { "href": "api/Hi.Common.FileLines.IGetIndexedFileLine.html", "title": "Interface IGetIndexedFileLine | HiAPI-C# 2025", "summary": "Interface IGetIndexedFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface for objects that can provide a file line. public interface IGetIndexedFileLine 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) Methods GetIndexedFileLine() Gets the file line associated with this object. IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object." }, "api/Hi.Common.FileLines.IIndexedFileLine.html": { "href": "api/Hi.Common.FileLines.IIndexedFileLine.html", "title": "Interface IIndexedFileLine | HiAPI-C# 2025", "summary": "Interface IIndexedFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface for a file line with associated file and line index information. public interface IIndexedFileLine : IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex Inherited Members IFileLine.FilePath IFileLine.Line IFileLineIndex.FileIndex IFileLineIndex.LineIndex IGetIndexedFileLine.GetIndexedFileLine() IGetFileLineIndex.GetFileLineIndex() Extension Methods FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) 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)" }, "api/Hi.Common.FileLines.ILineChangedEventSupport.html": { "href": "api/Hi.Common.FileLines.ILineChangedEventSupport.html", "title": "Interface ILineChangedEventSupport | HiAPI-C# 2025", "summary": "Interface ILineChangedEventSupport Namespace Hi.Common.FileLines Assembly HiGeom.dll Interface for objects that support line change events. public interface ILineChangedEventSupport 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) Events LineBeginEventHandler Event that is raised when a line begins processing. event EventHandler LineBeginEventHandler Event Type EventHandler LineEndEventHandler Event that is raised when a line ends processing. event EventHandler LineEndEventHandler Event Type EventHandler" }, "api/Hi.Common.FileLines.IndexedFile.html": { "href": "api/Hi.Common.FileLines.IndexedFile.html", "title": "Class IndexedFile | HiAPI-C# 2025", "summary": "Class IndexedFile Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a file with an associated index. public class IndexedFile : IEquatable Inheritance object IndexedFile Implements IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 IndexedFile() Initializes a new instance of the IndexedFile class. public IndexedFile() IndexedFile(IndexedFile) Copy ctor. public IndexedFile(IndexedFile src) Parameters src IndexedFile src IndexedFile(string, int) Initializes a new instance of the IndexedFile class with the specified file path and index. public IndexedFile(string filePath, int fileIndex) Parameters filePath string The path of the file. fileIndex int The index of the file. Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FilePath File path. public string FilePath { get; set; } Property Value string Methods Equals(IndexedFile) Indicates whether the current object is equal to another object of the same type. public bool Equals(IndexedFile other) Parameters other IndexedFile An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.FileLines.IndexedFileLine.html": { "href": "api/Hi.Common.FileLines.IndexedFileLine.html", "title": "Class IndexedFileLine | HiAPI-C# 2025", "summary": "Class IndexedFileLine Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a line of text from a file with associated file and line information. public class IndexedFileLine : IIndexedFileLine, IFileLine, IFileLineIndex, IGetIndexedFileLine, IGetFileLineIndex Inheritance object IndexedFileLine Implements IIndexedFileLine IFileLine IFileLineIndex IGetIndexedFileLine IGetFileLineIndex Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) 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 IndexedFileLine() Initializes a new instance of the IndexedFileLine class. public IndexedFileLine() IndexedFileLine(IIndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying from an IIndexedFileLine. public IndexedFileLine(IIndexedFileLine src) Parameters src IIndexedFileLine The source IIndexedFileLine to copy from. IndexedFileLine(IndexedFileLine) Initializes a new instance of the IndexedFileLine class by copying another instance. public IndexedFileLine(IndexedFileLine src) Parameters src IndexedFileLine The source IndexedFileLine to copy from. IndexedFileLine(int, string, int, string) Initializes a new instance of the IndexedFileLine class with the specified file information and line content. public IndexedFileLine(int fileIndex, string filePath, int lineIndex, string line) Parameters fileIndex int The zero-based index of the file. filePath string The path of the file. lineIndex int The zero-based index of the line within the file. line string The content of the line. Properties FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FileNo FileIndex+1. public int FileNo { get; set; } Property Value int FilePath File path. public string FilePath { get; set; } Property Value string Line The line. public string Line { get; set; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int LineNo LineIndex+1. public int LineNo { get; set; } Property Value int Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Remarks Checks the equalty of FileIndex and LineIndex. GetFileLine() public IFileLine GetFileLine() Returns IFileLine GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Remarks The hashcode is composed of FileIndex and LineIndex. GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. ReadFile(int, string) Read file to IndexedFileLines. public static IEnumerable ReadFile(int fileIndex, string filePath) Parameters fileIndex int file number. If only one file in the scenerio, assign zero is prefered. filePath string file path Returns IEnumerable IndexedFileLines ReadFiles(List) Read files to IndexedFileLines. public static IEnumerable ReadFiles(List files) Parameters files List files Returns IEnumerable IndexedFileLines ToHumanString() Returns a human-readable string representation of this file line. public string ToHumanString() Returns string A formatted string with file number, path, line number, and line content. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.FileLines.IndexedFileLineChar.html": { "href": "api/Hi.Common.FileLines.IndexedFileLineChar.html", "title": "Class IndexedFileLineChar | HiAPI-C# 2025", "summary": "Class IndexedFileLineChar Namespace Hi.Common.FileLines Assembly HiGeom.dll Represents a character-level position within a file, with associated file path context. Analogous to IndexedFileLine but at character granularity. public class IndexedFileLineChar : IFileLineCharIndex, IFileLineIndex, IGetFileLineIndex, IEquatable Inheritance object IndexedFileLineChar Implements IFileLineCharIndex IFileLineIndex IGetFileLineIndex IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods FileLineUtil.CompareFileLine(IFileLineIndex, IFileLineIndex) FileLineUtil.GetFileNo(IFileLineIndex) FileLineUtil.GetLineNo(IFileLineIndex) 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 IndexedFileLineChar() Initializes a new instance of the IndexedFileLineChar class. public IndexedFileLineChar() IndexedFileLineChar(IndexedFileLine, int) Creates an IndexedFileLineChar from an IndexedFileLine at the specified character index. public IndexedFileLineChar(IndexedFileLine src, int charIndex) Parameters src IndexedFileLine The source indexed file line. charIndex int The zero-based character index within the line. IndexedFileLineChar(IndexedFileLineChar) Initializes a new instance of the IndexedFileLineChar class by copying another instance. public IndexedFileLineChar(IndexedFileLineChar src) Parameters src IndexedFileLineChar The source to copy from. IndexedFileLineChar(int, string, int, int) Initializes a new instance of the IndexedFileLineChar class with specified values. public IndexedFileLineChar(int fileIndex, string filePath, int lineIndex, int charIndex) Parameters fileIndex int The zero-based file index. filePath string The file path. lineIndex int The zero-based line index. charIndex int The zero-based character index within the line. Properties CharIndex Character index within the line. 0-based. public int CharIndex { get; set; } Property Value int FileIndex File Index. Start on 0. public int FileIndex { get; set; } Property Value int FilePath File path. public string FilePath { get; set; } Property Value string LineIndex Line Index. Start on 0. public int LineIndex { get; set; } Property Value int Methods Equals(IndexedFileLineChar) Indicates whether the current object is equal to another object of the same type. public bool Equals(IndexedFileLineChar other) Parameters other IndexedFileLineChar An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToFileLineCharIndex() Converts to a FileLineCharIndex (without file path context). public FileLineCharIndex ToFileLineCharIndex() Returns FileLineCharIndex ToHumanString() Returns a human-readable string representation. public string ToHumanString() Returns string ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.FileLines.LineBeginEventArgs.html": { "href": "api/Hi.Common.FileLines.LineBeginEventArgs.html", "title": "Class LineBeginEventArgs | HiAPI-C# 2025", "summary": "Class LineBeginEventArgs Namespace Hi.Common.FileLines Assembly HiGeom.dll Event arguments for when line processing begins. public class LineBeginEventArgs : EventArgs Inheritance object EventArgs LineBeginEventArgs Inherited Members EventArgs.Empty 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 LineBeginEventArgs() Initializes a new instance of the LineBeginEventArgs class. public LineBeginEventArgs() LineBeginEventArgs(IndexedFileLine) Initializes a new instance of the LineBeginEventArgs class with a specified file line. public LineBeginEventArgs(IndexedFileLine fileLine) Parameters fileLine IndexedFileLine The file line being processed. Properties FileLine Gets or sets the file line being processed. public IndexedFileLine FileLine { get; set; } Property Value IndexedFileLine" }, "api/Hi.Common.FileLines.LineEndEventArgs.html": { "href": "api/Hi.Common.FileLines.LineEndEventArgs.html", "title": "Class LineEndEventArgs | HiAPI-C# 2025", "summary": "Class LineEndEventArgs Namespace Hi.Common.FileLines Assembly HiGeom.dll Event arguments for when line processing ends. public class LineEndEventArgs : EventArgs Inheritance object EventArgs LineEndEventArgs Inherited Members EventArgs.Empty 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 LineEndEventArgs() Initializes a new instance of the LineEndEventArgs class. public LineEndEventArgs() LineEndEventArgs(IndexedFileLine) Initializes a new instance of the LineEndEventArgs class with a specified file line. public LineEndEventArgs(IndexedFileLine fileLine) Parameters fileLine IndexedFileLine The file line that was processed. Properties FileLine Gets or sets the file line that was processed. public IndexedFileLine FileLine { get; set; } Property Value IndexedFileLine" }, "api/Hi.Common.FileLines.html": { "href": "api/Hi.Common.FileLines.html", "title": "Namespace Hi.Common.FileLines | HiAPI-C# 2025", "summary": "Namespace Hi.Common.FileLines Classes FileBeginEventArgs Event arguments for when a file processing begins. FileEndEventArgs Event arguments for when a file processing ends. FileLineCharIndex Represents a character-level position within a file by file index, line index, and character index. All indices are 0-based. FileLineCharIndexSegment Represents a character-level segment within file(s). Begin is inclusive, End is exclusive: [Begin, End). FileLineIndex Represents a location in a file by its file index and line number. FileLineUtil Utility of IFileLineIndex. FileUtil Utility to manage files. IndexedFile Represents a file with an associated index. IndexedFileLine Represents a line of text from a file with associated file and line information. IndexedFileLineChar Represents a character-level position within a file, with associated file path context. Analogous to IndexedFileLine but at character granularity. LineBeginEventArgs Event arguments for when line processing begins. LineEndEventArgs Event arguments for when line processing ends. Interfaces IFileChangedEventSupport Interface for supporting file change events. IFileLine Interface of file line. IFileLineCharIndex Interface for a character-level position within a file: file, line, and character index. All indices are 0-based. IFileLineIndex Interface of file number and line number. IGetFileLineIndex Interface of GetFileLineIndex(). IGetIndexedFileLine Interface for objects that can provide a file line. IIndexedFileLine Interface for a file line with associated file and line index information. ILineChangedEventSupport Interface for objects that support line change events." }, "api/Hi.Common.IAbstractNote.html": { "href": "api/Hi.Common.IAbstractNote.html", "title": "Interface IAbstractNote | HiAPI-C# 2025", "summary": "Interface IAbstractNote Namespace Hi.Common Assembly HiGeom.dll Interface for objects that provide an abstract description or note. public interface IAbstractNote 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 AbstractNote Gets a descriptive note or abstract about the object. string AbstractNote { get; } Property Value string" }, "api/Hi.Common.IBinaryIo.html": { "href": "api/Hi.Common.IBinaryIo.html", "title": "Interface IBinaryIo | HiAPI-C# 2025", "summary": "Interface IBinaryIo Namespace Hi.Common Assembly HiGeom.dll Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. public interface IBinaryIo : IWriteBin Inherited Members IWriteBin.WriteBin(BinaryWriter) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) BinIoUtil.ToBytes(IWriteBin) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods ReadBin(BinaryReader) Reads binary data to initialize the object. void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from" }, "api/Hi.Common.IClearCache.html": { "href": "api/Hi.Common.IClearCache.html", "title": "Interface IClearCache | HiAPI-C# 2025", "summary": "Interface IClearCache Namespace Hi.Common Assembly HiGeom.dll Interface for objects that can clear their internal cache. public interface IClearCache 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) Methods ClearCache() Clears any cached data held by the implementing object. void ClearCache()" }, "api/Hi.Common.ICommandTextSource.html": { "href": "api/Hi.Common.ICommandTextSource.html", "title": "Interface ICommandTextSource | HiAPI-C# 2025", "summary": "Interface ICommandTextSource Namespace Hi.Common Assembly HiGeom.dll A culture-bearing vocabulary commands compose their titles and labels from: it maps a vocabulary key — the English default text — onto that culture's text. The CALLER picks the source, so the presentation layer owns the language (no thread culture involved); the command keeps its composition and degradation rules. Presentation layers can implement their own source or take the engine-default one from GenTextSource(CultureInfo, params Type[]) ([CultureText] declarations overlaid by SetTextOverride(string, string, string) registrations). public interface ICommandTextSource 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 this[string] The text of key in this source's culture; the key itself when the source carries no entry — the key doubles as the English default. string this[string key] { get; } Parameters key string Vocabulary key — the English default text. Property Value string The culture's text, or the key itself." }, "api/Hi.Common.IDuplicate.html": { "href": "api/Hi.Common.IDuplicate.html", "title": "Interface IDuplicate | HiAPI-C# 2025", "summary": "Interface IDuplicate Namespace Hi.Common Assembly HiGeom.dll Interface for objects that support deep cloning/duplication. public interface IDuplicate 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) Remarks Unlike ICloneable, which is typically used for shallow copying of simple objects, IDuplicate is designed for deep copying of complex objects with nested references. Implementations should ensure that all nested objects are properly duplicated. Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object" }, "api/Hi.Common.IGetQuantityByKey.html": { "href": "api/Hi.Common.IGetQuantityByKey.html", "title": "Interface IGetQuantityByKey | HiAPI-C# 2025", "summary": "Interface IGetQuantityByKey Namespace Hi.Common Assembly HiGeom.dll Interface for retrieving a quantity value using a string key. public interface IGetQuantityByKey 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) Methods GetQuantityByKey(string) Gets a quantity value associated with the specified key. double GetQuantityByKey(string key) Parameters key string The key to look up Returns double The quantity value associated with the key" }, "api/Hi.Common.IGetSelectionName.html": { "href": "api/Hi.Common.IGetSelectionName.html", "title": "Interface IGetSelectionName | HiAPI-C# 2025", "summary": "Interface IGetSelectionName Namespace Hi.Common Assembly HiGeom.dll Interface for objects that can provide a name for selection purposes. public interface IGetSelectionName 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) Methods GetSelectionName() Gets a name that can be used for selection in UI or other contexts. string GetSelectionName() Returns string The selection name for this object" }, "api/Hi.Common.INameNote.html": { "href": "api/Hi.Common.INameNote.html", "title": "Interface INameNote | HiAPI-C# 2025", "summary": "Interface INameNote Namespace Hi.Common Assembly HiGeom.dll Interface for objects that have a name and note property. public interface INameNote Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XmlUtil.GetNameNoteXElementList(INameNote) XmlUtil.SetNameNote(INameNote, XElement) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Name Gets or sets the name of the object. string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. string Note { get; set; } Property Value string" }, "api/Hi.Common.IPreferredFileName.html": { "href": "api/Hi.Common.IPreferredFileName.html", "title": "Interface IPreferredFileName | HiAPI-C# 2025", "summary": "Interface IPreferredFileName Namespace Hi.Common Assembly HiGeom.dll Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. public interface IPreferredFileName 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 PreferredFileName Gets or sets the preferred file name for this object when generating or saving files. string PreferredFileName { get; set; } Property Value string" }, "api/Hi.Common.IProgressFraction.html": { "href": "api/Hi.Common.IProgressFraction.html", "title": "Interface IProgressFraction | HiAPI-C# 2025", "summary": "Interface IProgressFraction Namespace Hi.Common Assembly HiDisp.dll Interface for progress reporting functionality. public interface IProgressFraction 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) Methods GetDenominator() Gets the denominator value for progress calculation. int GetDenominator() Returns int The denominator value. GetDetail() Gets the detailed information about the progress. string GetDetail() Returns string The detail string. GetMsg() Get message. string GetMsg() Returns string The message string. GetNumerator() Gets the numerator value for progress calculation. int GetNumerator() Returns int The numerator value." }, "api/Hi.Common.ISourceFile.html": { "href": "api/Hi.Common.ISourceFile.html", "title": "Interface ISourceFile | HiAPI-C# 2025", "summary": "Interface ISourceFile Namespace Hi.Common Assembly HiGeom.dll Interface for objects that have a source file. public interface ISourceFile 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 SourceFile Gets or sets the source file path. string SourceFile { get; set; } Property Value string" }, "api/Hi.Common.IToPresentDto.html": { "href": "api/Hi.Common.IToPresentDto.html", "title": "Interface IToPresentDto | HiAPI-C# 2025", "summary": "Interface IToPresentDto Namespace Hi.Common Assembly HiGeom.dll Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization. public interface IToPresentDto 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) Remarks Implementations must not return anonymous types: release assemblies are obfuscated with only the public API kept, so an anonymous type gets renamed and loses its constructor parameter names, which makes System.Text.Json throw NotSupportedException when serializing it. Return a Dictionary instead — its keys are emitted verbatim as the JSON property names. Key by nameof of the mirrored member where one exists (nameof compiles to a string literal, so obfuscation cannot touch it); use a literal for marker keys such as “Type”. Methods ToPresentDto() Convert to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. object ToPresentDto() Returns object DTO object with type and object properties" }, "api/Hi.Common.IUpdateByContent.html": { "href": "api/Hi.Common.IUpdateByContent.html", "title": "Interface IUpdateByContent | HiAPI-C# 2025", "summary": "Interface IUpdateByContent Namespace Hi.Common Assembly HiGeom.dll Interface for objects that can update themselves based on their content. public interface IUpdateByContent : IClearCache Inherited Members IClearCache.ClearCache() 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) Remarks This interface is considered obsolete. Use IClearCache instead. Methods UpdateByContent() Updates the object based on its current content. void UpdateByContent()" }, "api/Hi.Common.IUriGetter.html": { "href": "api/Hi.Common.IUriGetter.html", "title": "Interface IUriGetter | HiAPI-C# 2025", "summary": "Interface IUriGetter Namespace Hi.Common Assembly HiGeom.dll Interface for retrieving a URI string. public interface IUriGetter 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 Uri Gets the URI string. string Uri { get; } Property Value string" }, "api/Hi.Common.IWriteBin.html": { "href": "api/Hi.Common.IWriteBin.html", "title": "Interface IWriteBin | HiAPI-C# 2025", "summary": "Interface IWriteBin Namespace Hi.Common Assembly HiGeom.dll Interface for writing binary data. public interface IWriteBin Extension Methods BinIoUtil.ToBytes(IWriteBin) 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) Methods WriteBin(BinaryWriter) Writes the object's data to a binary stream. void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Common.IndexSegment.html": { "href": "api/Hi.Common.IndexSegment.html", "title": "Class IndexSegment | HiAPI-C# 2025", "summary": "Class IndexSegment Namespace Hi.Common Assembly HiGeom.dll Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. public class IndexSegment : IEquatable, IMakeXmlSource Inheritance object IndexSegment Implements IEquatable IMakeXmlSource Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IndexSegment() Initializes a new instance of the IndexSegment class. public IndexSegment() IndexSegment(IndexSegment) Initializes a new instance of the IndexSegment class by copying another instance. public IndexSegment(IndexSegment src) Parameters src IndexSegment The source index segment to copy from. IndexSegment(int, int) Initializes a new instance of the IndexSegment class with the specified begin and end indices. public IndexSegment(int begin, int end) Parameters begin int The beginning index (inclusive). end int The ending index (exclusive). IndexSegment(XElement) Initializes a new instance of the IndexSegment class from an XML element. public IndexSegment(XElement src) Parameters src XElement The XML element containing the index segment data. Fields XName The XML element name used for serialization. public static string XName Field Value string begin Begin index. Inclusive. public int begin Field Value int end End index. Exclusive. public int end Field Value int Properties Begin Gets or sets the beginning index of the segment (inclusive). public int Begin { get; set; } Property Value int End Gets or sets the ending index of the segment (exclusive). public int End { get; set; } Property Value int Length Gets the length of the segment (End - Begin). public int Length { get; } Property Value int Methods Any() Determines whether this index segment contains any indices. public bool Any() Returns bool true if the segment contains any indices; otherwise, false. Contains(int) Determines whether this index segment contains the specified index. public bool Contains(int index) Parameters index int The index to check. Returns bool true if the index is within the segment; otherwise, false. Enumerate() Enumerates all indices within this segment. public IEnumerable Enumerate() Returns IEnumerable An enumerable collection of all indices within the segment. Equals(IndexSegment) Determines whether the specified index segment is equal to the current index segment. public bool Equals(IndexSegment other) Parameters other IndexSegment The index segment to compare with the current index segment. Returns bool true if the specified index segment is equal to the current index segment; otherwise, false. Equals(object) Determines whether the specified object is equal to the current index segment. public override bool Equals(object obj) Parameters obj object The object to compare with the current index segment. Returns bool true if the specified object is equal to the current index segment; otherwise, false. Expand(int) Expands this index segment to include the specified value if needed. public void Expand(int v) Parameters v int The value to include in the segment. GetHashCode() Returns a hash code for this index segment. public override int GetHashCode() Returns int A hash code for the current index segment. GetIndexSegment(IList, int, TKey, Func, TKey) Finds the contiguous run of items whose key equals targetGroupKey, scanning outward from seekingStartListIndex. public static IndexSegment GetIndexSegment(IList steps, int seekingStartListIndex, TKey targetGroupKey, Func keyFunc, TKey seekStartFallbackKey = null) where TKey : class, IComparable Parameters steps IList The list of data items. seekingStartListIndex int The start step index for seeking. targetGroupKey TKey The key of the segment to locate. keyFunc Func Extracts the ordering key from a data item; may return null for an item with no key. seekStartFallbackKey TKey Key used when the seeking-start item has none (a null cache lands in the equality branch). Returns IndexSegment An index segment representing the range of indices. Type Parameters TData The type of data items. TKey The ordering key type (e.g. a file-line position). MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string representation of this index segment. public override string ToString() Returns string A string representation of the current index segment." }, "api/Hi.Common.IntegerKeyDictionaryConverter-1.html": { "href": "api/Hi.Common.IntegerKeyDictionaryConverter-1.html", "title": "Class IntegerKeyDictionaryConverter | HiAPI-C# 2025", "summary": "Class IntegerKeyDictionaryConverter Namespace Hi.Common Assembly HiGeom.dll Generic version of IntegerKeyDictionaryConverter that works with a specific value type. public class IntegerKeyDictionaryConverter : IMakeXmlSource Type Parameters TValue The type of values in the dictionary. Inheritance object IntegerKeyDictionaryConverter Implements IMakeXmlSource 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IntegerKeyDictionaryConverter() Ctor. public IntegerKeyDictionaryConverter() IntegerKeyDictionaryConverter(XElement) Ctor. public IntegerKeyDictionaryConverter(XElement src) Parameters src XElement XML Properties RawKeyList Dont modify. public List RawKeyList { get; } Property Value List RawKeyToIndex Dont modify. public Dictionary RawKeyToIndex { get; } Property Value Dictionary XName Name for XML IO. public static string XName { get; } Property Value string Methods GetIntegerKeyDictionary(Dictionary) Converts a dictionary with string keys to a dictionary with integer keys. public Dictionary GetIntegerKeyDictionary(Dictionary rawKeyDictionary) Parameters rawKeyDictionary Dictionary The dictionary with string keys to convert. Returns Dictionary A dictionary with integer keys. GetRestoredDictionary(Dictionary) Converts a dictionary with integer keys back to a dictionary with string keys. public Dictionary GetRestoredDictionary(Dictionary integerKeyDictionary) Parameters integerKeyDictionary Dictionary The dictionary with integer keys to convert. Returns Dictionary A dictionary with string keys. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Common.IntegerKeyDictionaryConverter.html": { "href": "api/Hi.Common.IntegerKeyDictionaryConverter.html", "title": "Class IntegerKeyDictionaryConverter | HiAPI-C# 2025", "summary": "Class IntegerKeyDictionaryConverter Namespace Hi.Common Assembly HiGeom.dll Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. public class IntegerKeyDictionaryConverter : IMakeXmlSource Inheritance object IntegerKeyDictionaryConverter Implements IMakeXmlSource 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IntegerKeyDictionaryConverter() Initializes a new instance of the IntegerKeyDictionaryConverter class. public IntegerKeyDictionaryConverter() IntegerKeyDictionaryConverter(XElement) Initializes a new instance of the IntegerKeyDictionaryConverter class from XML. public IntegerKeyDictionaryConverter(XElement src) Parameters src XElement XML element containing the converter data. Properties RawKeyList Dont modify. public List RawKeyList { get; } Property Value List RawKeyToIndex Dont modify. public Dictionary RawKeyToIndex { get; } Property Value Dictionary XName Name for XML IO. public static string XName { get; } Property Value string Methods GetIntegerKeyDictionary(Dictionary) Converts a dictionary with string keys to a dictionary with integer keys. public Dictionary GetIntegerKeyDictionary(Dictionary rawKeyDictionary) Parameters rawKeyDictionary Dictionary The dictionary with string keys to convert. Returns Dictionary A dictionary with integer keys. GetRestoredDictionary(Dictionary) Converts a dictionary with integer keys back to a dictionary with string keys. public Dictionary GetRestoredDictionary(Dictionary integerKeyDictionary) Parameters integerKeyDictionary Dictionary The dictionary with integer keys to convert. Returns Dictionary A dictionary with string keys. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Common.InternalException.html": { "href": "api/Hi.Common.InternalException.html", "title": "Class InternalException | HiAPI-C# 2025", "summary": "Class InternalException Namespace Hi.Common Assembly HiGeom.dll Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. public class InternalException : Exception, ISerializable Inheritance object Exception InternalException Implements ISerializable Inherited Members Exception.GetBaseException() Exception.GetType() Exception.ToString() Exception.Data Exception.HelpLink Exception.HResult Exception.InnerException Exception.Message Exception.Source Exception.StackTrace Exception.TargetSite Exception.SerializeObjectState object.Equals(object) object.Equals(object, object) object.GetHashCode() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 InternalException() Initializes a new instance of the InternalException class with a default message. public InternalException() InternalException(string) Initializes a new instance of the InternalException class with a specified error message. public InternalException(string message) Parameters message string The message that describes the error" }, "api/Hi.Common.InvokeUtil.html": { "href": "api/Hi.Common.InvokeUtil.html", "title": "Class InvokeUtil | HiAPI-C# 2025", "summary": "Class InvokeUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for method invocation operations. public static class InvokeUtil Inheritance object InvokeUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods SelfInvoke(TSrc, Action) Invokes the specified action on the source object itself. public static void SelfInvoke(this TSrc src, Action func) Parameters src TSrc The source object func Action The action to invoke on the source object Type Parameters TSrc The type of the source object SelfInvoke(TSrc, Func) Invokes the specified function on the source object itself and returns the result. This function is usually used to apply a temporary variable, so that the property call is not computed twice. public static TDst SelfInvoke(this TSrc src, Func func) Parameters src TSrc The source object func Func The function to invoke on the source object Returns TDst The result of the function invocation Type Parameters TSrc The type of the source object TDst The type of the result" }, "api/Hi.Common.JsonUtil.html": { "href": "api/Hi.Common.JsonUtil.html", "title": "Class JsonUtil | HiAPI-C# 2025", "summary": "Class JsonUtil Namespace Hi.Common Assembly HiGeom.dll Helper utilities for reading and writing JSON files. public static class JsonUtil Inheritance object JsonUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties CompactNanOptions Compact (single-line) serializer options supporting NaN / Infinity / -Infinity as quoted literal strings. This is the exact leaf encoding ToLeafCompactJsonString(JsonNode, JsonSerializerOptions) uses, exposed so other serialization paths (e.g. freezing a parse tree to UTF-8 bytes) can guarantee a byte-identical projection after a serialize → parse round-trip. Null-valued entries are written explicitly. public static JsonSerializerOptions CompactNanOptions { get; } Property Value JsonSerializerOptions Methods CallJsonArrayByPath(JsonObject, IEnumerable) Navigates or creates a JSON array path in the source JSON object. Creates missing intermediate objects and the final array as needed. public static JsonArray CallJsonArrayByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject The source JSON object to navigate. jsonObjectPath IEnumerable The path segments to navigate through. The last segment will be treated as an array. Returns JsonArray The JSON array at the specified path, creating it if it doesn't exist. Returns null if the path is empty. CallJsonObjectByPath(JsonObject, IEnumerable) Navigates or creates a JSON object path in the source JSON object. Creates missing intermediate objects as needed. public static JsonObject CallJsonObjectByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject The source JSON object to navigate. jsonObjectPath IEnumerable The path segments to navigate through. Returns JsonObject The JSON object at the specified path, creating it if it doesn't exist. GetDouble(JsonNode) Gets a double from a JsonNode that may hold int, long, or double. Also maps the named floating-point literal strings “NaN”, “Infinity” and \"-Infinity\" — the quoted form AllowNamedFloatingPointLiterals writes for those values — back to their double constants, so a node re-parsed from serialized JSON reads the same as the live value. public static double? GetDouble(this JsonNode node) Parameters node JsonNode Returns double? GetJsonNodeByPath(JsonObject, List) Navigates a JSON object tree by path segments and returns the node at the end of the path. public static JsonNode GetJsonNodeByPath(this JsonObject root, List pathSegments) Parameters root JsonObject The root JSON object. pathSegments List The path segments to navigate through. Returns JsonNode The JSON node at the specified path, or null if the path does not exist. ToLeafCompactJsonString(JsonNode, JsonSerializerOptions) Serializes a JsonNode so that stem containers are indented but leaf containers (all children are primitive values) are written on a single compact line. Supports NaN / Infinity / -Infinity. public static string ToLeafCompactJsonString(this JsonNode src, JsonSerializerOptions options = null) Parameters src JsonNode options JsonSerializerOptions Returns string WritePartialJson(string, string, TConfig) Writes a config object into a named section of a JSON file; merges when file exists and overwrites the same section name. public static void WritePartialJson(string filePath, string configName, TConfig config) Parameters filePath string JSON file path configName string Section name to write config TConfig Section object to write Type Parameters TConfig Type of the config object" }, "api/Hi.Common.LooseRunner.MergedCancellationTokenRun.html": { "href": "api/Hi.Common.LooseRunner.MergedCancellationTokenRun.html", "title": "Delegate LooseRunner.MergedCancellationTokenRun | HiAPI-C# 2025", "summary": "Delegate LooseRunner.MergedCancellationTokenRun Namespace Hi.Common Assembly HiGeom.dll Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token. public delegate void LooseRunner.MergedCancellationTokenRun(CancellationToken mergedCancellationToken) Parameters mergedCancellationToken CancellationToken The merged cancellation token combining disposal and external tokens. 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)" }, "api/Hi.Common.LooseRunner.html": { "href": "api/Hi.Common.LooseRunner.html", "title": "Class LooseRunner | HiAPI-C# 2025", "summary": "Class LooseRunner Namespace Hi.Common Assembly HiGeom.dll Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. public class LooseRunner : IDisposable Inheritance object LooseRunner Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors LooseRunner(ILogger, CancellationToken?) Initializes a new instance of the LooseRunner class with an ILogger for exception reporting. public LooseRunner(ILogger logger, CancellationToken? cancellationToken = null) Parameters logger ILogger The logger used to report exceptions. cancellationToken CancellationToken? Optional cancellation token to control the lifetime of the runner. LooseRunner(Action, CancellationToken?) Initializes a new instance of the LooseRunner class. public LooseRunner(Action exceptionAction = null, CancellationToken? cancellationToken = null) Parameters exceptionAction Action Optional action invoked when an exception occurs. If null, exceptions are silently ignored. cancellationToken CancellationToken? Optional cancellation token to control the lifetime of the runner. If not provided, a new token will be created. Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the LooseRunner and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. GetLastWaiting() Asynchronously waits for the last action to complete execution. public Task GetLastWaiting() Returns Task A task representing the asynchronous wait operation. TryRun(MergedCancellationTokenRun, CancellationToken?) Tries to run the specified action asynchronously. If an action is already pending, it will be replaced with the new action. public void TryRun(LooseRunner.MergedCancellationTokenRun action, CancellationToken? cancellationToken = null) Parameters action LooseRunner.MergedCancellationTokenRun The action to run. The input cancellation token is the merge of cancellationToken and the runner hosted cancellation token that called on disposing. cancellationToken CancellationToken? external cancellation token WaitLastActionDone() Waits for the last action to complete execution. public void WaitLastActionDone()" }, "api/Hi.Common.ManualUtil.html": { "href": "api/Hi.Common.ManualUtil.html", "title": "Class ManualUtil | HiAPI-C# 2025", "summary": "Class ManualUtil Namespace Hi.Common Assembly HiNc.dll Utility class for handling manual and documentation files with culture support. public static class ManualUtil Inheritance object ManualUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields culture_keyword Keyword placeholder for culture in URL templates. public const string culture_keyword = \"{culture}\" Field Value string Methods GetBestDeployUrl(string) Gets the best available deployment URL by removing the wwwroot prefix from the source URL. public static string GetBestDeployUrl(string urlTemplate) Parameters urlTemplate string URL template containing culture placeholder. Returns string The best matching deployment URL for the current culture. GetBestSourceUrl(string) Gets the best available source URL by matching the current culture or falling back to defaults. public static string GetBestSourceUrl(string urlTemplate) Parameters urlTemplate string URL template containing culture placeholder. Returns string The best matching source URL for the current culture. GetTitle(string, ILogger) Extracts the title from an HTML file by looking for the first h1 tag or title tag. public static string GetTitle(string urlTemplate, ILogger logger) Parameters urlTemplate string URL template containing culture placeholder. logger ILogger The logger instance. Returns string The extracted title or empty string if not found." }, "api/Hi.Common.MaskUtil.html": { "href": "api/Hi.Common.MaskUtil.html", "title": "Class MaskUtil | HiAPI-C# 2025", "summary": "Class MaskUtil Namespace Hi.Common Assembly HiGeom.dll Utility for bits masking. public static class MaskUtil Inheritance object MaskUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMaskedValue(T, T, bool) Get converted src which all bits from mask is committing or not. If isCommitting is true, return src OR mask; otherwise , return src AND (~mask). public static T GetMaskedValue(this T src, T mask, bool isCommitting) where T : struct Parameters src T src mask T mask isCommitting bool is committing or cancelling Returns T Converted value Type Parameters T number type SetMask(ref T, T, bool) Set src converted by which all bits from mask is committing or not. If isCommitting is true, return src OR mask; otherwise , return src AND (~mask). public static void SetMask(this ref T src, T mask, bool isCommitting) where T : struct Parameters src T src mask T mask isCommitting bool is committing or cancelling Type Parameters T number type" }, "api/Hi.Common.Messages.ActionProgress-1.html": { "href": "api/Hi.Common.Messages.ActionProgress-1.html", "title": "Class ActionProgress | HiAPI-C# 2025", "summary": "Class ActionProgress Namespace Hi.Common.Messages Assembly HiGeom.dll Lightweight IProgress that delegates to an Action. Unlike Progress, does not capture SynchronizationContext and invokes the handler synchronously on the caller's thread. public class ActionProgress : IProgress Type Parameters T Inheritance object ActionProgress Implements IProgress 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) Constructors ActionProgress(Action) Initializes a new instance that forwards each reported value to handler. public ActionProgress(Action handler) Parameters handler Action Delegate invoked synchronously by Report(T). Methods FromLogger(ILogger) Creates an IProgress that routes an IMessage (or a raw Exception) to the appropriate ILogger level. public static IProgress FromLogger(ILogger logger) Parameters logger ILogger Returns IProgress Report(T) Reports a progress update. public void Report(T value) Parameters value T The value of the updated progress." }, "api/Hi.Common.Messages.BootstrapTheme.html": { "href": "api/Hi.Common.Messages.BootstrapTheme.html", "title": "Enum BootstrapTheme | HiAPI-C# 2025", "summary": "Enum BootstrapTheme Namespace Hi.Common.Messages Assembly HiGeom.dll Bootstrap theme colors for UI styling. public enum BootstrapTheme 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 danger = 5 Danger theme color (typically red). dark = 7 Dark theme color (typically black or very dark gray). info = 3 Information theme color (typically light blue). light = 6 Light theme color (typically white or very light gray). primary = 0 Primary theme color (typically blue). secondary = 1 Secondary theme color (typically gray). success = 2 Success theme color (typically green). warning = 4 Warning theme color (typically yellow)." }, "api/Hi.Common.Messages.Category.html": { "href": "api/Hi.Common.Messages.Category.html", "title": "Enum Category | HiAPI-C# 2025", "summary": "Enum Category Namespace Hi.Common.Messages Assembly HiGeom.dll Classification of an IMessage — the “what kind of concern” axis, orthogonal to the Severity importance axis it pairs with. Applies to every IMessage on the channel (lifecycle / progress notices, configuration checks, NC-pipeline diagnostics, …), not only NC messages. public enum Category 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 Configuration = 3 Missing or misconfigured end-user dependency / configuration (e.g. coordinate table, tool offset table, machine axis config, rapid feedrate config). System = 0 General program / pipeline output — lifecycle, progress, infrastructure, internal exceptions. The default when no more-specific category applies. Unsupported = 1 Recognized but unimplemented feature. Validation = 2 Manufacturing / physics feasibility check. Remarks Representative (Category × Severity) combinations: System + Message / Progress → lifecycle, progress, general program output System + Error → exception / bug, unconsidered case Unsupported + Warning → known unsupported, likely harmless Unsupported + Error → known unsupported, likely matters Validation + Warning → manufacturing / physics may be unfeasible Validation + Error → manufacturing / physics is unfeasible Configuration + Message → dependency / config applied, informational Configuration + Warning → dependency / config missing, using fallback Configuration + Error → dependency / config missing, cannot proceed" }, "api/Hi.Common.Messages.DebugUtil.html": { "href": "api/Hi.Common.Messages.DebugUtil.html", "title": "Class DebugUtil | HiAPI-C# 2025", "summary": "Class DebugUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Debug utility provides functions: pause process, count execution time and show the count. public static class DebugUtil Inheritance object DebugUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties Count Count of calling C(). The Count is shown by S(string). The Count helps to trigger pause by P(int). public static int Count { get; set; } Property Value int Data The data storage for the DebugUtil class. public static Dictionary Data { get; } Property Value Dictionary Debugee The object being debugged. public static object Debugee { get; set; } Property Value object NativeDebugVar Gets or sets the native debug variable in the C++ core library. public static int NativeDebugVar { get; set; } Property Value int WriteLineAction The action to be performed when writing a line of text. public static Action WriteLineAction { get; set; } Property Value Action Methods C() Count++. public static int C() Returns int current count CPS(int, string) Execute C(). Pause and execute S(string) if count >= p. public static int CPS(int p = 0, string text = null) Parameters p int pause number text string text to show Returns int current count CS(string) Call C() and then call S(string). public static int CS(string shownText = null) Parameters shownText string the text to show Returns int count CSP(int, string) Execute the functions in sequence: C(), S(string), P(int). public static int CSP(int p = 0, string shownText = null) Parameters p int pause number shownText string text to show Returns int count P(int) Pause if count >= p. public static int P(int p = 0) Parameters p int pause number Returns int current count S(string) Call WriteLineAction?.Invoke to show the text and count. public static int S(string shownText = null) Parameters shownText string text to show Returns int current count SP(int, string) Call S(string) and then call P(int). public static int SP(int p = 0, string shownText = null) Parameters p int shownText string text to show Returns int count WriteLine(string) Writes a line of text with the current count. This is an alias for S(string). public static int WriteLine(string shownText = null) Parameters shownText string The text to show. Returns int The current count." }, "api/Hi.Common.Messages.ExceptionUtil.html": { "href": "api/Hi.Common.Messages.ExceptionUtil.html", "title": "Class ExceptionUtil | HiAPI-C# 2025", "summary": "Class ExceptionUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Provides utility methods for handling exceptions. public static class ExceptionUtil Inheritance object ExceptionUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CatchExceptions(Task, Action) Continues the task and reports any exception via onException. public static Task CatchExceptions(this Task task, Action onException) Parameters task Task onException Action Returns Task CatchExceptions(Task, Action) Continues the task and reports exceptions via onException, silently ignoring TSilent. public static Task CatchExceptions(this Task task, Action onException) where TSilent : Exception Parameters task Task onException Action Returns Task Type Parameters TSilent" }, "api/Hi.Common.Messages.IMessage.html": { "href": "api/Hi.Common.Messages.IMessage.html", "title": "Interface IMessage | HiAPI-C# 2025", "summary": "Interface IMessage Namespace Hi.Common.Messages Assembly HiGeom.dll Common contract for a single reportable item on an IProgress channel — an NC diagnostic, a step-anchored notice, a simple message, or a progress fraction. Consumers (GUI / log) treat every kind uniformly through this view, while each concrete kind is still stored by its own owner (e.g. NcDiagnostic by NcDiagnosticProgress, ClStripPos by ClStrip) rather than being mixed into one shared collection. public interface IMessage 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) Methods GetArgs() Gets the values interpolated into GetFormat(); null when GetFormat() is null, possibly empty for a hole-less template. Default interface method so external implementers are unaffected. object[] GetArgs() Returns object[] The interpolation arguments, or null when untemplated. GetCategory() Gets the classification — see Category. Category GetCategory() Returns Category The category of this message. GetDetail() Gets the optional detail payload or exception; null when not applicable. object GetDetail() Returns object The detail object, or null. GetFormat() Gets the composite-format template behind GetNotification() — a {0}-style .NET format string — when this message was produced from an interpolated template; null when the notification has no structured template. Together with GetArgs() this lets a consumer re-render the message in another language without losing the interpolated live values, while GetNotification() stays the invariant English rendering. Default interface method so external implementers are unaffected. string GetFormat() Returns string The composite format string, or null when untemplated. GetId() Gets the structured id used for filtering / suppression; may be null. string GetId() Returns string The message id, or null when not applicable. GetNotification() Gets the end-user friendly notification text. string GetNotification() Returns string The notification text. GetSeverity() Gets the importance level — see Severity. Severity GetSeverity() Returns Severity The severity of this message." }, "api/Hi.Common.Messages.IProgressMessage.html": { "href": "api/Hi.Common.Messages.IProgressMessage.html", "title": "Interface IProgressMessage | HiAPI-C# 2025", "summary": "Interface IProgressMessage Namespace Hi.Common.Messages Assembly HiGeom.dll Marker for an IMessage that is itself a container of messages (a batch produced over the course of some scoped work) rather than a single leaf notice. A sink may give it special treatment — unrolling its accumulated children, in order, instead of storing the composite object itself. Empty by design: the contract is purely the marker. The children are exposed by the concrete type (e.g. StepScopedProgress.MessageList) and drained at the point that owns the ordering guarantee, so a consumer that does not recognize IProgressMessage simply treats the composite as an opaque IMessage. public interface IProgressMessage : IMessage Inherited Members IMessage.GetSeverity() IMessage.GetCategory() IMessage.GetId() IMessage.GetNotification() IMessage.GetDetail() IMessage.GetFormat() IMessage.GetArgs() 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)" }, "api/Hi.Common.Messages.MessageBoardUtil.html": { "href": "api/Hi.Common.Messages.MessageBoardUtil.html", "title": "Class MessageBoardUtil | HiAPI-C# 2025", "summary": "Class MessageBoardUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Utility class for displaying messages on a message board. public static class MessageBoardUtil Inheritance object MessageBoardUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties IsEnabled Gets or sets whether message board functionality is enabled. When disabled in console applications, message board functions have no effect. public static bool IsEnabled { get; set; } Property Value bool Methods ShowError(string, string) Shows an error message on the message board. public static void ShowError(string title, string message) Parameters title string Title of the message message string Content of the message ShowFailed(string, string) Shows a failure message on the message board. public static void ShowFailed(string title, string message) Parameters title string Title of the message message string Content of the message ShowMessage(string, string, BootstrapTheme) Displays a message on the message board with specified title and theme color. public static void ShowMessage(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message message string The content of the message bootstrapThemeColor BootstrapTheme The theme color for the message display ShowSuccess(string, string) Shows a success message on the message board. public static void ShowSuccess(string title, string message) Parameters title string Title of the message message string Content of the message ShowWarning(string, string) Shows a warning message on the message board. public static void ShowWarning(string title, string message) Parameters title string Title of the message message string Content of the message Events ShowMessageBoard Event that is triggered when a message needs to be displayed. public static event ShowMessageBoardDelegate ShowMessageBoard Event Type ShowMessageBoardDelegate" }, "api/Hi.Common.Messages.MessageCollector.html": { "href": "api/Hi.Common.Messages.MessageCollector.html", "title": "Class MessageCollector | HiAPI-C# 2025", "summary": "Class MessageCollector Namespace Hi.Common.Messages Assembly HiGeom.dll A minimal IProgress of IMessage that buffers every reported message into Messages. Intended as a per-call / per-request sink: a caller injects it into a have-both function (one that takes an IProgress messageProgress), runs the operation, then reads the collected messages back — e.g. to return them in an HTTP response so a REST / AI caller sees progress, success, and error notifications inline. Unlike the session / strip sinks (SessionProgress, StepDiagnosticProgress) it fires no events and holds no session or pipeline state; it is cheap to create and discard for the lifetime of a single call. public sealed class MessageCollector : IProgress Inheritance object MessageCollector Implements IProgress Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) object.ToString() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MessageUtil.ConfigurationError(IProgress, string, string, object) MessageUtil.ConfigurationErrorFmt(IProgress, string, FormattableString, object) MessageUtil.ConfigurationMessage(IProgress, string, string, object) MessageUtil.ConfigurationMessageFmt(IProgress, string, FormattableString, object) MessageUtil.ConfigurationWarning(IProgress, string, string, object) MessageUtil.ConfigurationWarningFmt(IProgress, string, FormattableString, object) MessageUtil.SystemError(IProgress, string, string, object) MessageUtil.SystemErrorFmt(IProgress, string, FormattableString, object) MessageUtil.SystemMessage(IProgress, string, string, object) MessageUtil.SystemMessageFmt(IProgress, string, FormattableString, object) MessageUtil.SystemProgress(IProgress, string, string, object) MessageUtil.SystemProgressFmt(IProgress, string, FormattableString, object) MessageUtil.SystemSuccess(IProgress, string, string, object) MessageUtil.SystemSuccessFmt(IProgress, string, FormattableString, object) MessageUtil.SystemWarning(IProgress, string, string, object) MessageUtil.SystemWarningFmt(IProgress, string, FormattableString, object) MessageUtil.UnsupportedError(IProgress, string, string, object) MessageUtil.UnsupportedErrorFmt(IProgress, string, FormattableString, object) MessageUtil.UnsupportedMessage(IProgress, string, string, object) MessageUtil.UnsupportedMessageFmt(IProgress, string, FormattableString, object) MessageUtil.UnsupportedWarning(IProgress, string, string, object) MessageUtil.UnsupportedWarningFmt(IProgress, string, FormattableString, object) MessageUtil.ValidationError(IProgress, string, string, object) MessageUtil.ValidationErrorFmt(IProgress, string, FormattableString, object) MessageUtil.ValidationWarning(IProgress, string, string, object) MessageUtil.ValidationWarningFmt(IProgress, string, FormattableString, object) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Messages The messages reported so far, in arrival order. public List Messages { get; } Property Value List Methods Report(IMessage) Reports a progress update. public void Report(IMessage value) Parameters value IMessage The value of the updated progress." }, "api/Hi.Common.Messages.MessageFlag.html": { "href": "api/Hi.Common.Messages.MessageFlag.html", "title": "Enum MessageFlag | HiAPI-C# 2025", "summary": "Enum MessageFlag Namespace Hi.Common.Messages Assembly HiGeom.dll Enumeration of common message types used for system notifications. public enum MessageFlag 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 Error = 1 General error messages. For exception which is consciously handled. Exception = 0 System error messages. For exception which is not consciously handled. Info = 7 System behavior that end user not need to know. The message make help to tracing end user behavior. Message = 6 Something else from the upper flags to tell the end user. Progress = 4 Progress update messages. Success = 5 Progress complete on success messages. Warning = 2 Warning messages." }, "api/Hi.Common.Messages.MessageUtil.html": { "href": "api/Hi.Common.Messages.MessageUtil.html", "title": "Class MessageUtil | HiAPI-C# 2025", "summary": "Class MessageUtil Namespace Hi.Common.Messages Assembly HiGeom.dll Extension helpers for reporting SimpleMessage records onto an IProgress of IMessage sink — the IMessage-channel counterpart of NcDiagnosticProgress's shorthand methods. Every helper is named {Category}{Severity} and is id-first; the structured id is used for filtering / suppression. All overloads are null-safe on host. Each helper has a {Category}{Severity}Fmt sibling taking a FormattableString: it keeps the interpolated template and values (Format / Args) so a client can re-render the message in another language, while the notification stays the invariant English rendering. The sibling must be opted into by name — an interpolated string literal passed to the string helper binds to string and is not captured. public static class MessageUtil Inheritance object MessageUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ConfigurationError(IProgress, string, string, object) Reports Configuration + Error (dependency/config missing, cannot proceed). public static void ConfigurationError(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object ConfigurationErrorFmt(IProgress, string, FormattableString, object) Templated ConfigurationError(IProgress, string, string, object) — keeps format + args for localization. public static void ConfigurationErrorFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object ConfigurationMessage(IProgress, string, string, object) Reports Configuration + Message (dependency/config applied, informational). public static void ConfigurationMessage(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object ConfigurationMessageFmt(IProgress, string, FormattableString, object) Templated ConfigurationMessage(IProgress, string, string, object) — keeps format + args for localization. public static void ConfigurationMessageFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object ConfigurationWarning(IProgress, string, string, object) Reports Configuration + Warning (dependency/config missing, using fallback). public static void ConfigurationWarning(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object ConfigurationWarningFmt(IProgress, string, FormattableString, object) Templated ConfigurationWarning(IProgress, string, string, object) — keeps format + args for localization. public static void ConfigurationWarningFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object SystemError(IProgress, string, string, object) Reports System + Error (exception or unconsidered case). public static void SystemError(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object SystemErrorFmt(IProgress, string, FormattableString, object) Templated SystemError(IProgress, string, string, object) — keeps format + args for localization. public static void SystemErrorFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object SystemMessage(IProgress, string, string, object) Reports System + Message (pipeline lifecycle / informational). public static void SystemMessage(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object SystemMessageFmt(IProgress, string, FormattableString, object) Templated SystemMessage(IProgress, string, string, object) — keeps format + args for localization. public static void SystemMessageFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object SystemProgress(IProgress, string, string, object) Reports System + Progress (ongoing pipeline progress). public static void SystemProgress(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object SystemProgressFmt(IProgress, string, FormattableString, object) Templated SystemProgress(IProgress, string, string, object) — keeps format + args for localization. public static void SystemProgressFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object SystemSuccess(IProgress, string, string, object) Reports System + Success (pipeline step completed). public static void SystemSuccess(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object SystemSuccessFmt(IProgress, string, FormattableString, object) Templated SystemSuccess(IProgress, string, string, object) — keeps format + args for localization. public static void SystemSuccessFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object SystemWarning(IProgress, string, string, object) Reports System + Warning (pipeline anomaly, processing continues). public static void SystemWarning(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object SystemWarningFmt(IProgress, string, FormattableString, object) Templated SystemWarning(IProgress, string, string, object) — keeps format + args for localization. public static void SystemWarningFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object UnsupportedError(IProgress, string, string, object) Reports Unsupported + Error (recognized but unimplemented, likely matters). public static void UnsupportedError(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object UnsupportedErrorFmt(IProgress, string, FormattableString, object) Templated UnsupportedError(IProgress, string, string, object) — keeps format + args for localization. public static void UnsupportedErrorFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object UnsupportedMessage(IProgress, string, string, object) Reports Unsupported + Message (recognized, intentionally not simulated). public static void UnsupportedMessage(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object UnsupportedMessageFmt(IProgress, string, FormattableString, object) Templated UnsupportedMessage(IProgress, string, string, object) — keeps format + args for localization. public static void UnsupportedMessageFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object UnsupportedWarning(IProgress, string, string, object) Reports Unsupported + Warning (recognized but unimplemented, likely harmless). public static void UnsupportedWarning(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object UnsupportedWarningFmt(IProgress, string, FormattableString, object) Templated UnsupportedWarning(IProgress, string, string, object) — keeps format + args for localization. public static void UnsupportedWarningFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object ValidationError(IProgress, string, string, object) Reports Validation + Error (manufacturing/physics is unfeasible). public static void ValidationError(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object ValidationErrorFmt(IProgress, string, FormattableString, object) Templated ValidationError(IProgress, string, string, object) — keeps format + args for localization. public static void ValidationErrorFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object ValidationWarning(IProgress, string, string, object) Reports Validation + Warning (manufacturing/physics may be unfeasible). public static void ValidationWarning(this IProgress host, string id, string text, object detail = null) Parameters host IProgress id string text string detail object ValidationWarningFmt(IProgress, string, FormattableString, object) Templated ValidationWarning(IProgress, string, string, object) — keeps format + args for localization. public static void ValidationWarningFmt(this IProgress host, string id, FormattableString text, object detail = null) Parameters host IProgress id string text FormattableString detail object" }, "api/Hi.Common.Messages.Severity.html": { "href": "api/Hi.Common.Messages.Severity.html", "title": "Enum Severity | HiAPI-C# 2025", "summary": "Enum Severity Namespace Hi.Common.Messages Assembly HiGeom.dll Importance level of an IMessage. Combined with Category to form the full meaning (e.g. Validation + Warning). Promoted from the former NcDiagnosticSeverity so non-NC messages (simple notices, progress fractions) share a single scale. public enum Severity 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 Error = 4 Definite issue — result may be incorrect. Message = 0 Informational status. Progress = 2 Ongoing progress / fraction update. Success = 1 Completed successfully. Warning = 3 Potential issue — processing continues." }, "api/Hi.Common.Messages.ShowMessageBoardDelegate.html": { "href": "api/Hi.Common.Messages.ShowMessageBoardDelegate.html", "title": "Delegate ShowMessageBoardDelegate | HiAPI-C# 2025", "summary": "Delegate ShowMessageBoardDelegate Namespace Hi.Common.Messages Assembly HiGeom.dll Delegate for showing message board notifications. public delegate void ShowMessageBoardDelegate(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string Title of the message message string Content of the message bootstrapThemeColor BootstrapTheme Theme color for the message 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)" }, "api/Hi.Common.Messages.SimpleMessage.html": { "href": "api/Hi.Common.Messages.SimpleMessage.html", "title": "Class SimpleMessage | HiAPI-C# 2025", "summary": "Class SimpleMessage Namespace Hi.Common.Messages Assembly HiGeom.dll A plain IMessage with no anchor: severity, category, id, notification text and optional detail. This is the default carrier for ad-hoc messages that have no other home. When step context is available, a step-anchored decorator wraps a SimpleMessage to add the StepIndex / SentenceCarrier without the producer needing to know it. public class SimpleMessage : IMessage Inheritance object SimpleMessage Implements IMessage Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 SimpleMessage(Severity, FormattableString, Category, string, object) Initializes a templated instance: the interpolated template and its values are kept on Format / Args and Notification becomes the culture-invariant English rendering. An interpolated string literal passed to the string constructor is NOT captured here — call sites opt in through the *Fmt helpers on MessageUtil. public SimpleMessage(Severity severity, FormattableString notification, Category category = Category.System, string id = null, object detail = null) Parameters severity Severity Importance level. notification FormattableString Interpolated notification template. category Category Classification; defaults to System. id string Optional structured id. detail object Optional detail payload or exception. SimpleMessage(Severity, string, Category, string, object) Initializes a new instance of the SimpleMessage class. public SimpleMessage(Severity severity, string notification, Category category = Category.System, string id = null, object detail = null) Parameters severity Severity Importance level. notification string End-user friendly notification text. category Category Classification; defaults to System. id string Optional structured id. detail object Optional detail payload or exception. Properties Args Gets the values interpolated into Format; null when untemplated. public object[] Args { get; } Property Value object[] Category Gets the classification. public Category Category { get; } Property Value Category Detail Gets the optional detail payload or exception; null when not applicable. public object Detail { get; } Property Value object Format Gets the composite-format template behind Notification; null when the message was built from a plain string (untemplated). public string Format { get; } Property Value string Id Gets the structured id for filtering / suppression; may be null. public string Id { get; } Property Value string Notification Gets the end-user friendly notification text. public string Notification { get; } Property Value string Severity Gets the importance level. public Severity Severity { get; } Property Value Severity Methods GetArgs() Gets the values interpolated into GetFormat(); null when GetFormat() is null, possibly empty for a hole-less template. Default interface method so external implementers are unaffected. public object[] GetArgs() Returns object[] The interpolation arguments, or null when untemplated. GetCategory() Gets the classification — see Category. public Category GetCategory() Returns Category The category of this message. GetDetail() Gets the optional detail payload or exception; null when not applicable. public object GetDetail() Returns object The detail object, or null. GetFormat() Gets the composite-format template behind GetNotification() — a {0}-style .NET format string — when this message was produced from an interpolated template; null when the notification has no structured template. Together with GetArgs() this lets a consumer re-render the message in another language without losing the interpolated live values, while GetNotification() stays the invariant English rendering. Default interface method so external implementers are unaffected. public string GetFormat() Returns string The composite format string, or null when untemplated. GetId() Gets the structured id used for filtering / suppression; may be null. public string GetId() Returns string The message id, or null when not applicable. GetNotification() Gets the end-user friendly notification text. public string GetNotification() Returns string The notification text. GetSeverity() Gets the importance level — see Severity. public Severity GetSeverity() Returns Severity The severity of this message. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.Messages.html": { "href": "api/Hi.Common.Messages.html", "title": "Namespace Hi.Common.Messages | HiAPI-C# 2025", "summary": "Namespace Hi.Common.Messages Classes ActionProgress Lightweight IProgress that delegates to an Action. Unlike Progress, does not capture SynchronizationContext and invokes the handler synchronously on the caller's thread. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. ExceptionUtil Provides utility methods for handling exceptions. MessageBoardUtil Utility class for displaying messages on a message board. MessageCollector A minimal IProgress of IMessage that buffers every reported message into Messages. Intended as a per-call / per-request sink: a caller injects it into a have-both function (one that takes an IProgress messageProgress), runs the operation, then reads the collected messages back — e.g. to return them in an HTTP response so a REST / AI caller sees progress, success, and error notifications inline. Unlike the session / strip sinks (SessionProgress, StepDiagnosticProgress) it fires no events and holds no session or pipeline state; it is cheap to create and discard for the lifetime of a single call. MessageUtil Extension helpers for reporting SimpleMessage records onto an IProgress of IMessage sink — the IMessage-channel counterpart of NcDiagnosticProgress's shorthand methods. Every helper is named {Category}{Severity} and is id-first; the structured id is used for filtering / suppression. All overloads are null-safe on host. Each helper has a {Category}{Severity}Fmt sibling taking a FormattableString: it keeps the interpolated template and values (Format / Args) so a client can re-render the message in another language, while the notification stays the invariant English rendering. The sibling must be opted into by name — an interpolated string literal passed to the string helper binds to string and is not captured. SimpleMessage A plain IMessage with no anchor: severity, category, id, notification text and optional detail. This is the default carrier for ad-hoc messages that have no other home. When step context is available, a step-anchored decorator wraps a SimpleMessage to add the StepIndex / SentenceCarrier without the producer needing to know it. Interfaces IMessage Common contract for a single reportable item on an IProgress channel — an NC diagnostic, a step-anchored notice, a simple message, or a progress fraction. Consumers (GUI / log) treat every kind uniformly through this view, while each concrete kind is still stored by its own owner (e.g. NcDiagnostic by NcDiagnosticProgress, ClStripPos by ClStrip) rather than being mixed into one shared collection. IProgressMessage Marker for an IMessage that is itself a container of messages (a batch produced over the course of some scoped work) rather than a single leaf notice. A sink may give it special treatment — unrolling its accumulated children, in order, instead of storing the composite object itself. Empty by design: the contract is purely the marker. The children are exposed by the concrete type (e.g. StepScopedProgress.MessageList) and drained at the point that owns the ordering guarantee, so a consumer that does not recognize IProgressMessage simply treats the composite as an opaque IMessage. Enums BootstrapTheme Bootstrap theme colors for UI styling. Category Classification of an IMessage — the “what kind of concern” axis, orthogonal to the Severity importance axis it pairs with. Applies to every IMessage on the channel (lifecycle / progress notices, configuration checks, NC-pipeline diagnostics, …), not only NC messages. MessageFlag Enumeration of common message types used for system notifications. Severity Importance level of an IMessage. Combined with Category to form the full meaning (e.g. Validation + Warning). Promoted from the former NcDiagnosticSeverity so non-NC messages (simple notices, progress fractions) share a single scale. Delegates ShowMessageBoardDelegate Delegate for showing message board notifications." }, "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html": { "href": "api/Hi.Common.MinMaxUtils.IndexedMinMaxPos-2.html", "title": "Class IndexedMinMaxPos | HiAPI-C# 2025", "summary": "Class IndexedMinMaxPos Namespace Hi.Common.MinMaxUtils Assembly HiGeom.dll Represents a position with an index, key, and a range of values. public class IndexedMinMaxPos Type Parameters TKey The type of the key TValue The type of the range values Inheritance object IndexedMinMaxPos 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) Constructors IndexedMinMaxPos() Initializes a new instance of the IndexedMinMaxPos class. public IndexedMinMaxPos() IndexedMinMaxPos(int, TKey, Range) Initializes a new instance of the IndexedMinMaxPos class with specified values. public IndexedMinMaxPos(int index, TKey key, Range range) Parameters index int Index value key TKey Key value range Range Range value IndexedMinMaxPos(int, TKey, TValue, TValue) Initializes a new instance of the IndexedMinMaxPos class with specified values. public IndexedMinMaxPos(int index, TKey key, TValue min, TValue max) Parameters index int Index value key TKey Key value min TValue Minimum value max TValue Maximum value Properties Index Gets or sets the index of the position. public int Index { get; set; } Property Value int Key Gets or sets the key associated with the position. public TKey Key { get; set; } Property Value TKey Range Gets or sets the range of values for the position. public Range Range { get; set; } Property Value Range" }, "api/Hi.Common.MinMaxUtils.MinMaxUtil.html": { "href": "api/Hi.Common.MinMaxUtils.MinMaxUtil.html", "title": "Class MinMaxUtil | HiAPI-C# 2025", "summary": "Class MinMaxUtil Namespace Hi.Common.MinMaxUtils Assembly HiGeom.dll Provides utility methods for finding minimum and maximum values in collections. public static class MinMaxUtil Inheritance object MinMaxUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMinMaxList(IList>, int, int) Creates a list of indexed minimum and maximum positions from a collection of key-value pairs where values are arrays. public static List> GetMinMaxList(this IList> src, int numThreshold, int posValueLength) Parameters src IList> The source collection of key-value pairs numThreshold int The maximum number of positions to return posValueLength int The length of the value arrays Returns List> A list of indexed minimum and maximum positions GetMinMaxList(IList>, int) Creates a list of indexed minimum and maximum positions from a collection of key-value pairs. public static List> GetMinMaxList(this IList> src, int numThreshold) Parameters src IList> The source collection of key-value pairs numThreshold int The maximum number of positions to return Returns List> A list of indexed minimum and maximum positions" }, "api/Hi.Common.MinMaxUtils.html": { "href": "api/Hi.Common.MinMaxUtils.html", "title": "Namespace Hi.Common.MinMaxUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.MinMaxUtils Classes IndexedMinMaxPos Represents a position with an index, key, and a range of values. MinMaxUtil Provides utility methods for finding minimum and maximum values in collections." }, "api/Hi.Common.NameUtil.html": { "href": "api/Hi.Common.NameUtil.html", "title": "Class NameUtil | HiAPI-C# 2025", "summary": "Class NameUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for handling object names and display names. public static class NameUtil Inheritance object NameUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields UnsetText Default text used when a name is not set. public const string UnsetText = \"Unset\" Field Value string Methods GetSelectionName(object) Gets the selection name for an object, using custom implementation if available, or falling back to type display name or type name. public static string GetSelectionName(this object src) Parameters src object The source object to get the name for Returns string The selection name for the object GetSelectionName(Type) Gets the selection name for a type, using its DisplayName attribute if available, or falling back to the type name. public static string GetSelectionName(this Type type) Parameters type Type The type to get the name for Returns string The selection name for the type SpacePascalWords(string) Spaces a PascalCase member name into display words: an underscore suffix is dropped and a space is inserted before each capital that starts a new word, so MachiningResolution_mm becomes “Machining Resolution” and ReadOnFirstOrWrite becomes “Read On First Or Write”. Consecutive capitals stay one word. public static string SpacePascalWords(string name) Parameters name string The member name to space. Returns string The spaced display words." }, "api/Hi.Common.NativeProgresses.NativeProgressFraction.html": { "href": "api/Hi.Common.NativeProgresses.NativeProgressFraction.html", "title": "Class NativeProgressFraction | HiAPI-C# 2025", "summary": "Class NativeProgressFraction Namespace Hi.Common.NativeProgresses Assembly HiDisp.dll Native implementation of the progress report interface. public class NativeProgressFraction : IProgressFraction Inheritance object NativeProgressFraction Implements IProgressFraction 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) Constructors NativeProgressFraction(progress_monitor_t*) Initializes a new instance of the NativeProgressFraction class. public NativeProgressFraction(progress_monitor_t* progress_monitor_ptr) Parameters progress_monitor_ptr progress_monitor_t* Pointer to the native progress monitor. Methods GetDenominator() Gets the denominator value for progress calculation. public int GetDenominator() Returns int The denominator value. GetDetail() Gets the detailed information about the progress. public string GetDetail() Returns string The detail string. GetMsg() Get message. public string GetMsg() Returns string The message string. GetNumerator() Gets the numerator value for progress calculation. public int GetNumerator() Returns int The numerator value." }, "api/Hi.Common.NativeProgresses.html": { "href": "api/Hi.Common.NativeProgresses.html", "title": "Namespace Hi.Common.NativeProgresses | HiAPI-C# 2025", "summary": "Namespace Hi.Common.NativeProgresses Classes NativeProgressFraction Native implementation of the progress report interface. Structs progress_monitor_t Native structure for progress monitoring. Delegates report_progress_func_t Delegate for reporting progress from native code." }, "api/Hi.Common.NativeProgresses.progress_monitor_t.html": { "href": "api/Hi.Common.NativeProgresses.progress_monitor_t.html", "title": "Struct progress_monitor_t | HiAPI-C# 2025", "summary": "Struct progress_monitor_t Namespace Hi.Common.NativeProgresses Assembly HiDisp.dll Native structure for progress monitoring. public struct progress_monitor_t 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)" }, "api/Hi.Common.NativeProgresses.report_progress_func_t.html": { "href": "api/Hi.Common.NativeProgresses.report_progress_func_t.html", "title": "Delegate report_progress_func_t | HiAPI-C# 2025", "summary": "Delegate report_progress_func_t Namespace Hi.Common.NativeProgresses Assembly HiDisp.dll Delegate for reporting progress from native code. public delegate void report_progress_func_t(progress_monitor_t* progress_monitor_ptr) Parameters progress_monitor_ptr progress_monitor_t* Pointer to the progress monitor. 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)" }, "api/Hi.Common.PacePlayee.html": { "href": "api/Hi.Common.PacePlayee.html", "title": "Class PacePlayee | HiAPI-C# 2025", "summary": "Class PacePlayee Namespace Hi.Common Assembly HiGeom.dll Represents an entity that can be controlled by the pace player. public class PacePlayee Inheritance object PacePlayee 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 Player Gets the player that controls this playee. public PacePlayer Player { get; } Property Value PacePlayer Methods Pace() A pausable mark for the playing process. The function enables Pause() to take effect. public void Pace() Remarks Waits for the player to signal the next pace." }, "api/Hi.Common.PacePlayer.html": { "href": "api/Hi.Common.PacePlayer.html", "title": "Class PacePlayer | HiAPI-C# 2025", "summary": "Class PacePlayer Namespace Hi.Common Assembly HiGeom.dll Controls the pace execution of a task. public class PacePlayer : IDisposable Inheritance object PacePlayer Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PacePlayer(ILogger) Initializes a new instance with the specified logger for exception reporting. public PacePlayer(ILogger logger) Parameters logger ILogger Logger used by the player to report exceptions raised during pace execution. Properties CancellationToken Gets the cancellation token for the running task. public CancellationToken CancellationToken { get; } Property Value CancellationToken IsFinished Is the process finished from Start(). public bool IsFinished { get; } Property Value bool IsLocked Is started but not finished. IsLocked keeps true even if Pause() is called. The property is true if a task started and the task has not yet finished. public bool IsLocked { get; } Property Value bool IsRunning Is running. Not paused either finished. The property is true if a task started and the task has not yet finished and Pause() is not called. public bool IsRunning { get; } Property Value bool Logger Logger for reporting exceptions during task execution. public ILogger Logger { get; } Property Value ILogger MainAction Gets or sets the main action to be executed by the player. public Action MainAction { get; set; } Property Value Action RunCount Monotonically increasing count of runs started by Start(), incremented synchronously before the run's task launches (never reset). Serves as the run identity for status pollers: pairing this with IsFinished in one snapshot lets a client distinguish “the run I started has finished” from a stale Finished left by a previous run. 0 until the first run starts. public long RunCount { get; } Property Value long Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. Pause() Pauses the execution. public void Pause() Reset() Resets the player to its initial state. public void Reset() Resume() Resumes the execution if paused. public void Resume() RunToNextPace() Runs to the next pace point. public void RunToNextPace() Start() Starts the main action execution. public void Start() Terminate() Terminates the execution by cancelling the task. public void Terminate() Wait() Waits for the task to complete. public void Wait() Events IsFinishedChangedEvent Event triggered when the IsFinished state changes. public event Action IsFinishedChangedEvent Event Type Action IsLockedChangedEvent Event triggered when the lock state changes. public event Action IsLockedChangedEvent Event Type Action IsRunningChangedEvent Event triggered when the running state changes. public event Action IsRunningChangedEvent Event Type Action ResetedEvent Event triggered after the player has been reset. public event Action ResetedEvent Event Type Action" }, "api/Hi.Common.Pair-2.html": { "href": "api/Hi.Common.Pair-2.html", "title": "Class Pair | HiAPI-C# 2025", "summary": "Class Pair Namespace Hi.Common Assembly HiGeom.dll Editable pair values. public class Pair Type Parameters TA type of A TB type of B Inheritance object Pair Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Pair(TA, TB) constructor. public Pair(TA a, TB b) Parameters a TA member A b TB member B Properties A member A public TA A { get; set; } Property Value TA B member B public TB B { get; set; } Property Value TB Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.ParallelBulkReader-1.html", "title": "Class ParallelBulkReader | HiAPI-C# 2025", "summary": "Class ParallelBulkReader Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Parallel bulk reader that provides efficient data access with caching capabilities. Manages reading data in parallel with forward and backward caching to optimize performance. public class ParallelBulkReader : IDisposable where TData : class Type Parameters TData The type of data to read. Inheritance object ParallelBulkReader Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ParallelBulkReader(int, int, int, ReadBulkDelegate, Func, Action) Initializes a new instance of the ParallelBulkReader class. public ParallelBulkReader(int cacheBackwardDistance, int cacheForwardDistance, int cacheQueueLimit, ReadBulkDelegate readBulkFunc, Func getIndexFunc, Action exceptionAction = null) Parameters cacheBackwardDistance int The distance to cache backward from the current index. cacheForwardDistance int The distance to cache forward from the current index. cacheQueueLimit int The maximum number of cache entries to maintain in the queue. readBulkFunc ReadBulkDelegate The function used to read bulk data. getIndexFunc Func The function used to extract an index from a data item. exceptionAction Action Optional action invoked when an exception occurs in cache operations. Properties GetIndexFunc Gets the function used to extract an index from a data item. public Func GetIndexFunc { get; } Property Value Func Methods ClearCache() Clears all cached data and disposes of all cache entries. public void ClearCache() Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the ParallelBulkReader and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. GetStep(int) Gets a data item at the specified step index, with automatic caching. public TData GetStep(int stepIndex) Parameters stepIndex int The index of the step to retrieve. Returns TData The data item at the specified index." }, "api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.ParallelBulkWriter-1.html", "title": "Class ParallelBulkWriter | HiAPI-C# 2025", "summary": "Class ParallelBulkWriter Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Parallel bulk writer that efficiently processes and writes data in parallel. The writing data is buffered and processed on a separate task to improve performance. public class ParallelBulkWriter : IDisposable where TData : class Type Parameters TData The type of data to write. Inheritance object ParallelBulkWriter Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ParallelBulkWriter(Action>, int) Initializes a new instance of the ParallelBulkWriter class. public ParallelBulkWriter(Action> addAllFunc, int writingBufferCap = 131072) Parameters addAllFunc Action> The function used to add all data items to the destination. writingBufferCap int The capacity of the writing buffer. Default is 1024 * 128. Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the ParallelBulkWriter and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. Enqueue(TData) Adds a data item to the writing buffer for processing. public void Enqueue(TData step) Parameters step TData The data item to add. Wait() Waits for all data items in the buffer to be processed. public void Wait()" }, "api/Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.ReadBulkDelegate-1.html", "title": "Delegate ReadBulkDelegate | HiAPI-C# 2025", "summary": "Delegate ReadBulkDelegate Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Delegate for reading a bulk of data from a specified range. public delegate List ReadBulkDelegate(int begin, int end) Parameters begin int The starting index (inclusive). end int The ending index (exclusive). Returns List A list of data items from the specified range. Type Parameters TData The type of data to read. 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)" }, "api/Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html": { "href": "api/Hi.Common.ParallelBulkUtils.SequentialBulkReader-1.html", "title": "Class SequentialBulkReader | HiAPI-C# 2025", "summary": "Class SequentialBulkReader Namespace Hi.Common.ParallelBulkUtils Assembly HiGeom.dll Sequential bulk reader that provides efficient data access with caching capabilities. Unlike ParallelBulkReader, this reader processes data sequentially. public class SequentialBulkReader where TData : class Type Parameters TData The type of data to read. Inheritance object SequentialBulkReader 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) Constructors SequentialBulkReader(int, int, ReadBulkDelegate, Func) Initializes a new instance of the SequentialBulkReader class. public SequentialBulkReader(int bulkListSize, int bulkSize, ReadBulkDelegate readBulkFunc, Func getIndexFunc) Parameters bulkListSize int The number of bulk lists to maintain in the cache. bulkSize int The size of each bulk. readBulkFunc ReadBulkDelegate The function used to read bulk data. getIndexFunc Func The function used to extract an index from a data item. Properties GetIndexFunc Gets the function used to extract an index from a data item. public Func GetIndexFunc { get; } Property Value Func Methods ClearCache() Clears all cached data. public void ClearCache() GetStep(int) Gets a data item at the specified step index, with automatic caching. public TData GetStep(int stepIndex) Parameters stepIndex int The index of the step to retrieve. Returns TData The data item at the specified index." }, "api/Hi.Common.ParallelBulkUtils.html": { "href": "api/Hi.Common.ParallelBulkUtils.html", "title": "Namespace Hi.Common.ParallelBulkUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.ParallelBulkUtils Classes ParallelBulkReader Parallel bulk reader that provides efficient data access with caching capabilities. Manages reading data in parallel with forward and backward caching to optimize performance. ParallelBulkWriter Parallel bulk writer that efficiently processes and writes data in parallel. The writing data is buffered and processed on a separate task to improve performance. SequentialBulkReader Sequential bulk reader that provides efficient data access with caching capabilities. Unlike ParallelBulkReader, this reader processes data sequentially. Delegates ReadBulkDelegate Delegate for reading a bulk of data from a specified range." }, "api/Hi.Common.PathUtils.ExtendedNamedPath.html": { "href": "api/Hi.Common.PathUtils.ExtendedNamedPath.html", "title": "Class ExtendedNamedPath | HiAPI-C# 2025", "summary": "Class ExtendedNamedPath Namespace Hi.Common.PathUtils Assembly HiGeom.dll Represents a path with a named base path and an optional extended path component. public class ExtendedNamedPath : IEquatable Inheritance object ExtendedNamedPath Implements IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ExtendedNamedPath() Initializes a new instance of the ExtendedNamedPath class. public ExtendedNamedPath() ExtendedNamedPath(ExtendedNamedPath) Copy constructor that performs a deep clone including the base named path. public ExtendedNamedPath(ExtendedNamedPath src) Parameters src ExtendedNamedPath The source ExtendedNamedPath to copy from ExtendedNamedPath(NamedPath) Initializes a new instance of the ExtendedNamedPath class with only a base path. public ExtendedNamedPath(NamedPath rootNamedPath) Parameters rootNamedPath NamedPath The base named path ExtendedNamedPath(NamedPath, string) Initializes a new instance of the ExtendedNamedPath class with a base path and extended path. public ExtendedNamedPath(NamedPath rootNamedPath, string extendedPath) Parameters rootNamedPath NamedPath The base named path extendedPath string The extended path component Properties BaseNamedPath Gets or sets the base named path component. public NamedPath BaseNamedPath { get; set; } Property Value NamedPath ExtendedPath Gets or sets the extended path component that is appended to the base path. A null value is acceptable. public string ExtendedPath { get; set; } Property Value string FullPath Gets the full path by combining the base path and extended path. public string FullPath { get; } Property Value string Remarks If the base path is null, returns the extended path or an empty string if that is also null. Methods Equals(ExtendedNamedPath) Indicates whether the current object is equal to another object of the same type. public bool Equals(ExtendedNamedPath other) Parameters other ExtendedNamedPath An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetName(StringLocalizer) Gets the display name of this path, optionally using a string localizer for the base path name. public string GetName(StringLocalizer loc = null) Parameters loc StringLocalizer Optional string localizer to translate the base path name Returns string The combined name of the base path and extended path, or the extended path alone if base path is null, or an empty string if both are null GetUriPara() Gets a URI parameter representation of this path for use in HTTP requests. public string GetUriPara() Returns string A string suitable for use as a URI parameter ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Operators operator ==(ExtendedNamedPath, ExtendedNamedPath) public static bool operator ==(ExtendedNamedPath left, ExtendedNamedPath right) Parameters left ExtendedNamedPath right ExtendedNamedPath Returns bool operator !=(ExtendedNamedPath, ExtendedNamedPath) public static bool operator !=(ExtendedNamedPath left, ExtendedNamedPath right) Parameters left ExtendedNamedPath right ExtendedNamedPath Returns bool" }, "api/Hi.Common.PathUtils.HttpUtil.html": { "href": "api/Hi.Common.PathUtils.HttpUtil.html", "title": "Class HttpUtil | HiAPI-C# 2025", "summary": "Class HttpUtil Namespace Hi.Common.PathUtils Assembly HiGeom.dll Utility class for HTTP operations such as URL validation and content retrieval. public static class HttpUtil Inheritance object HttpUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ReadAllLinesFromUrl(string) Reads all lines from a URL's content. public static string[] ReadAllLinesFromUrl(string url) Parameters url string The URL to read from Returns string[] An array of strings containing the lines from the URL content, or an empty array if the request fails ReadAllLinesFromUrlAsync(string) Asynchronously reads all lines from a URL's content. public static Task ReadAllLinesFromUrlAsync(string url) Parameters url string The URL to read from Returns Task A task that represents the asynchronous operation. The task result contains an array of strings with the lines from the URL content, or an empty array if the request fails UrlExists(string) Checks if a URL exists by making a HEAD request. public static bool UrlExists(string url) Parameters url string The URL to check Returns bool True if the URL exists and returns a success status code; otherwise, false UrlExistsAsync(string) Asynchronously checks if a URL exists by making a HEAD request. public static Task UrlExistsAsync(string url) Parameters url string The URL to check Returns Task A task that represents the asynchronous operation. The task result contains true if the URL exists and returns a success status code; otherwise, false" }, "api/Hi.Common.PathUtils.Lang.html": { "href": "api/Hi.Common.PathUtils.Lang.html", "title": "Class Lang | HiAPI-C# 2025", "summary": "Class Lang Namespace Hi.Common.PathUtils Assembly HiGeom.dll Provides language-related utilities for path handling. public class Lang Inheritance object Lang 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)" }, "api/Hi.Common.PathUtils.NamedPath.html": { "href": "api/Hi.Common.PathUtils.NamedPath.html", "title": "Class NamedPath | HiAPI-C# 2025", "summary": "Class NamedPath Namespace Hi.Common.PathUtils Assembly HiGeom.dll Represents a file system path with an associated name or alias. public class NamedPath : IEquatable Inheritance object NamedPath Implements IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 NamedPath() Initializes a new instance of the NamedPath class. public NamedPath() NamedPath(NamedPath) Copy constructor that creates a new instance with the same name and path as the source. public NamedPath(NamedPath src) Parameters src NamedPath The source NamedPath to copy from NamedPath(string) Initializes a new instance of the NamedPath class with the specified name. public NamedPath(string name) Parameters name string The name or alias for the path NamedPath(string, string) Initializes a new instance of the NamedPath class with the specified name and path. public NamedPath(string name, string path) Parameters name string The name or alias for the path path string The file system path Properties Name Gets or sets the alias or display name for the path. A null value is acceptable. public string Name { get; set; } Property Value string Path Gets or sets the file system path. public string Path { get; set; } Property Value string Methods Equals(NamedPath) Indicates whether the current object is equal to another object of the same type. public bool Equals(NamedPath other) Parameters other NamedPath An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Operators operator ==(NamedPath, NamedPath) public static bool operator ==(NamedPath left, NamedPath right) Parameters left NamedPath right NamedPath Returns bool operator !=(NamedPath, NamedPath) public static bool operator !=(NamedPath left, NamedPath right) Parameters left NamedPath right NamedPath Returns bool" }, "api/Hi.Common.PathUtils.PathUtil.html": { "href": "api/Hi.Common.PathUtils.PathUtil.html", "title": "Class PathUtil | HiAPI-C# 2025", "summary": "Class PathUtil Namespace Hi.Common.PathUtils Assembly HiGeom.dll Utility class for path manipulation and management. public static class PathUtil Inheritance object PathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields DotAlterWord Constant used to replace dots in HTTP string parameters. public const string DotAlterWord = \"-(dot)-\" Field Value string Methods Combine(string, string) Combines a base path with a subpath, ensuring consistent directory separators. public static string Combine(string basePath, string subPath) Parameters basePath string The base path subPath string The subpath to append Returns string The combined path with forward slashes as directory separators, or null if basePath is null Combine(params string[]) Combines multiple path segments, ensuring consistent directory separators. public static string Combine(params string[] paths) Parameters paths string[] The path segments to combine Returns string The combined path with forward slashes as directory separators GetDirectoryName(string) Gets the directory name of a path, ensuring consistent directory separators. public static string GetDirectoryName(string path) Parameters path string The path to get the directory name from Returns string The directory name with forward slashes as directory separators, or null if the path has no directory component GetFileDirectory(string, string) Gets the directory name from a combined base directory and relative file path. public static string GetFileDirectory(string baseDirectory, string relFile) Parameters baseDirectory string The base directory relFile string The relative file path Returns string The directory name of the combined path with forward slashes as directory separators GetParentDirectory(string) Gets the parent directory of a path, ignoring any trailing slashes. public static string GetParentDirectory(this string path) Parameters path string The path to get the parent of Returns string The parent directory path GetPathByTemplate(string, string, string, string) Generates a path by replacing keywords in a template path. public static string GetPathByTemplate(string templatePath, string replacingPath, string replacedPathKeyword, string replacedNameKeyword) Parameters templatePath string The template path containing keywords to be replaced replacingPath string The path to use as replacement replacedPathKeyword string The path keyword to be replaced in the template replacedNameKeyword string The name keyword to be replaced in the template Returns string The processed path with keywords replaced GetRelativePath(string, string) Gets the relative path from one path to another, ensuring consistent directory separators. public static string GetRelativePath(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path with forward slashes as directory separators GetRelativePathIfDescendant(string, string) Gets the relative path if the target path is a descendant of the reference path; otherwise, returns the original path. public static string GetRelativePathIfDescendant(string relativeTo, string path) Parameters relativeTo string The path that is the reference point path string The path to which the relative path is calculated Returns string The relative path if path is a descendant of relativeTo; otherwise, the original path. Forward slashes are used as directory separators in either case. GetResourceDirectory(string, string, string) Combines a base directory with a relative file path and appends a suffix to derive a sub-directory path. The suffix is only appended when relFile is not null or whitespace. public static string GetResourceDirectory(string baseDirectory, string relFile, string suffixIfAdded = \"-src\") Parameters baseDirectory string The base directory. relFile string The relative file path. suffixIfAdded string The suffix appended to the combined path when relFile is not null or whitespace. Returns string The combined sub-directory path with forward slashes as directory separators. IsDescendant(DirectoryInfo, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(this DirectoryInfo ascendentDirectory, string descendantPath) Parameters ascendentDirectory DirectoryInfo The potential ancestor directory descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false IsDescendant(string, string) Determines whether a path is a descendant of a specified directory. public static bool IsDescendant(string ascendentDirectory, string descendantPath) Parameters ascendentDirectory string The potential ancestor directory path descendantPath string The path to check Returns bool True if the path is a descendant of the directory; otherwise, false NormalizeToForwardSlash(string) Replaces backslashes with forward slashes in a path string. public static string NormalizeToForwardSlash(this string src) Parameters src string The source path string Returns string The path string with all backslashes replaced by forward slashes ResolveSubDirectory(string, string, string) Resolves the sub-directory for loading with legacy fallback. Returns the GetResourceDirectory(string, string, string) path if it exists; otherwise falls back to the legacy GetFileDirectory(string, string) path if it exists; otherwise defaults to the GetResourceDirectory(string, string, string) path. public static string ResolveSubDirectory(string baseDirectory, string relFile, string suffix = \"-src\") Parameters baseDirectory string The base directory. relFile string The relative file path. suffix string The suffix for the new sub-directory path. Returns string The resolved sub-directory path with forward slashes as directory separators. TrimTrailingSlash(string) Removes the trailing slash or backslash from a path if it exists. public static string TrimTrailingSlash(this string path) Parameters path string The path to process Returns string The path without a trailing slash or backslash" }, "api/Hi.Common.PathUtils.html": { "href": "api/Hi.Common.PathUtils.html", "title": "Namespace Hi.Common.PathUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.PathUtils Classes ExtendedNamedPath Represents a path with a named base path and an optional extended path component. HttpUtil Utility class for HTTP operations such as URL validation and content retrieval. Lang Provides language-related utilities for path handling. NamedPath Represents a file system path with an associated name or alias. PathUtil Utility class for path manipulation and management." }, "api/Hi.Common.ProgressFraction.html": { "href": "api/Hi.Common.ProgressFraction.html", "title": "Class ProgressFraction | HiAPI-C# 2025", "summary": "Class ProgressFraction Namespace Hi.Common Assembly HiDisp.dll Represents a progress report implementation. Also exposes an IMessage view (explicitly implemented) so a progress fraction can ride the unified message channel uniformly alongside SimpleMessage / NcDiagnostic: Progress + System, with Msg as the notification and Detail as the detail payload. public class ProgressFraction : IProgressFraction, IMessage Inheritance object ProgressFraction Implements IProgressFraction IMessage 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) Constructors ProgressFraction(NativeProgressFraction) Initializes a new instance of the ProgressFraction class from a native progress report. public ProgressFraction(NativeProgressFraction src) Parameters src NativeProgressFraction The native progress report source. Properties Denominator Gets or sets the denominator value for progress calculation. public int Denominator { get; set; } Property Value int Detail Gets or sets the detailed information about the progress. public string Detail { get; set; } Property Value string Msg Gets or sets the message string. public string Msg { get; set; } Property Value string Numerator Gets or sets the numerator value for progress calculation. public int Numerator { get; set; } Property Value int Methods GetDenominator() Gets the denominator value for progress calculation. public int GetDenominator() Returns int The denominator value. GetDetail() Gets the detailed information about the progress. public string GetDetail() Returns string The detail string. GetMsg() Get message. public string GetMsg() Returns string The message string. GetNumerator() Gets the numerator value for progress calculation. public int GetNumerator() Returns int The numerator value." }, "api/Hi.Common.QueueCacheUtils.QueueCacher-1.html": { "href": "api/Hi.Common.QueueCacheUtils.QueueCacher-1.html", "title": "Class QueueCacher | HiAPI-C# 2025", "summary": "Class QueueCacher Namespace Hi.Common.QueueCacheUtils Assembly HiGeom.dll This cacher suits scattered IO with repeatity. public class QueueCacher where TData : class Type Parameters TData The type of data to cache Inheritance object QueueCacher 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) Constructors QueueCacher(QueueCacherHost) Initializes a new instance of the QueueCacher class with the specified host. public QueueCacher(QueueCacherHost host) Parameters host QueueCacherHost The host that manages this cacher Properties Cache Gets the cached data, loading it if necessary and managing the cache queue. public TData Cache { get; } Property Value TData" }, "api/Hi.Common.QueueCacheUtils.QueueCacherHost-1.html": { "href": "api/Hi.Common.QueueCacheUtils.QueueCacherHost-1.html", "title": "Class QueueCacherHost | HiAPI-C# 2025", "summary": "Class QueueCacherHost Namespace Hi.Common.QueueCacheUtils Assembly HiGeom.dll This cacher suits scattered IO with repeatity. public class QueueCacherHost where TData : class Type Parameters TData The type of data to cache Inheritance object QueueCacherHost 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 Capacity Gets or sets the maximum number of items to keep in the cache. public int Capacity { get; set; } Property Value int Provider Gets or sets the function that provides data when it's not in the cache. public Func Provider { get; set; } Property Value Func Methods Clear() Clears all items from the cache. public void Clear()" }, "api/Hi.Common.QueueCacheUtils.html": { "href": "api/Hi.Common.QueueCacheUtils.html", "title": "Namespace Hi.Common.QueueCacheUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.QueueCacheUtils Classes QueueCacherHost This cacher suits scattered IO with repeatity. QueueCacher This cacher suits scattered IO with repeatity." }, "api/Hi.Common.Range-1.html": { "href": "api/Hi.Common.Range-1.html", "title": "Class Range | HiAPI-C# 2025", "summary": "Class Range Namespace Hi.Common Assembly HiGeom.dll Range from Min to Max. public class Range : IEquatable> Type Parameters T Any Type Inheritance object Range Implements IEquatable> Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Range() Initializes a new instance of the Range class. public Range() Range(T, T) Initializes a new instance of the Range class with specified minimum and maximum values. public Range(T min, T max) Parameters min T The minimum value max T The maximum value Fields max Max. public T max Field Value T min Min. public T min Field Value T Properties Max Property form of max. public T Max { get; set; } Property Value T Min Property form of min. public T Min { get; set; } Property Value T ReversePole Gets a range with reversed poles (positive infinity to negative infinity). public static Range ReversePole { get; } Property Value Range Methods AtIter(int) Get element by iteration index. public T AtIter(int iter) Parameters iter int iteration index Returns T ref element AtIterRef(int) Get element by iteration index. public ref T AtIterRef(int iter) Parameters iter int iteration index Returns T ref element Equals(Range) Indicates whether the current object is equal to another object of the same type. public bool Equals(Range other) Parameters other Range An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Expand(Range, double) Expands the range to include the specified value if necessary. public static void Expand(Range range, double v) Parameters range Range The range to expand v double The value to include in the range GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Common.ResourceDefaultMarker.html": { "href": "api/Hi.Common.ResourceDefaultMarker.html", "title": "Class ResourceDefaultMarker | HiAPI-C# 2025", "summary": "Class ResourceDefaultMarker Namespace Hi.Common Assembly HiGeom.dll File-name convention that marks a shipped resource item as a system-owned default: a file carries the token before its final extension (AlTiBN.default.CoatingMaterial), a folder-shaped resource carries it as a folder-name suffix (MachineTool/Table-B1.default/) with the files inside left untouched. public static class ResourceDefaultMarker Inheritance object ResourceDefaultMarker Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks Marked means system territory — the resource seeder may overwrite the item on version updates and delete marked items that are no longer shipped. Unmarked items belong to the user and are never touched. The marker is a declaration, not an enforcement: user edits to a marked file survive until the next shipped-version change overwrites them. Fields Token The marker token. Files embed it before the final extension; folders end with it. public const string Token = \".default\" Field Value string Methods IsMarkedFileName(string) Whether fileName carries the marker (contains .default.). public static bool IsMarkedFileName(string fileName) Parameters fileName string File name without directory. Returns bool IsMarkedFolderName(string) Whether folderName carries the marker (ends with .default). public static bool IsMarkedFolderName(string folderName) Parameters folderName string Folder name without directory. Returns bool StripFileName(string) Removes the marker from a marked file name (X.default.mp → X.mp); an unmarked name passes through. public static string StripFileName(string fileName) Parameters fileName string File name without directory. Returns string StripFolderName(string) Removes the marker from a marked folder name (CT-350.default → CT-350); an unmarked name passes through. public static string StripFolderName(string folderName) Parameters folderName string Folder name without directory. Returns string" }, "api/Hi.Common.ResourceLayout.html": { "href": "api/Hi.Common.ResourceLayout.html", "title": "Class ResourceLayout | HiAPI-C# 2025", "summary": "Class ResourceLayout Namespace Hi.Common Assembly HiNc.dll Provides the relative folder paths that make up the shipped resource tree. public static class ResourceLayout Inheritance object ResourceLayout Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields CoatingMaterialFolder Gets the path to the coating material resource folder. public const string CoatingMaterialFolder = \"Resource/CoatingMaterial\" Field Value string ControllerFolder Gets the path to the CNC controller resource folder, holding the brand SoftNcRunner presets written by ControllerPresetWriter. public const string ControllerFolder = \"Resource/Controller\" Field Value string CutterFolder Gets the path to the cutter resource folder. public const string CutterFolder = \"Resource/Cutter\" Field Value string CuttingParameterFolder Gets the path to the cutting parameter resource folder. public const string CuttingParameterFolder = \"Resource/CuttingParameter\" Field Value string HolderFolder Gets the path to the holder resource folder. public const string HolderFolder = \"Resource/Holder\" Field Value string MachineToolFolder Gets the path to the machine tool resource folder. public const string MachineToolFolder = \"Resource/MachineTool\" Field Value string ResourceFolder Gets the path to the main resource folder. public const string ResourceFolder = \"Resource\" Field Value string SpindleCapabilityFolder Gets the path to the spindle capability resource folder. public const string SpindleCapabilityFolder = \"Resource/SpindleCapability\" Field Value string StructureMaterialFolder Gets the path to the structure material resource folder. public const string StructureMaterialFolder = \"Resource/StructureMaterial\" Field Value string WorkpieceMaterialFolder Gets the path to the workpiece material resource folder. public const string WorkpieceMaterialFolder = \"Resource/WorkpieceMaterial\" Field Value string" }, "api/Hi.Common.ResourceUtil.html": { "href": "api/Hi.Common.ResourceUtil.html", "title": "Class ResourceUtil | HiAPI-C# 2025", "summary": "Class ResourceUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for working with resource managers and localized strings, and the home of the attribute-declared command vocabulary: the CultureTextAttribute declarations of an assembly, exposed as “type/member + culture → text” queries and as ICommandTextSource instances, with GUI-layer overrides layered on top (SetTextOverride(string, string, string)). public static class ResourceUtil Inheritance object ResourceUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GenTextSource(CultureInfo, params Type[]) Generates an ICommandTextSource carrying culture, resolving keys against the CultureTextAttribute declarations of the vocabTypes' assemblies plus the registered overrides — the engine-default localizer a caller injects into title-composing commands. public static ICommandTextSource GenTextSource(CultureInfo culture, params Type[] vocabTypes) Parameters culture CultureInfo Culture the source carries; null takes the current UI culture. vocabTypes Type[] Types anchoring the assemblies whose declarations feed the source. Returns ICommandTextSource The text source. GetStringOrDefault(ResourceManager, string) get string by the name as key from resourceManager The default value is the name itself. public static string GetStringOrDefault(this ResourceManager resourceManager, string name) Parameters resourceManager ResourceManager name string Returns string GetStringOrDefault(ResourceManager, string, CultureInfo) get string by the name as key from resourceManager The default value is the name itself. public static string GetStringOrDefault(this ResourceManager resourceManager, string name, CultureInfo cultureInfo) Parameters resourceManager ResourceManager name string cultureInfo CultureInfo Returns string GetText(MemberInfo, CultureInfo) The text of member's vocabulary key in culture — the “type/member + culture → text” query. Resolution walks the culture's parent chain; on each level a registered override (SetTextOverride(string, string, string)) outranks the member assembly's CultureTextAttribute declaration. With no match the key itself — the English default — is returned. public static string GetText(MemberInfo member, CultureInfo culture) Parameters member MemberInfo The type or member owning the vocabulary key. culture CultureInfo Wanted culture; null takes the current UI culture. Returns string The culture's text, or the key itself. SetTextOverride(string, string, string) Registers a GUI-layer text for a vocabulary key in one culture. An override outranks the assembly's own CultureTextAttribute declaration in that culture, and may add a culture the assembly never declared. Process-level; typically called once at GUI startup. public static void SetTextOverride(string cultureName, string key, string text) Parameters cultureName string Culture name the text is written in (e.g. zh-Hant). key string Vocabulary key — the English default text. text string The overriding text; null removes the override." }, "api/Hi.Common.RoutineBlocker.html": { "href": "api/Hi.Common.RoutineBlocker.html", "title": "Class RoutineBlocker | HiAPI-C# 2025", "summary": "Class RoutineBlocker Namespace Hi.Common Assembly HiGeom.dll Block the thread to the given delay from the previous block. public class RoutineBlocker : IMakeXmlSource, IDisposable Inheritance object RoutineBlocker Implements IMakeXmlSource 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) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RoutineBlocker() Constructor public RoutineBlocker() RoutineBlocker(TimeSpan) Initializes a new instance of the RoutineBlocker class with the specified period. public RoutineBlocker(TimeSpan period) Parameters period TimeSpan The time period between blocks RoutineBlocker(XElement) Initializes a new instance of the RoutineBlocker class from an XML element. public RoutineBlocker(XElement src) Parameters src XElement The XML element containing the blocker configuration Fields XName Gets the XML element name used for serialization. public static string XName Field Value string Properties Period Delay time between each previous Block(). public TimeSpan Period { get; set; } Property Value TimeSpan Methods Block() Delay the thread. The delay time is Period, counted from the previous Block() to the current Block(). The first function call does no delay. If the time between two Block() is over Period, the function call does no delay. public void Block() 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 HasToBlock() If calling Block() make thread delay, return true; otherwise, false. public bool HasToBlock() Returns bool Has to block IsEnabled() Enable the Block() function. public bool IsEnabled() Returns bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetDisable() Disables the blocker, canceling any pending operations. public void SetDisable() SetEnable(Action) Enable the Block() function. public void SetEnable(Action disablingCallback = null) Parameters disablingCallback Action" }, "api/Hi.Common.SearchResult.html": { "href": "api/Hi.Common.SearchResult.html", "title": "Enum SearchResult | HiAPI-C# 2025", "summary": "Enum SearchResult Namespace Hi.Common Assembly HiGeom.dll Represents the result of a search operation. public enum SearchResult 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 CriticalFound = 2 Indicates that an exact match was found. FoundCeil = 8 Indicates that a value greater than to the target was found. FoundFloor = 4 Indicates that a value less than to the target was found. NotExisted = 1 Indicates that the target value does not exist in the collection." }, "api/Hi.Common.SeqPair-1.html": { "href": "api/Hi.Common.SeqPair-1.html", "title": "Class SeqPair | HiAPI-C# 2025", "summary": "Class SeqPair Namespace Hi.Common Assembly HiGeom.dll Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. public class SeqPair : IEquatable>, IWriteBin Type Parameters T The type of values stored in the sequence pair Inheritance object SeqPair Implements IEquatable> IWriteBin Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) 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 SeqPair() Initializes a new instance of the SeqPair class with default values for previous and current elements. public SeqPair() SeqPair(BinaryReader, Func) Initializes a new instance of the SeqPair class by deserializing from binary data. public SeqPair(BinaryReader reader, Func Generator) Parameters reader BinaryReader The binary reader to read data from Generator Func A function that creates objects of type T from binary data SeqPair(T, T) Initializes a new instance of the SeqPair class with specified previous and current values. public SeqPair(T pre, T cur) Parameters pre T The previous value in the sequence cur T The current value in the sequence Fields cur Gets or sets the current value in the sequence. public T cur Field Value T pre Gets or sets the previous value in the sequence. public T pre Field Value T Methods Equals(SeqPair) Indicates whether the current object is equal to another object of the same type. public bool Equals(SeqPair other) Parameters other SeqPair An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Common.SeqPairUtil.html": { "href": "api/Hi.Common.SeqPairUtil.html", "title": "Class SeqPairUtil | HiAPI-C# 2025", "summary": "Class SeqPairUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for SeqPair operations. public static class SeqPairUtil Inheritance object SeqPairUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Delta(SeqPair) Calculates the difference between current and previous values in a sequence pair. public static T Delta(this SeqPair seq) where T : ISubtractionOperators Parameters seq SeqPair The sequence pair to calculate delta for Returns T The difference between current and previous values Type Parameters T Type that supports subtraction operations" }, "api/Hi.Common.ServerFileExplorerConfig.html": { "href": "api/Hi.Common.ServerFileExplorerConfig.html", "title": "Class ServerFileExplorerConfig | HiAPI-C# 2025", "summary": "Class ServerFileExplorerConfig Namespace Hi.Common Assembly HiGeom.dll Configuration for server file explorer functionality. public class ServerFileExplorerConfig : IEquatable Inheritance object ServerFileExplorerConfig Implements IEquatable Inherited Members object.Equals(object, object) 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 ServerFileExplorerConfig() Initializes a new instance of the ServerFileExplorerConfig class. public ServerFileExplorerConfig() ServerFileExplorerConfig(ServerFileExplorerConfig) Initializes a new instance of the ServerFileExplorerConfig class by copying another instance. public ServerFileExplorerConfig(ServerFileExplorerConfig src) Parameters src ServerFileExplorerConfig The source configuration to copy from Properties ApplyingPostfix Path Postfix for applying to the selected file path. public string ApplyingPostfix { get; set; } Property Value string DefaultFilterTitle Gets or sets the default filter title to use when no filter is selected. public string DefaultFilterTitle { get; set; } Property Value string ExtendedNamedPath Gets or sets the extended named path for the file explorer. public ExtendedNamedPath ExtendedNamedPath { get; set; } Property Value ExtendedNamedPath ExtendedNamedPathList Gets or sets the list of extended named paths available in the file explorer. public List ExtendedNamedPathList { get; set; } Property Value List ExtensionFilterList Gets or sets the list of file extension filters available in the file explorer. public List<(string FilterTitle, string FileExtension)> ExtensionFilterList { get; set; } Property Value List<(string FilterTitle, string FileExtension)> RelativeDirectory Gets or sets the relative directory path for the file explorer. public string RelativeDirectory { get; set; } Property Value string SelectedFileName Gets or sets the currently selected file name. public string SelectedFileName { get; set; } Property Value string Title Gets or sets the title of the file explorer. public string Title { get; set; } Property Value string Methods Equals(ServerFileExplorerConfig) Indicates whether the current object is equal to another object of the same type. public bool Equals(ServerFileExplorerConfig other) Parameters other ServerFileExplorerConfig An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Set(ServerFileExplorerConfig) Copy values from src. public ServerFileExplorerConfig Set(ServerFileExplorerConfig src) Parameters src ServerFileExplorerConfig src Returns ServerFileExplorerConfig this Operators operator ==(ServerFileExplorerConfig, ServerFileExplorerConfig) public static bool operator ==(ServerFileExplorerConfig left, ServerFileExplorerConfig right) Parameters left ServerFileExplorerConfig right ServerFileExplorerConfig Returns bool operator !=(ServerFileExplorerConfig, ServerFileExplorerConfig) public static bool operator !=(ServerFileExplorerConfig left, ServerFileExplorerConfig right) Parameters left ServerFileExplorerConfig right ServerFileExplorerConfig Returns bool" }, "api/Hi.Common.StringLocalizer.html": { "href": "api/Hi.Common.StringLocalizer.html", "title": "Class StringLocalizer | HiAPI-C# 2025", "summary": "Class StringLocalizer Namespace Hi.Common Assembly HiGeom.dll Provides localization functionality for strings using resource managers. public class StringLocalizer Inheritance object StringLocalizer 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) Constructors StringLocalizer(params Type[]) Initializes a new instance of the StringLocalizer class with the specified types. public StringLocalizer(params Type[] types) Parameters types Type[] The types containing resources to be used for localization. Properties ExtendedTypeList Gets a list of extended types that will be used for localization in addition to the primary types. public static List ExtendedTypeList { get; } Property Value List this[string] Gets the localized string for the specified key. public string this[string key] { get; } Parameters key string The key to look up in the resource managers. Property Value string The localized string if found; otherwise, the key itself." }, "api/Hi.Common.StringUtil.html": { "href": "api/Hi.Common.StringUtil.html", "title": "Class StringUtil | HiAPI-C# 2025", "summary": "Class StringUtil Namespace Hi.Common Assembly HiGeom.dll Utility for managing text. public static class StringUtil Inheritance object StringUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ExtractFullFunctionCall(string, string, out string, int) Extracts a complete function call from a string, including the function name and all parameters. public static int ExtractFullFunctionCall(string input, string functionName, out string funcCall, int beginSearchIndex = 0) Parameters input string The input string to search in. functionName string The name of the function to find. funcCall string When this method returns, contains the extracted function call if found; otherwise, null. beginSearchIndex int The index in the input string to begin the search. Returns int The starting index of the function call if found; otherwise, -1. ExtractFunctionArguments(string, string) Extracts the arguments of a function call from a string. public static string ExtractFunctionArguments(string input, string functionName) Parameters input string The input string containing the function call. functionName string The name of the function whose arguments to extract. Returns string The arguments string if the function call is found; otherwise, null. GetPropertyStringIfToStringNotOverloaded(object, bool, bool) Create string by properties. public static string GetPropertyStringIfToStringNotOverloaded(this object src, bool changeLine = false, bool includeNonPublic = false) Parameters src object src changeLine bool change line includeNonPublic bool include non-public properties Returns string string RemoveWhiteSpaceLines(string) Removes lines that contain only whitespace characters from the input string. public static string RemoveWhiteSpaceLines(this string text) Parameters text string The input string to process. Returns string A new string with whitespace-only lines removed. ToDotSplitedString(IEnumerable) Converts a collection of objects to a comma-separated string. public static string ToDotSplitedString(this IEnumerable objects) Parameters objects IEnumerable The collection of objects to convert. Returns string A comma-separated string representation of the objects. Type Parameters T ToUtf8NullTerminatedBytes(string) Converts a string to a null-terminated UTF-8 byte array for P/Invoke. public static byte[] ToUtf8NullTerminatedBytes(this string str) Parameters str string Returns byte[]" }, "api/Hi.Common.TaskUtil.html": { "href": "api/Hi.Common.TaskUtil.html", "title": "Class TaskUtil | HiAPI-C# 2025", "summary": "Class TaskUtil Namespace Hi.Common Assembly HiGeom.dll Utility class for Task-related operations. public static class TaskUtil Inheritance object TaskUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GenTask(Action, TArg) Generates a new Task that will execute the specified function with the given argument. public static Task GenTask(Action func, TArg arg) Parameters func Action The function to execute arg TArg The argument to pass to the function Returns Task A new Task Type Parameters TArg The type of the argument GenTask(Action, TArg, CancellationToken) Generates a new Task that will execute the specified function with the given argument and cancellation token. public static Task GenTask(Action func, TArg arg, CancellationToken cancellationToken) Parameters func Action The function to execute arg TArg The argument to pass to the function cancellationToken CancellationToken The cancellation token Returns Task A new Task Type Parameters TArg The type of the argument GenTask(Func, TArg) Generates a new Task that will execute the specified function with the given argument and return a result. public static Task GenTask(Func func, TArg arg) Parameters func Func The function to execute arg TArg The argument to pass to the function Returns Task A new Task with a result Type Parameters TArg The type of the argument TResult The type of the result GenTask(Func, TArg, CancellationToken) Generates a new Task that will execute the specified function with the given argument and cancellation token, and return a result. public static Task GenTask(Func func, TArg arg, CancellationToken cancellationToken) Parameters func Func The function to execute arg TArg The argument to pass to the function cancellationToken CancellationToken The cancellation token Returns Task A new Task with a result Type Parameters TArg The type of the argument TResult The type of the result GetTaskAwaiterResult(ValueTask) Gets the result of a ValueTask by converting it to a Task and getting its awaiter result. public static void GetTaskAwaiterResult(this ValueTask valueTask) Parameters valueTask ValueTask The ValueTask GetTaskAwaiterResult(ValueTask) Gets the result of a ValueTask with a result by converting it to a Task and getting its awaiter result. public static TResult GetTaskAwaiterResult(this ValueTask valueTask) Parameters valueTask ValueTask The ValueTask with a result Returns TResult The result of the ValueTask Type Parameters TResult The type of the result" }, "api/Hi.Common.TimeCounter.html": { "href": "api/Hi.Common.TimeCounter.html", "title": "Class TimeCounter | HiAPI-C# 2025", "summary": "Class TimeCounter Namespace Hi.Common Assembly HiGeom.dll A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). public static class TimeCounter Inheritance object TimeCounter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Bound(object) Marks a boundary for time measurement for the specified key. public static void Bound(object key) Parameters key object The key that identifies this particular measurement. Remarks This method alternates between starting and stopping time measurement: First call with a key: Starts the timer Second call with the same key: Stops the timer and records the elapsed time Third call: Starts the timer again And so on… The elapsed time is accumulated and the count is incremented each time a measurement completes. Pass(object) Cancels an active time measurement for the specified key without recording the elapsed time. public static void Pass(object key) Parameters key object The key that identifies the measurement to cancel. Remarks If timing has not been started for the specified key, this method has no effect. This is useful for aborting a measurement without affecting statistics. Reset() Resets all time measurements by clearing all accumulated statistics and counters. public static void Reset() Show() Displays all accumulated time measurements to the console. public static void Show() Remarks For each key, this method outputs: The count of measurements The total accumulated time The average time per measurement The key identifier ShowExt(int) Displays time measurements and resets counters periodically based on call frequency. public static void ShowExt(int gap) Parameters gap int The number of calls to this method before showing results and resetting. Remarks This method increments an internal counter with each call. When the counter reaches the specified gap value, it: Displays all measurements (calls Show()) Resets all counters (calls Reset()) Resets the internal counter to zero This is useful for periodic reporting during long-running operations." }, "api/Hi.Common.XmlUtils.FileRefSource-1.html": { "href": "api/Hi.Common.XmlUtils.FileRefSource-1.html", "title": "Class FileRefSource | HiAPI-C# 2025", "summary": "Class FileRefSource Namespace Hi.Common.XmlUtils Assembly HiGeom.dll A class that combines an XML-serializable data object with its source file path. public class FileRefSource : ISourceFile where T : class, IMakeXmlSource Type Parameters T The type of data object that can be serialized to XML Inheritance object FileRefSource Implements ISourceFile 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) Constructors FileRefSource() Initializes a new instance of the XmlSource class. public FileRefSource() FileRefSource(string, T) Initializes a new instance of the XmlSource class with data and optional file path. public FileRefSource(string file, T data) Parameters file string Optional path to the XML source file data T The data object to store Properties Data Gets or sets the main data object being stored. public T Data { get; set; } Property Value T SourceFile Gets or sets the path to the source file. public string SourceFile { get; set; } Property Value string Methods MakeXmlSourceToFileRef(string) Creates an XML representation of the data object with the file path rebased to the specified directory. public XElement MakeXmlSourceToFileRef(string baseDirectory) Parameters baseDirectory string The base directory for resolving relative paths Returns XElement An XML element representing the data object's state Set(FileRefSource) Copies data from another XmlSource instance. public void Set(FileRefSource src) Parameters src FileRefSource The source XmlSource to copy from" }, "api/Hi.Common.XmlUtils.IMakeXmlSource.html": { "href": "api/Hi.Common.XmlUtils.IMakeXmlSource.html", "title": "Interface IMakeXmlSource | HiAPI-C# 2025", "summary": "Interface IMakeXmlSource Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Interface for objects that can be serialized to XML format. public interface IMakeXmlSource Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file." }, "api/Hi.Common.XmlUtils.IToXElement.html": { "href": "api/Hi.Common.XmlUtils.IToXElement.html", "title": "Interface IToXElement | HiAPI-C# 2025", "summary": "Interface IToXElement Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Interface of ToXElement(). Which can be represented by a single XElement. public interface IToXElement 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) Remarks Relative to IMakeXmlSource, the IToXElement don't export file. So no directory information is required. A single XElement represent the object. Methods ToXElement() Get the XElement to represent the object. XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Common.XmlUtils.ProjectApiVersion.html": { "href": "api/Hi.Common.XmlUtils.ProjectApiVersion.html", "title": "Class ProjectApiVersion | HiAPI-C# 2025", "summary": "Class ProjectApiVersion Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Carries the API version read from a project file's XML attribute through the XFactory deserialization pipeline via the object[] res parameter. Consumers retrieve it with res?.OfType().FirstOrDefault(). public class ProjectApiVersion Inheritance object ProjectApiVersion 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) Constructors ProjectApiVersion(Version) Initializes a new instance carrying the specified version. public ProjectApiVersion(Version version) Parameters version Version API version read from the project XML; may be null when the source file did not record a version. Properties Version API version stamped on the source project file at save time. public Version Version { get; } Property Value Version Methods IsOlderThan(Version) Returns true if the source file was saved by an API version older than version. Returns false when the source version is unknown (null) — without the explicit guard, Version's comparison operator ranks a null left operand as OLDEST and every legacy patch would fire on an unversioned file, contradicting this contract that version-gated upgrades rely on. public bool IsOlderThan(Version version) Parameters version Version Returns bool" }, "api/Hi.Common.XmlUtils.SetFileDelegate.html": { "href": "api/Hi.Common.XmlUtils.SetFileDelegate.html", "title": "Delegate SetFileDelegate | HiAPI-C# 2025", "summary": "Delegate SetFileDelegate Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Delegate for setting the file path during XML operations. public delegate void SetFileDelegate(string file) Parameters file string The file path to set 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)" }, "api/Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html": { "href": "api/Hi.Common.XmlUtils.XFactory.XGeneratorDelegate.html", "title": "Delegate XFactory.XGeneratorDelegate | HiAPI-C# 2025", "summary": "Delegate XFactory.XGeneratorDelegate Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Delegate for generating an object from an XML element with relative file path context. public delegate object XFactory.XGeneratorDelegate(XElement src, string baseDirectory, string relFile, IProgress progress, object[] res) Parameters src XElement The source XML element. baseDirectory string The base directory for resolving paths. relFile string The relative file path. progress IProgress Progress reporter for the XML parsing chain. res object[] Additional parameters for generation. Returns object The generated object. 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) Remarks Separating baseDirectory and relFile keeps data packages relocatable: moving the whole base directory only requires updating the directory string, not every internal path." }, "api/Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html": { "href": "api/Hi.Common.XmlUtils.XFactory.XmlExceptionDelegate.html", "title": "Delegate XFactory.XmlExceptionDelegate | HiAPI-C# 2025", "summary": "Delegate XFactory.XmlExceptionDelegate Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Delegate for handling XML exceptions during generation. public delegate void XFactory.XmlExceptionDelegate(string relPath, Exception exception) Parameters relPath string The relative path where the exception occurred. exception Exception The exception that was thrown. 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)" }, "api/Hi.Common.XmlUtils.XFactory.html": { "href": "api/Hi.Common.XmlUtils.XFactory.html", "title": "Class XFactory | HiAPI-C# 2025", "summary": "Class XFactory Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Factory for generating objects from XML elements using registered generator functions. public class XFactory Inheritance object XFactory 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) Remarks Each XFactory instance owns its own Generators registry. A process-wide Default singleton serves the common case (single shared factory across the simulation pipeline); other instances can be created for test isolation or parallel pipelines that need disjoint registries. Types that participate in XML round-trip expose a public static void Reg(XFactory factory = null) method that adds themselves (and chains Reg(factory) on dependents) to the given factory's Generators. Boot roots (e.g. LocalProjectService.Reg()) call the top-level Reg() once at startup with the default factory. The static Gen / GenByChild / GenByFile entry points always read from Default. Callers that need to deserialize from a custom factory's registry must look up the delegate via factory.Generators[xname] directly. Properties Default Process-wide default factory used by the static Gen family. Reg-style methods register here when called with no explicit factory argument. public static XFactory Default { get; } Property Value XFactory Generators XML-name → generator-function map for this factory instance. Populated by each type's Reg(this) call. Concurrent so that parallel Reg calls (e.g. independent test classes each booting the registration graph) can TryAdd without corrupting the map. public ConcurrentDictionary Generators { get; } Property Value ConcurrentDictionary Methods GenByChild(XElement, string, IProgress, bool, object[]) Generates an object of type T from the first child element (discards relative file path). public static T GenByChild(XElement src, string baseDirectory, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters src XElement baseDirectory string progress IProgress enableRebase bool res object[] Returns T Type Parameters T GenByChild(XElement, string, out string, IProgress, bool, object[]) Generates an object of type T from the first child element of the provided XML element. public static T GenByChild(XElement src, string baseDirectory, out string relFile, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters src XElement baseDirectory string relFile string progress IProgress enableRebase bool res object[] Returns T Type Parameters T GenByFile(string, string, IProgress, bool, object[]) Generates an object of type T from an XML file. public static T GenByFile(string baseDirectory, string relFile, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters baseDirectory string relFile string progress IProgress enableRebase bool res object[] Returns T Type Parameters T GenFileRefSourceByChild(XElement, string, IProgress, bool, object[]) Generates a FileRefSource from the first child element. public static FileRefSource GenFileRefSourceByChild(XElement src, string baseDirectory, IProgress progress, bool enableRebase = true, object[] res = null) where T : class, IMakeXmlSource Parameters src XElement baseDirectory string progress IProgress enableRebase bool res object[] Returns FileRefSource Type Parameters T GenFileRefSourceByFile(string, string, IProgress, bool, object[]) Generates a FileRefSource from an XML file. public static FileRefSource GenFileRefSourceByFile(string baseDirectory, string relFile, IProgress progress, bool enableRebase = true, object[] res = null) where T : class, IMakeXmlSource Parameters baseDirectory string relFile string progress IProgress enableRebase bool res object[] Returns FileRefSource Type Parameters T GenFileRefSource(XElement, string, IProgress, bool, object[]) Generates a FileRefSource from an XML element. public static FileRefSource GenFileRefSource(XElement src, string baseDirectory, IProgress progress, bool enableRebase = true, object[] res = null) where T : class, IMakeXmlSource Parameters src XElement baseDirectory string progress IProgress enableRebase bool res object[] Returns FileRefSource Type Parameters T GenListSkippingUnloadable(IEnumerable, string, IProgress, bool, object[]) Deserializes each element of elements into a T, skipping — instead of throwing on — any element whose XName is not registered (e.g. a renamed or removed component) or whose generator throws. Each skipped element is reported to progress as a Warning. Use when a partially-loadable list (such as a saved pipeline whose schema has drifted while a feature is in development) is preferable to aborting the whole load. public static List GenListSkippingUnloadable(IEnumerable elements, string baseDirectory, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters elements IEnumerable baseDirectory string progress IProgress enableRebase bool res object[] Returns List Type Parameters T Gen(XElement, string, IProgress, bool, object[]) Generates an object of type T from an XML element (discards relative file path). public static T Gen(XElement src, string baseDirectory, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters src XElement baseDirectory string progress IProgress enableRebase bool res object[] Returns T Type Parameters T Gen(XElement, string, out string, IProgress, bool, object[]) Generates an object of type T from an XML element using Default. public static T Gen(XElement src, string baseDirectory, out string relFile, IProgress progress, bool enableRebase = true, object[] res = null) where T : class Parameters src XElement baseDirectory string relFile string progress IProgress enableRebase bool res object[] Returns T Type Parameters T" }, "api/Hi.Common.XmlUtils.XmlUtil.html": { "href": "api/Hi.Common.XmlUtils.XmlUtil.html", "title": "Class XmlUtil | HiAPI-C# 2025", "summary": "Class XmlUtil Namespace Hi.Common.XmlUtils Assembly HiGeom.dll Utility for managing XML. public static class XmlUtil Inheritance object XmlUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields SelfHostName Constant representing self-hosted XML content. Used for legacy compatibility. public const string SelfHostName = \"SelfHost\" Field Value string XmlFileXName The XML element name used for file references. public const string XmlFileXName = \"XmlSource\" Field Value string Methods GetDictionaryByXmlSource(XElement, string, IProgress, bool) Deserializes a dictionary of objects from an XML element. public static Dictionary GetDictionaryByXmlSource(this XElement src, string baseDirectory, IProgress progress, bool enableRebase = true) where T : class Parameters src XElement The source XML element containing the serialized dictionary baseDirectory string The base directory for resolving paths progress IProgress Optional progress reporter for the XML parsing chain enableRebase bool Whether to rebase the directory to the file's location Returns Dictionary A dictionary containing the deserialized objects Type Parameters T The type of objects to deserialize into the dictionary GetFirstChildElement(XElement) Gets the first child element of the source XElement. public static XElement GetFirstChildElement(this XElement src) Parameters src XElement The source XElement Returns XElement The first child element, or null if no children exist GetNameNoteXElementList(INameNote) Creates a list of XML elements representing the name and note properties of an INameNote object. public static List GetNameNoteXElementList(this INameNote src) Parameters src INameNote The source INameNote object Returns List A list of XML elements containing the name and note GetOrDefault(XElement, string, T) If xpath exist, return value by xpath ; Otherwise, return defaultValue. The xpath must indicates solely one XElement. public static T GetOrDefault(this XElement src, string xpath, T defaultValue) where T : IConvertible Parameters src XElement local root element xpath string xpath defaultValue T default value Returns T If xpath exist, return value by xpath ; Otherwise, return defaultValue. Type Parameters T type of defaultValue LoadFromFileRef(XElement, string, out string) Unwraps a file reference XML element to load its actual content. public static XElement LoadFromFileRef(this XElement src, string baseDirectory, out string relFile) Parameters src XElement The source XML element that may be a file reference baseDirectory string The base directory for resolving paths relFile string Output parameter that receives the relative file path if src is a file reference, or null otherwise Returns XElement If src is a file reference element, returns the XML content loaded from the referenced file; otherwise, returns the original element LoadWithFileRefSupport(XElement, string, SetFileDelegate) Unwraps an XML element if it contains a file reference element. public static XElement LoadWithFileRefSupport(this XElement src, string baseDirectory, SetFileDelegate setFileAction) Parameters src XElement The source XML element that may contain a file reference baseDirectory string The base directory for resolving paths setFileAction SetFileDelegate Action to execute with the file path, or null if no file reference is found Returns XElement If the source element contains a file reference, returns the XML content loaded from the referenced file; otherwise, returns the original element MakeXmlSourceToFile(IMakeXmlSource, string, bool) Creates an XML source file from the provided source at the specified file path. public static void MakeXmlSourceToFile(this IMakeXmlSource src, string filePath, bool exhibitionOnly = false) Parameters src IMakeXmlSource The source that implements IMakeXmlSource interface. filePath string The path where the XML file will be created. exhibitionOnly bool See MakeXmlSource(string, string, bool) for parameter description. MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) Creates an XML representation of an object and optionally saves it to a file with path rebasing. public static XElement MakeXmlSourceToFileRef(this IMakeXmlSource src, string baseDirectory, string relFile, bool exhibitionOnly) Parameters src IMakeXmlSource The source object to serialize baseDirectory string The base directory for resolving paths relFile string The relative file path to save the XML to, or null to not save to a file exhibitionOnly bool See MakeXmlSource(string, string, bool) for parameter description. Returns XElement If relFile is null or empty, returns the XML representation of the object; otherwise, saves the XML to the specified file and returns a file reference element MakeXmlSource(IDictionary, string, bool) Creates an XML representation of a dictionary of XML-serializable objects. public static XElement MakeXmlSource(this IDictionary dictionary, string baseDirectory, bool exhibitionOnly) where T : IMakeXmlSource Parameters dictionary IDictionary The dictionary to serialize baseDirectory string The base directory for resolving paths exhibitionOnly bool See MakeXmlSource(string, string, bool) for parameter description. Returns XElement An XML element containing the serialized dictionary Type Parameters T The type of objects in the dictionary, must implement IMakeXmlSource SaveToByteArrayAsync(IMakeXmlSource, string) Asynchronously saves an XML source to a byte array. public static Task SaveToByteArrayAsync(this IMakeXmlSource src, string baseDirectory) Parameters src IMakeXmlSource The XML source to save baseDirectory string The base directory for resolving paths Returns Task A byte array containing the serialized XML data SaveToFileRef(XElement, string, string, bool) Wraps an XML element in a file reference element or returns it as-is. public static XElement SaveToFileRef(this XElement src, string baseDirectory, string sourceFile, bool exhibitionOnly) Parameters src XElement The source XML element to wrap baseDirectory string The base directory for resolving paths sourceFile string The relative file path to save the element to, or null to return the element as-is exhibitionOnly bool See MakeXmlSource(string, string, bool) for parameter description. Returns XElement If sourceFile is null, returns the original element; otherwise, saves the element to the specified file and returns a file reference element SetNameNote(INameNote, XElement) Sets the name and note properties of an INameNote object from an XML element. public static void SetNameNote(this INameNote dst, XElement src) Parameters dst INameNote The destination INameNote object to update src XElement The source XML element containing the name and note values SetOrGenerate(XElement, string, T, string) Sets a value at the specified XPath, creating the path if it doesn't exist. public static void SetOrGenerate(this XElement src, string xpath, T value, string comment = null) where T : IConvertible Parameters src XElement The source XElement xpath string The XPath to set the value at value T The value to set comment string Optional comment to add above the element Type Parameters T The type of value to set" }, "api/Hi.Common.XmlUtils.html": { "href": "api/Hi.Common.XmlUtils.html", "title": "Namespace Hi.Common.XmlUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Common.XmlUtils Classes FileRefSource A class that combines an XML-serializable data object with its source file path. ProjectApiVersion Carries the API version read from a project file's XML attribute through the XFactory deserialization pipeline via the object[] res parameter. Consumers retrieve it with res?.OfType().FirstOrDefault(). XFactory Factory for generating objects from XML elements using registered generator functions. XmlUtil Utility for managing XML. Interfaces IMakeXmlSource Interface for objects that can be serialized to XML format. IToXElement Interface of ToXElement(). Which can be represented by a single XElement. Delegates SetFileDelegate Delegate for setting the file path during XML operations. XFactory.XGeneratorDelegate Delegate for generating an object from an XML element with relative file path context. XFactory.XmlExceptionDelegate Delegate for handling XML exceptions during generation." }, "api/Hi.Common.html": { "href": "api/Hi.Common.html", "title": "Namespace Hi.Common | HiAPI-C# 2025", "summary": "Namespace Hi.Common Classes BinIoUtil Utility class for binary I/O operations. BitUtil Utility for bit control for integer. BlockingTimer Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. BytesUtil Utility class for byte array operations and memory size conversions. ConcurrentTimeCounter Thread-safe utility for measuring and tracking execution time across multiple tasks. ConsoleUtil Utility class for console window operations. CppLogUtil Internal Use Only. CultureTextAttribute Declares one culture's text for one vocabulary key on the member carrying the attribute — the static wording of command titles and labels, owned by the declaring library as a DEFAULT: a GUI layer may override it or add cultures the library never declared (see SetTextOverride(string, string, string)), and a culture left undeclared is not an error — lookups fall back toward the English key. The key defaults to the member's own display name: its DisplayNameAttribute value when present, otherwise the member name spaced into words (SpacePascalWords(string)). Set Key to declare a word the member does not itself name (a shared switch word, a mode label). Apply the attribute once per culture. CultureUtil The English culture the engine formats and parses with, and the one call that pins a thread to it. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. IndexSegment Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. IntegerKeyDictionaryConverter Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. IntegerKeyDictionaryConverter Generic version of IntegerKeyDictionaryConverter that works with a specific value type. InternalException Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. InvokeUtil Utility class for method invocation operations. JsonUtil Helper utilities for reading and writing JSON files. LooseRunner Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. ManualUtil Utility class for handling manual and documentation files with culture support. MaskUtil Utility for bits masking. NameUtil Utility class for handling object names and display names. PacePlayee Represents an entity that can be controlled by the pace player. PacePlayer Controls the pace execution of a task. Pair Editable pair values. ProgressFraction Represents a progress report implementation. Also exposes an IMessage view (explicitly implemented) so a progress fraction can ride the unified message channel uniformly alongside SimpleMessage / NcDiagnostic: Progress + System, with Msg as the notification and Detail as the detail payload. Range Range from Min to Max. ResourceDefaultMarker File-name convention that marks a shipped resource item as a system-owned default: a file carries the token before its final extension (AlTiBN.default.CoatingMaterial), a folder-shaped resource carries it as a folder-name suffix (MachineTool/Table-B1.default/) with the files inside left untouched. ResourceLayout Provides the relative folder paths that make up the shipped resource tree. ResourceUtil Utility class for working with resource managers and localized strings, and the home of the attribute-declared command vocabulary: the CultureTextAttribute declarations of an assembly, exposed as “type/member + culture → text” queries and as ICommandTextSource instances, with GUI-layer overrides layered on top (SetTextOverride(string, string, string)). RoutineBlocker Block the thread to the given delay from the previous block. SeqPairUtil Utility class for SeqPair operations. SeqPair Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. ServerFileExplorerConfig Configuration for server file explorer functionality. StringLocalizer Provides localization functionality for strings using resource managers. StringUtil Utility for managing text. TaskUtil Utility class for Task-related operations. TimeCounter A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). Interfaces IAbstractNote Interface for objects that provide an abstract description or note. IBinaryIo Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. IClearCache Interface for objects that can clear their internal cache. ICommandTextSource A culture-bearing vocabulary commands compose their titles and labels from: it maps a vocabulary key — the English default text — onto that culture's text. The CALLER picks the source, so the presentation layer owns the language (no thread culture involved); the command keeps its composition and degradation rules. Presentation layers can implement their own source or take the engine-default one from GenTextSource(CultureInfo, params Type[]) ([CultureText] declarations overlaid by SetTextOverride(string, string, string) registrations). IDuplicate Interface for objects that support deep cloning/duplication. IGetQuantityByKey Interface for retrieving a quantity value using a string key. IGetSelectionName Interface for objects that can provide a name for selection purposes. INameNote Interface for objects that have a name and note property. IPreferredFileName Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. IProgressFraction Interface for progress reporting functionality. ISourceFile Interface for objects that have a source file. IToPresentDto Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization. IUpdateByContent Interface for objects that can update themselves based on their content. IUriGetter Interface for retrieving a URI string. IWriteBin Interface for writing binary data. Enums SearchResult Represents the result of a search operation. Delegates CppLogUtil.LogDelegate Internal Use Only. LooseRunner.MergedCancellationTokenRun Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token." }, "api/Hi.CutterLocations.ClPath.ClCircleArc.html": { "href": "api/Hi.CutterLocations.ClPath.ClCircleArc.html", "title": "Class ClCircleArc | HiAPI-C# 2025", "summary": "Class ClCircleArc Namespace Hi.CutterLocations.ClPath Assembly HiMech.dll Cutter location path of circle arc. public class ClCircleArc : IClPath Inheritance object ClCircleArc Implements IClPath Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ClCircleArc(DVec3d, DVec3d, DVec3d, int) Initializes a new instance of the ClCircleArc class. public ClCircleArc(DVec3d circleCenterAxis, DVec3d begin, DVec3d end, int circleNum = 1) Parameters circleCenterAxis DVec3d The axis of the circle arc. begin DVec3d The starting point and direction. end DVec3d The ending point and direction. circleNum int Circle num which include an arc. The default is 1. Properties AngleOnAxialTilt Gets the angle of axial tilt. public double AngleOnAxialTilt { get; } Property Value double AngleOnProj Gets the angle of projection. public double AngleOnProj { get; } Property Value double AxialMove Gets the movement along the axis. public Vec3d AxialMove { get; } Property Value Vec3d AxialTiltAxis Gets the axis of axial tilt. public Vec3d AxialTiltAxis { get; } Property Value Vec3d Begin Gets the starting point and direction. public DVec3d Begin { get; } Property Value DVec3d CircleCenterAxis Gets the axis of the circle arc. public DVec3d CircleCenterAxis { get; } Property Value DVec3d CircleNum Gets the number of complete circles included in the arc. public int CircleNum { get; } Property Value int CurveLength Gets the approximate length of the curve. public double CurveLength { get; } Property Value double End Gets the ending point and direction. public DVec3d End { get; } Property Value DVec3d Length public double Length { get; } Property Value double RadiusBegin Gets the radius at the beginning of the arc. public double RadiusBegin { get; } Property Value double RadiusEnd Gets the radius at the end of the arc. public double RadiusEnd { get; } Property Value double Methods At(double) NP (Normal and Point) at the given ratio (0~1). public DVec3d At(double ratio) Parameters ratio double ratio of the path (0~1) Returns DVec3d NP (Normal and Point) GetBegin() Path begin. public DVec3d GetBegin() Returns DVec3d path begin GetEnd() Path end. public DVec3d GetEnd() Returns DVec3d path end ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.CutterLocations.ClPath.ClLinear.html": { "href": "api/Hi.CutterLocations.ClPath.ClLinear.html", "title": "Class ClLinear | HiAPI-C# 2025", "summary": "Class ClLinear Namespace Hi.CutterLocations.ClPath Assembly HiMech.dll Cutter location path by linear interpolation. public class ClLinear : IClPath Inheritance object ClLinear Implements IClPath Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ClLinear(DVec3d, DVec3d) Initializes a new instance of the ClLinear class with specified begin and end points. public ClLinear(DVec3d begin, DVec3d end) Parameters begin DVec3d The beginning point and normal vector. end DVec3d The ending point and normal vector. Properties Arrow Arrow from being.p to end.p. public Vec3d Arrow { get; } Property Value Vec3d Begin Begin of the path. public DVec3d Begin { get; set; } Property Value DVec3d End End of the path. public DVec3d End { get; set; } Property Value DVec3d Length Length of the Arrow. public double Length { get; } Property Value double NormalAxisDelta The axis-angle representation of the normal vector change from begin to end. public AxisAngle4d NormalAxisDelta { get; } Property Value AxisAngle4d Methods At(double) Gets the interpolated point and normal vector at the specified ratio along the path. public DVec3d At(double ratio) Parameters ratio double The interpolation ratio between 0 and 1. Returns DVec3d The interpolated point and normal vector. GetBegin() Gets the beginning point and normal vector of the path. public DVec3d GetBegin() Returns DVec3d The beginning point and normal vector. GetEnd() Gets the ending point and normal vector of the path. public DVec3d GetEnd() Returns DVec3d The ending point and normal vector. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.CutterLocations.ClPath.IClPath.html": { "href": "api/Hi.CutterLocations.ClPath.IClPath.html", "title": "Interface IClPath | HiAPI-C# 2025", "summary": "Interface IClPath Namespace Hi.CutterLocations.ClPath Assembly HiMech.dll Cutter location path. public interface IClPath 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) Methods At(double) NP (Normal and Point) at the given ratio (0~1). DVec3d At(double ratio) Parameters ratio double ratio of the path (0~1) Returns DVec3d NP (Normal and Point) GetBegin() Path begin. DVec3d GetBegin() Returns DVec3d path begin GetEnd() Path end. DVec3d GetEnd() Returns DVec3d path end" }, "api/Hi.CutterLocations.ClPath.html": { "href": "api/Hi.CutterLocations.ClPath.html", "title": "Namespace Hi.CutterLocations.ClPath | HiAPI-C# 2025", "summary": "Namespace Hi.CutterLocations.ClPath Classes ClCircleArc Cutter location path of circle arc. ClLinear Cutter location path by linear interpolation. Interfaces IClPath Cutter location path." }, "api/Hi.CutterLocations.ClStrips.ClStrip.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStrip.html", "title": "Class ClStrip | HiAPI-C# 2025", "summary": "Class ClStrip Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. public class ClStrip : IDisplayee, IExpandToBox3d, IDisposable Inheritance object ClStrip 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) BoundSelectorUtil.GetStepRange(ClStrip, BoundSelectorPair) DispUtil.Display(IDisplayee, Bind, Mat4d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ClStrip(int) Initializes a new instance of the ClStrip class. public ClStrip(int cap = 2048) Parameters cap int The initial capacity of the strip Fields InternalMachiningStepSelected Host wiring hook invoked when a strip position selects a machining step (low-level; prefer MachiningStepSelected for UI). public Action InternalMachiningStepSelected Field Value Action slice_distance The distance between slices for efficient rendering. public const int slice_distance = 8192 Field Value int Properties AbsDispEnd Gets the absolute display end position. If the display end is set to -1, returns the total number of positions. public int AbsDispEnd { get; } Property Value int CallRefreshDrawing internal use public bool CallRefreshDrawing { get; } Property Value bool ChartRange Synchoronized Chart Time Range. Always not null. The members' value is possible to be null for the un-available status. public Range ChartRange { get; } Property Value Range IsKeepingDispAlive Keep the disp range to at least two dots while the stripe length enough. public bool IsKeepingDispAlive { get; set; } Property Value bool IsShowDot Gets or sets whether to display dots at each position. public bool IsShowDot { get; set; } Property Value bool LastRefreshHadUncoveredRecolor True when the last RefreshDrawingInRendering(bool) re-stamped at least one position whose attachment is not covered by the native color table. Only then do stale colors remain baked in the workpiece display caches, so the whole-tree clean after the re-stamp is still required; covered recolors reach the screen through the table without any clean. public bool LastRefreshHadUncoveredRecolor { get; } Property Value bool StripPoses Gets the list of strip positions. Do not add or remove elements directly. public SynList StripPoses { get; } Property Value SynList StripPosesClearLock Gets the lock for thread-safe operations on strip positions. public ReaderWriterLockSlim StripPosesClearLock { get; } Property Value ReaderWriterLockSlim StripPosesCount Gets the thread-safe count of strip positions. public int StripPosesCount { get; } Property Value int StripPosesRetirer Optional sink for retiring abandoned ClStripPos when the strip is cleared. Injected by the owner (MachiningActRunner) to route through WorkpieceService.RetireAttachments — detach the poses from the live runtime tree under its render barrier, then free them in the background. When null, the poses are freed directly on CubeTree's background chain. public Action> StripPosesRetirer { get; set; } Property Value Action> Methods Add(object, DVec3d) Adds a new position to the strip. public ClStripPos Add(object state, DVec3d programCl) Parameters state object The state object associated with the position programCl DVec3d The cutter location Returns ClStripPos The newly created strip position Clear(object) Clears all strip positions and resets the display state. public void Clear(object sender) Parameters sender object The object that initiated this clear operation Display(Bind) Displays the strip. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of the resources used by this strip. public void Dispose() Dispose(bool) Disposes of the resources used by this strip. protected virtual void Dispose(bool disposing) Parameters disposing bool Whether this is being called from Dispose ExpandToBox3d(Box3d) Expands the given box to include all strip positions. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand GetDispBegin() Gets the current display begin position. public int GetDispBegin() Returns int The display begin position GetDispEnd() Gets the current display end position. A value of -1 indicates that the display should follow the end of the strip. public int GetDispEnd() Returns int The display end position GetEnteredPos() Gets the currently entered position. public ClStripPos GetEnteredPos() Returns ClStripPos The entered position GetFittingView(Mat4d, Mat4d) Gets a scaled fitting view based on the strip display range. public Mat4d GetFittingView(Mat4d sketchView, Mat4d clStripZeroToRoot = null) Parameters sketchView Mat4d The sketch view matrix clStripZeroToRoot Mat4d The transformation from strip zero to root Returns Mat4d The scaled fitting view matrix GetSelectedPos() Gets the currently selected position. public ClStripPos GetSelectedPos() Returns ClStripPos The selected position GetStripPos(int, bool) Gets a strip position by index. public ClStripPos GetStripPos(int index, bool isLocked = false) Parameters index int The index of the position isLocked bool Whether the strip positions are already locked Returns ClStripPos The strip position at the specified index LimitChartRange(bool) Limits the chart range based on the time range of the strip positions. public void LimitChartRange(bool isLocked) Parameters isLocked bool Whether the strip positions are locked. RefreshDrawing() Marks the drawing for refresh. public void RefreshDrawing() RefreshDrawingInRendering(bool) internal use public void RefreshDrawingInRendering(bool isLocked) Parameters isLocked bool SetDispBegin(int, object) Sets the display begin position. public void SetDispBegin(int value, object caller) Parameters value int The new display begin position caller object The object that initiated this change SetDispEnd(int, object) Sets the display end position. A value of -1 indicates that the display should follow the end of the strip. public void SetDispEnd(int value, object caller) Parameters value int The new display end position caller object The object that initiated this change SetDispSegment(int, int, object) Sets the display range for the cutter location strip. This method sets both the beginning and ending positions of the display range. public void SetDispSegment(int beginIndex, int endIndex, object caller) Parameters beginIndex int The beginning index of the display range. Will be clamped to [0, StripPoses.Count - 1]. endIndex int The ending index of the display range. A value of -1 indicates that the display should follow the end of the strip. Values greater than or equal to StripPoses.Count will be converted to -1. Will be clamped to [-1, StripPoses.Count]. caller object The caller object that requests the display range change. Used for event notifications. SetEnteredPos(ClStripPos, object) Sets the currently entered position. public void SetEnteredPos(ClStripPos value, object sender) Parameters value ClStripPos The new entered position sender object The object that initiated this change SetSelectedPos(ClStripPos, object) Sets the currently selected position. public void SetSelectedPos(ClStripPos value, object sender) Parameters value ClStripPos The new selected position sender object The object that initiated this change ShrinkAttachmentMemory(CancellationToken?) Shrinks the attachment memory for all positions. public void ShrinkAttachmentMemory(CancellationToken? cancellationToken = null) Parameters cancellationToken CancellationToken? StripPosesThreadSafeSelect(Func) Thread-safe selection of strip positions. public List StripPosesThreadSafeSelect(Func func) Parameters func Func The function to transform each strip position Returns List A list of transformed strip positions Type Parameters T The type of the selected data UpdateDispSegmentByChartRange(object) Updates the display segment based on the current chart range. public void UpdateDispSegmentByChartRange(object caller) Parameters caller object The caller object that triggered the update. Events AbsDispEndChanged Event raised when the absolute display end position changes. public event EventHandler AbsDispEndChanged Event Type EventHandler Cleared Event raised after Clear(object) has emptied StripPoses, so list-style consumers (e.g. a step table) can reset without polling. public event Action Cleared Event Type Action DispBeginChanged Event raised when the display begin position changes. public event EventHandler DispBeginChanged Event Type EventHandler DispEndChanged Event raised when the display end position changes. public event EventHandler DispEndChanged Event Type EventHandler DrawingRefreshed Event raised after the strip drawing has been refreshed — pos colors re-stamped from their states and the drawing slices rebuilt (see RefreshDrawingInRendering(bool)). Subscribers that cache colors baked from the strip attachments (e.g. a meshed workpiece's display cache) should invalidate on this event. public event EventHandler DrawingRefreshed Event Type EventHandler MachiningStepSelected The same effecting position as PosSelected but with more convenient arguments for the end-user. public event Action MachiningStepSelected Event Type Action PosAdded Event raised when a new position is added to the strip. public event Action PosAdded Event Type Action PosEntered Event raised when the mouse enters a position. public event EventHandler PosEntered Event Type EventHandler PosSelected Event raised when a position is selected. public event EventHandler PosSelected Event Type EventHandler StaticPosSelected Static event raised when any position is selected. public static event EventHandler StaticPosSelected Event Type EventHandler" }, "api/Hi.CutterLocations.ClStrips.ClStripPos.html": { "href": "api/Hi.CutterLocations.ClStrips.ClStripPos.html", "title": "Class ClStripPos | HiAPI-C# 2025", "summary": "Class ClStripPos Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Represents a position in a cutter location strip, containing program coordinates and state information. public class ClStripPos : CbtrPickable, IGetPickable, IDisposable, IGetProgramCl, IMotionStepIndex Inheritance object Pickable CbtrPickable ClStripPos Implements IGetPickable IDisposable IGetProgramCl IMotionStepIndex Inherited Members CbtrPickable.Rgb CbtrPickable.IsColorTableCovered CbtrPickable.AttachmentPriority CbtrPickable.Highlight(bool) CbtrPickable.CleanAttachedCbtrNodesDrawingCache() CbtrPickable.ShrinkToFitNodeMap() Pickable.Pickables Pickable.mark Pickable.PickingID Pickable.GetPickable() Pickable.Dispose() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Index Gets the index of this position in the strip. This is also the step's execution-order ordinal — exposed via StepIndex. public int Index { get; } Property Value int MachiningStep Gets or sets the milling step associated with this position. This is a convenience property that casts the State to MachiningStep. public MachiningStep MachiningStep { get; set; } Property Value MachiningStep ProgramCl Gets the program coordinates of this position. public DVec3d ProgramCl { get; } Property Value DVec3d State Gets or sets the state object associated with this position. When the state changes, the color is automatically refreshed. public object State { get; set; } Property Value object Methods Display(Bind) public void Display(Bind bind) Parameters bind Bind Dispose(bool) protected override void Dispose(bool disposing) Parameters disposing bool GetLastTime(bool) If time is not set, return the time from the last setted step. public TimeSpan? GetLastTime(bool isLocked = false) Parameters isLocked bool Returns TimeSpan? GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL OnKeyDown(key_event_t, DispEngine) Behavior on key down. public override void OnKeyDown(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnKeyUp(key_event_t, DispEngine) Behavior on key up public override void OnKeyUp(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnMouseDown(mouse_button_event_t, DispEngine) Behavior on mouse down public override void OnMouseDown(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine 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 OnMouseMove(mouse_move_event_t, DispEngine) Behavior on mouse move public override void OnMouseMove(mouse_move_event_t e, DispEngine dispEngine) Parameters e mouse_move_event_t event dispEngine DispEngine display engine OnMouseUp(mouse_button_event_t, DispEngine) Behavior on mouse up public override void OnMouseUp(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine OnMouseWheel(mouse_wheel_event_t, DispEngine) Behavior on mouse wheel public override void OnMouseWheel(mouse_wheel_event_t e, DispEngine dispEngine) Parameters e mouse_wheel_event_t event dispEngine DispEngine display engine ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.CutterLocations.ClStrips.RgbFunc.html": { "href": "api/Hi.CutterLocations.ClStrips.RgbFunc.html", "title": "Delegate RgbFunc | HiAPI-C# 2025", "summary": "Delegate RgbFunc Namespace Hi.CutterLocations.ClStrips Assembly HiMech.dll Delegate for getting RGB color from a source object. public delegate Vec3d RgbFunc(object src) Parameters src object The source object to get RGB from Returns Vec3d RGB color vector 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)" }, "api/Hi.CutterLocations.ClStrips.html": { "href": "api/Hi.CutterLocations.ClStrips.html", "title": "Namespace Hi.CutterLocations.ClStrips | HiAPI-C# 2025", "summary": "Namespace Hi.CutterLocations.ClStrips Classes ClStrip Represents a CL (Cutter Location) strip for 3D display. This class manages the display and interaction of cutter location points and lines. ClStripPos Represents a position in a cutter location strip, containing program coordinates and state information. Delegates RgbFunc Delegate for getting RGB color from a source object." }, "api/Hi.CutterLocations.IGetProgramCl.html": { "href": "api/Hi.CutterLocations.IGetProgramCl.html", "title": "Interface IGetProgramCl | HiAPI-C# 2025", "summary": "Interface IGetProgramCl Namespace Hi.CutterLocations Assembly HiMech.dll Interface of get CL (Cutter Location). public interface IGetProgramCl 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) Methods GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. DVec3d GetProgramCl() Returns DVec3d CL" }, "api/Hi.CutterLocations.SimpleCl.html": { "href": "api/Hi.CutterLocations.SimpleCl.html", "title": "Class SimpleCl | HiAPI-C# 2025", "summary": "Class SimpleCl Namespace Hi.CutterLocations Assembly HiMech.dll Represents a simple cutter location with position and normal vector. public class SimpleCl : IGetProgramCl Inheritance object SimpleCl Implements IGetProgramCl Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 SimpleCl() Initializes a new instance of the SimpleCl class. public SimpleCl() SimpleCl(SimpleCl) Initializes a new instance of the SimpleCl class by copying from another instance. public SimpleCl(SimpleCl src) Parameters src SimpleCl The source SimpleCl instance to copy from. SimpleCl(DVec3d) Initializes a new instance of the SimpleCl class with the specified cutter location vector. public SimpleCl(DVec3d cl) Parameters cl DVec3d The cutter location vector containing position and normal. Properties Cl Gets or sets the cutter location vector containing position and normal. public DVec3d Cl { get; set; } Property Value DVec3d Methods GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.CutterLocations.html": { "href": "api/Hi.CutterLocations.html", "title": "Namespace Hi.CutterLocations | HiAPI-C# 2025", "summary": "Namespace Hi.CutterLocations Classes SimpleCl Represents a simple cutter location with position and normal vector. Interfaces IGetProgramCl Interface of get CL (Cutter Location)." }, "api/Hi.Disp.Bind.html": { "href": "api/Hi.Disp.Bind.html", "title": "Class Bind | HiAPI-C# 2025", "summary": "Class Bind Namespace Hi.Disp Assembly HiDisp.dll Runtime rendering data for each iteration in rendering loop. It manipulates geometry transformation, such as moving, rotatingand scaling. It also deal with color and picking. A bind_t object is generated by rendering in the every beginning of each rendering iteration. public class Bind : IDisposable Inheritance object Bind Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Fields bind Internal use. public bind_t* bind Field Value bind_t* Properties CanvasHeight DispEngine height. public int CanvasHeight { get; } Property Value int CanvasWidth DispEngine width. public int CanvasWidth { get; } Property Value int IsPickingMode Is current display loop in pick mode. public bool IsPickingMode { get; } Property Value bool ModelMatStack Stack-based Model matrix in MVP convention. public MatStack ModelMatStack { get; } Property Value MatStack PickID ID of picking event. public int PickID { get; set; } Property Value int PixelProjMat Pixel part of Projection matrix in MVP convention. public Mat4d PixelProjMat { get; } Property Value Mat4d See Also ProjMat PixelWidthOnModel Pixel width on model layer. public double PixelWidthOnModel { get; } Property Value double ProjMat Projection matrix in MVP convention. Projection matrix = ScaleProjMat * PixelProjMat. public Mat4d ProjMat { get; } Property Value Mat4d Reciprocal_vs_scale Cached reciprocal value of the scale of ViewMat * ScaleProjMat. public double Reciprocal_vs_scale { get; } Property Value double Rgb External RGB Color for the Drawing which the KeyStamp does not contains C. public Vec3d Rgb { get; set; } Property Value Vec3d ScaleProjMat Scale part of Projection matrix in MVP convention. public Mat4d ScaleProjMat { get; } Property Value Mat4d See Also ProjMat SparkleRate Gets or sets the sparkle rate for rendering effects. public float SparkleRate { get; set; } Property Value float ViewMat View matrix in MVP convention. public Mat4d ViewMat { get; } Property Value Mat4d Methods 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 ~Bind() protected ~Bind() GetMvpBoxRelation(Vec3d, double) get relation between mvpBox and a AABB (bounding with a sphere) public MvpBoxRelation GetMvpBoxRelation(Vec3d center, double r) Parameters center Vec3d center r double radius Returns MvpBoxRelation 0 if no overlap; 1 if partial overlap; 2 if B in A PopColor() Pop the color after using PushColor() and etc.. public void PopColor() See Also PushColor() PushColorByRgb(Vec3d) PopLineWidth() Pop the line width from the stack. And then set the poped line width to current line width. public void PopLineWidth() PopPointSize() Pop the stored point size from the stack. And then set the stored point size to current point size. public void PopPointSize() See Also PushPointSize() PushPointSize(double) PushColor() Push current color to stack. After PopColor(), the pushed color will be restored. public void PushColor() PushColorByHsl(Vec3d) Pushes a color onto the color stack using HSL values. public void PushColorByHsl(Vec3d hsl) Parameters hsl Vec3d The HSL color vector. PushColorByHsl(double, double, double) Pushes a color onto the color stack using HSL values. public void PushColorByHsl(double hue, double saturation, double light) Parameters hue double The hue component (0.0 to 1.0). saturation double The saturation component (0.0 to 1.0). light double The lightness component (0.0 to 1.0). PushColorByHslOffset(Vec3d) Pushes a color onto the color stack by applying HSL offsets to the current color. public void PushColorByHslOffset(Vec3d hslOffset) Parameters hslOffset Vec3d The HSL offset vector to apply. PushColorByHslOffset(double, double, double) Pushes a color onto the color stack by applying HSL offsets to the current color. public void PushColorByHslOffset(double hueOffset, double saturationOffset, double lightOffset) Parameters hueOffset double The hue offset to apply. saturationOffset double The saturation offset to apply. lightOffset double The lightness offset to apply. PushColorByRgb(Vec3d) Push current color to stack then set the color to given rgb. After PopColor(), the pushed color will be restored. If rgb is null, ignore the rgb and push. public void PushColorByRgb(Vec3d rgb) Parameters rgb Vec3d RGB color PushColorByRgb(double, double, double) Pushes a color onto the color stack using RGB values. public void PushColorByRgb(double r, double g, double b) Parameters r double The red component value (0.0 to 1.0). g double The green component value (0.0 to 1.0). b double The blue component value (0.0 to 1.0). PushColorByRgbOffset(Vec3d) Pushes a color onto the color stack by applying an RGB offset to the current color. Ensures the resulting color stays within [0,1] by shifting or normalizing when needed. public void PushColorByRgbOffset(Vec3d rgbOffset) Parameters rgbOffset Vec3d The RGB offset to add to the current color. PushColorByRgbOffset(double, double, double) Pushes a color onto the color stack by applying per-channel RGB offsets to the current color. public void PushColorByRgbOffset(double rOffset, double gOffset, double bOffset) Parameters rOffset double Offset applied to the red channel. gOffset double Offset applied to the green channel. bOffset double Offset applied to the blue channel. PushCoveringPixelMode() Push covering-pixel-mode matrix to ModelMatStack to make the display in pixel scale. Call ModelMatStack.Pop() to end the mode. public void PushCoveringPixelMode() PushLineWidth() Push current line width into stack. public void PushLineWidth() See Also PopLineWidth() PushLineWidth(double) Push current line width into stack. And then set lineWidth to the current line width. public void PushLineWidth(double lineWidth) Parameters lineWidth double line width See Also PopLineWidth() PushNoRotationPixelMode() Push no-rotation-pixel-mode matrix to ModelMatStack to make the display in pixel scale. Call ModelMatStack.Pop() to end the mode. public void PushNoRotationPixelMode() PushPixelMode() Push pixel mode matrix to ModelMatStack to make the display in pixel scale. Call ModelMatStack.Pop() to end the mode. public void PushPixelMode() PushPointSize() Push current point size to the stack. public void PushPointSize() See Also PopPointSize() PushPointSize(double) Push current point size to the stack. And then set the pointSize to current point size. public void PushPointSize(double pointSize) Parameters pointSize double point size See Also PopPointSize() PushPointSize(float) Push current point size to the stack. And then set the pointSize to current point size. public void PushPointSize(float pointSize) Parameters pointSize float point size See Also PopPointSize() ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html": { "href": "api/Hi.Disp.Box3dDispUtil.BoxableExpandToBox3dDel.html", "title": "Delegate Box3dDispUtil.BoxableExpandToBox3dDel | HiAPI-C# 2025", "summary": "Delegate Box3dDispUtil.BoxableExpandToBox3dDel Namespace Hi.Disp Assembly HiDisp.dll Delegate for expanding a native boxable object to a box3d. public delegate void Box3dDispUtil.BoxableExpandToBox3dDel(nint boxablePtr, ref box3d box) Parameters boxablePtr nint Pointer to the boxable object. box box3d Reference to the box to expand. 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)" }, "api/Hi.Disp.Box3dDispUtil.html": { "href": "api/Hi.Disp.Box3dDispUtil.html", "title": "Class Box3dDispUtil | HiAPI-C# 2025", "summary": "Class Box3dDispUtil Namespace Hi.Disp Assembly HiDisp.dll Utility and Extension of Box3d. public static class Box3dDispUtil Inheritance object Box3dDispUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(Box3d, Bind) Call DisplayLine(Box3d, Bind). public static void Display(this Box3d src, Bind bind) Parameters src Box3d src bind Bind bind DisplayFace(Box3d, Bind) Display faces of the src. public static void DisplayFace(this Box3d src, Bind bind) Parameters src Box3d src bind Bind bind DisplayLine(Box3d, Bind) Display edges of the src. public static void DisplayLine(this Box3d src, Bind bind) Parameters src Box3d src bind Bind bind ExpandToBox3d(nint, BoxableExpandToBox3dDel, Box3d) Expands a destination Box3d to include the bounds of a native boxable object. public static void ExpandToBox3d(nint boxablePtr, Box3dDispUtil.BoxableExpandToBox3dDel boxableExpandToBox3dDel, Box3d dst) Parameters boxablePtr nint Pointer to the boxable object. boxableExpandToBox3dDel Box3dDispUtil.BoxableExpandToBox3dDel Delegate to expand the boxable to a box3d. dst Box3d The destination Box3d to expand. GetBox(nint, BoxableExpandToBox3dDel) Gets a Box3d from a native boxable pointer using the provided delegate. public static Box3d GetBox(nint boxablePtr, Box3dDispUtil.BoxableExpandToBox3dDel boxableExpandToBox3dDel) Parameters boxablePtr nint Pointer to the boxable object. boxableExpandToBox3dDel Box3dDispUtil.BoxableExpandToBox3dDel Delegate to expand the boxable to a box3d. Returns Box3d A Box3d representing the bounds of the boxable object. ToDraw(Box3d) Equivalent to ToDraw_Face(Box3d) public static Drawing ToDraw(this Box3d src) Parameters src Box3d src Returns Drawing Drawing ToDraw_Face(Box3d) To Face Drawing. public static Drawing ToDraw_Face(this Box3d src) Parameters src Box3d src Returns Drawing Face Drawing ToDraw_Line(Box3d) To Line Drawing. public static Drawing ToDraw_Line(this Box3d src) Parameters src Box3d src Returns Drawing Line Drawing ToFaceDraw(IEnumerable) Get faces Drawing. public static Drawing ToFaceDraw(this IEnumerable boxs) Parameters boxs IEnumerable boxes Returns Drawing a draw with face ToLineBuf(Box3d, double[], ref int) Put the edges' data to dst, totally 72 double. The data is used according to GL_LINES. public static int ToLineBuf(this Box3d src, double[] dst, ref int p) Parameters src Box3d src dst double[] dstination buffer p int current position of the buffer Returns int The p increment: 72 ToLineDraw(IEnumerable) Get the edges Drawing of boxs. public static Drawing ToLineDraw(this IEnumerable boxs) Parameters boxs IEnumerable boxs Returns Drawing The Drawing" }, "api/Hi.Disp.DelegateFuncDisplayee.html": { "href": "api/Hi.Disp.DelegateFuncDisplayee.html", "title": "Class DelegateFuncDisplayee | HiAPI-C# 2025", "summary": "Class DelegateFuncDisplayee Namespace Hi.Disp Assembly HiDisp.dll A displayee implementation that delegates display functionality to a function. public class DelegateFuncDisplayee : IDisplayee, IExpandToBox3d Inheritance object DelegateFuncDisplayee Implements IDisplayee IExpandToBox3d 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 DelegateFuncDisplayee(Func) Initializes a new instance of the DelegateFuncDisplayee class. public DelegateFuncDisplayee(Func func) Parameters func Func The function that returns an IDisplayee instance. Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.DispEngine.ImageRequestedDelegate.html": { "href": "api/Hi.Disp.DispEngine.ImageRequestedDelegate.html", "title": "Delegate DispEngine.ImageRequestedDelegate | HiAPI-C# 2025", "summary": "Delegate DispEngine.ImageRequestedDelegate Namespace Hi.Disp Assembly HiDisp.dll For ImageRequestAfterBufferSwapped. public delegate void DispEngine.ImageRequestedDelegate(byte* bgra_unsignedbyte_pixels, int w, int h) Parameters bgra_unsignedbyte_pixels byte* BGRA convention pixels in unsigned bytes. The size is wh4. w int width h int height 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)" }, "api/Hi.Disp.DispEngine.html": { "href": "api/Hi.Disp.DispEngine.html", "title": "Class DispEngine | HiAPI-C# 2025", "summary": "Class DispEngine Namespace Hi.Disp Assembly HiDisp.dll HiAPI display engine. public class DispEngine : IDisposable, IGetDispEngine Inheritance object DispEngine Implements IDisposable IGetDispEngine 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) Remarks The DispEngine is the core rendering and interaction engine for HiAPI applications. Related Documentation Using RenderingCanvas with DispEngine Building Your Own Rendering Canvas The DispEngine provides a unified API for handling rendering, user interaction, and touch gestures across different UI frameworks. Constructors DispEngine(IDisplayee) Ctor. The SetViewToHomeView() is called in this function. public DispEngine(IDisplayee displayee) Parameters displayee IDisplayee The displayee to render. DispEngine(params IDisplayee[]) Ctor. public DispEngine(params IDisplayee[] displayees) Parameters displayees IDisplayee[] displayees to render. Fields CoreDll Core dll path. public const string CoreDll = \"core.dll\" Field Value string defaultFontFile Sentinel selecting the embedded default font (Noto Sans CJK TC, SIL Open Font License 1.1). Passing this value (or null) to Init(string) loads the embedded font from memory without writing any file to disk. This is not a path; no file of this name is looked up or created. public const string defaultFontFile = \"(embedded)\" Field Value string Properties BackgroundColor Background color public Vec3d BackgroundColor { get; set; } Property Value Vec3d BackgroundOpacity Background opacity. Range is from 0 to 1. public double BackgroundOpacity { get; set; } Property Value double ContextProjDepth Gets the projection depth of the current context. public static double ContextProjDepth { get; } Property Value double CursorOffsetX Internal Use. public int CursorOffsetX { get; } Property Value int CursorOffsetY Internal Use. public int CursorOffsetY { get; } Property Value int CursorX Internal Use. public int CursorX { get; set; } Property Value int CursorY Internal Use. public int CursorY { get; set; } Property Value int Displayee Displayee to be rendered in the rendering loop. The SetViewToHomeView() is called in this function. public IDisplayee Displayee { get; set; } Property Value IDisplayee EnableSuppressDefaultLogo Get or Set to Enable Suppress Default Logo. public static bool EnableSuppressDefaultLogo { get; set; } Property Value bool Exceptions InvalidOperationException Thrown when SuppressDefaultLogo license is not logged in. FontFile Font file. Null while the embedded default font (loaded from memory) is in use. public static string FontFile { get; set; } Property Value string IdleBackoffHeartbeat Idle backoff heartbeat. While the rendered image stays identical, no input arrives and progressive refinement has converged, the engine re-renders only once per this interval instead of every RefreshingPeriod. Zero (the default) disables the backoff. Any input, scene invalidation or an explicit ClearCache() restores the full refresh rate immediately. public TimeSpan IdleBackoffHeartbeat { set; } Property Value TimeSpan IsDisposed Gets a value indicating whether this engine has been disposed. All native-backed members become no-ops afterwards (value getters return neutral defaults). public bool IsDisposed { get; } Property Value bool IsOnDispThread Gets a value indicating whether the current thread is the display thread. public static bool IsOnDispThread { get; } Property Value bool IsVisible The anime stop running if the value is false; otherwise, the anime starts or keeps running. public bool IsVisible { get; set; } Property Value bool Model public Mat4d Model { get; set; } Property Value Mat4d Model matrix in MVP convention. This Model matrix is the first matrix in Hi.Disp.Bind.modelMatStack. PixelProj public Mat4d PixelProj { get; set; } Property Value Mat4d Pixel part of Projection matrix in MVP convention. Projection matrix = ScaleProj * PixelProj; PreCursorX Internal Use. public int PreCursorX { get; set; } Property Value int PreCursorY Internal Use. public int PreCursorY { get; set; } Property Value int PrincipleView public Mat4d PrincipleView { get; set; } Property Value Mat4d view = PrincipleView * SketchView. Where view matrix is in MVP convention. Remarks The default value is new Mat4d(new Vec3d(1, 0, 0), -Math.PI / 2). This make the 2D plane from xy plane to xz plane. The xz plane is much suit for 3D engineering display. RefreshingPeriod Image refreshing period. public TimeSpan RefreshingPeriod { get; set; } Property Value TimeSpan ScaleProj public Mat4d ScaleProj { get; set; } Property Value Mat4d Scale part of Projection matrix in MVP convention. Projection matrix = ScaleProj * PixelProj; SketchView view = PrincipleView * SketchView. Where view matrix is in MVP convention. public Mat4d SketchView { get; set; } Property Value Mat4d SuppressHoverPickWhileDragging When true, mouse moves with a button held do not trigger the hover pick pass (which re-renders the whole scene in picking mode). Enable this for hosts whose drags are pure camera transforms; keep the default (false) when API users drag a picked object via Pickable events. public bool SuppressHoverPickWhileDragging { set; } Property Value bool Methods ClearCache() Clears the display engine cache. public void ClearCache() DeleteDispContext() Deletes the current display context. public static void DeleteDispContext() 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 EnqueueDispose(IDisposable) Enqueues a disposable object to be disposed on the display thread. public static Task EnqueueDispose(IDisposable disposable) Parameters disposable IDisposable The disposable object to be disposed Returns Task A task representing the disposal operation EnqueueTask(Task) Enqueues a task to be executed on the display thread. public static Task EnqueueTask(Task task) Parameters task Task The task to be executed Returns Task The enqueued task EnqueueTask(Task) Enqueues a task to be executed on the display thread. public static Task EnqueueTask(Task task) Parameters task Task The task to be executed Returns Task The enqueued task Type Parameters T The type of the task result ~DispEngine() protected ~DispEngine() FinishDisp() Elegantly end the rendering core. Probably not essential. public static void FinishDisp() GetDispEngine() Get DispEngine. public DispEngine GetDispEngine() Returns DispEngine DispEngine Init(string) Initializes the display engine system. public static void Init(string fontFile = null) Parameters fontFile string The font file to use. If null, the embedded default font is loaded from memory and no file is written to disk. IsKeyPressed(string) Checks if a specific keyboard key is currently pressed. Delegates to IsKeyPressed(string). public bool IsKeyPressed(string key) Parameters key string Key string (W3C KeyboardEvent.key value, e.g. “Alt”, “ArrowLeft”). Returns bool True if the specified key is pressed; otherwise, false. IsMouseButtonPressed(long) Checks if a specific mouse button is currently pressed. Delegates to IsMouseButtonPressed(long). public bool IsMouseButtonPressed(long mouseButton) Parameters mouseButton long The mouse button to check, typically a value from the HiMouseButton enumeration. Returns bool True if the specified mouse button is pressed; otherwise, false. KeyDown(string) Key down. This function is typically called in the GUI implementation for keyboard interaction. public void KeyDown(string key) Parameters key string Key string (W3C KeyboardEvent.key value, e.g. “Alt”, “ArrowLeft”, “a”). KeyDownTransform(string, key_table__transform_view_by_key_pressing_t) Transform SketchView by key. Home, F1, F2, F3, F4 call SetViewToHomeView(), SetViewToFrontView(), SetViewToRightView(), SetViewToTopView(), SetViewToIsometricView() respectively. PageDown and PageUp scale the SketchView. Left, Right, Down, Up translate the SketchView; Press Shift make these keys to rotate the SketchView. public void KeyDownTransform(string key, key_table__transform_view_by_key_pressing_t table) Parameters key string The key that was pressed, typically a value from the HiKey enumeration. table key_table__transform_view_by_key_pressing_t A table defining which keys trigger different transformation operations. Remarks This method is typically called from key down event handlers in the GUI implementation. KeyUp(string) Key up. This function is typically called in the GUI implementation for keyboard interaction. public void KeyUp(string key) Parameters key string Key string (W3C KeyboardEvent.key value). LockGlContext() Lock a opengl context. The function is only used for native OpenGL rendering. After lock the gl context, It should be unlock by UnlockGlContext(nint). public static nint LockGlContext() Returns nint Remarks If any other lock requires LockGlContext, the lock should better set inside LockGlContext. or it is easy to occur race condition. see design pattern of “Solid” class for reference. MouseButtonDown(long) Mouse button down. This function is typically called in the GUI implementation for mouse interaction. public void MouseButtonDown(long button) Parameters button long button MouseButtonUp(long) Mouse button up. This function is typically called in the GUI implementation for mouse interaction. public void MouseButtonUp(long button) Parameters button long button MouseDragTransform(int, int, mouse_button_table__transform_view_by_mouse_drag_t) Transform the view by mouse drag. If drag by left mouse button, Translate(double, double) is performed; If drag by right mouse button, Rotate(double, double) is performed. public void MouseDragTransform(int x, int y, mouse_button_table__transform_view_by_mouse_drag_t mouse_button_table) Parameters x int The current x-coordinate of the mouse cursor. y int The current y-coordinate of the mouse cursor. mouse_button_table mouse_button_table__transform_view_by_mouse_drag_t A table defining which mouse buttons trigger different transformation operations. Remarks The mouse_button_table__transform_view_by_mouse_drag_t structure allows you to configure which mouse buttons perform which transformations: var buttonTable = new mouse_button_table__transform_view_by_mouse_drag_t { LEFT_BUTTON = (long)HiMouseButton.Left, // For translation RIGHT_BUTTON = (long)HiMouseButton.Right // For rotation }; This method is typically called from mouse move event handlers when buttons are pressed. MouseMove(int, int) Mouse move. This function is typically called in the GUI implementation for mouse interaction. public void MouseMove(int x, int y) Parameters x int cursor X position y int cursor Y position MouseWheel(int, int) Mouse wheel move. This function is typically called in the GUI implementation for mouse interaction. public void MouseWheel(int deltaX, int deltaY) Parameters deltaX int mouse wheel delta X deltaY int mouse wheel delta Y. The traditional mouse wheel. MouseWheelTransform(int, int, double) Scale SketchView by mouse wheel. public void MouseWheelTransform(int deltaX, int deltaY, double zooming_ratio = 0.2) Parameters deltaX int mouse wheel delta X deltaY int mouse wheel delta Y. The traditional mouse wheel. zooming_ratio double The ratio used for zooming. Default is 0.2. Resize(int, int) Resize the opengl context. public void Resize(int w, int h) Parameters w int width of the viewport h int height of the viewport Rotate(double, double) Rotate the SketchView. Usually used by mouse drag on window. The rotation axis is along (delta_y, 0, delta_x). The rotation rad is 5 * Math.Sqrt(delta_y * delta_y + delta_x * delta_x) / window_height. public void Rotate(double delta_x, double delta_y) Parameters delta_x double delta x in window coordinate delta_y double delta y in window coordinate RotateAndScaleByTouchPad(Vec2d, Vec2d, Vec2d, Vec2d) Rotate and scale the SketchView based on touch pad gestures. public void RotateAndScaleByTouchPad(Vec2d prePosA, Vec2d curPosA, Vec2d prePosB, Vec2d curPosB) Parameters prePosA Vec2d The previous position of the first touch point. curPosA Vec2d The current position of the first touch point. prePosB Vec2d The previous position of the second touch point. curPosB Vec2d The current position of the second touch point. Remarks The method detects two types of gestures: Pinch gesture: When the distance between touch points changes, it triggers zooming via MouseWheelTransform(int, int, double) Rotation/Pan gesture: When touch points move together, it triggers rotation via Rotate(double, double) This method is typically used to implement touchpad or multi-touch gestures in custom UI implementations. RotateWithoutHeightAdjustment(double, double) Rotate the SketchView. Usually used by keyboard command. The rotation axis is along (delta_y, 0, delta_x). The rotation rad is Math.ToRad(Math.Sqrt(delta_y * delta_y + delta_x * delta_x)). public void RotateWithoutHeightAdjustment(double delta_x, double delta_y) Parameters delta_x double delta x in window coordinate delta_y double delta y in window coordinate SetViewToFrontView() Set the SketchView to front view. public void SetViewToFrontView() SetViewToHomeView() Set the SketchView to home view(front view). This is the same as SetViewToFrontView(). public void SetViewToHomeView() SetViewToIsometricView() Set the SketchView to isometric view. public void SetViewToIsometricView() SetViewToRightView() Set the SketchView to side view. public void SetViewToRightView() SetViewToTopView() Set the SketchView to top view. public void SetViewToTopView() Snapshot(string) Snapshot to BMP file with current canvas size. public void Snapshot(string filePath) Parameters filePath string Snapshot(string, int, int) Snapshot to BMP file. public void Snapshot(string filePath, int panelWidth, int panelHeight) Parameters filePath string panelWidth int panelHeight int Start(int, int) Start a thread of keeping Swapping buffers of OpenGL context. If the thread has running, this function does nothing. public void Start(int panelWidth, int panelHeight) Parameters panelWidth int panel width panelHeight int panel height Terminate() Terminate the opengl context swapping buffers thread from Start(int, int). If the thread has not running, this function does nothing. public void Terminate() TouchDown(int, int, int) Tracks a new touch point in the DispEngine's touch gesture system. public void TouchDown(int touchId, int x, int y) Parameters touchId int A unique identifier for the touch point. x int The x-coordinate of the touch point in screen coordinates. y int The y-coordinate of the touch point in screen coordinates. Remarks When a touch point is added, the method: Stores the touch point in the internal tracking dictionary If this is the first touch point, simulates a mouse move and left button press TouchMove(int, int, int) Updates the position of an existing touch point. public void TouchMove(int touchId, int x, int y) Parameters touchId int The unique identifier of the touch point to update. x int The new x-coordinate of the touch point in screen coordinates. y int The new y-coordinate of the touch point in screen coordinates. Remarks The method handles different gestures based on the number of active touch points: Single touch: Performs panning (translation) like mouse dragging Two touches: Performs pinch-to-zoom and rotation gestures TouchUp(int) Removes a touch point from tracking when the touch is released. public void TouchUp(int touchId) Parameters touchId int The unique identifier of the touch point to remove. Remarks When a touch point is released, the method: Removes the touch point from internal tracking dictionaries If all touch points are released, simulates a mouse button release If transitioning from multi-touch to single-touch, updates the mouse position to prevent “teleportation” Translate(double, double) Translate the SketchView. Usually used by mouse drag on window. The translation is (delta_x * 2.0 / h, 0, -delta_y* 2.0 / h). Where h is window height. public void Translate(double delta_x, double delta_y) Parameters delta_x double delta x in window coordinate delta_y double delta y in window coordinate TurnBackView() Rotate view 180 degrees around Z axis to switch to back view. public void TurnBackView() UnlockGlContext(nint) Unlock opengl context. The function is only used for native OpenGL rendering. The function unlock the opengl context for LockGlContext(). public static void UnlockGlContext(nint disp_torch_p) Parameters disp_torch_p nint Events FinishingDisp Event at the begining of FinishDisp() public static event Action FinishingDisp Event Type Action ImageRequestAfterBufferSwapped Triggered after swap buffer of gl context. public event DispEngine.ImageRequestedDelegate ImageRequestAfterBufferSwapped Event Type DispEngine.ImageRequestedDelegate" }, "api/Hi.Disp.DispEngineConfig.html": { "href": "api/Hi.Disp.DispEngineConfig.html", "title": "Class DispEngineConfig | HiAPI-C# 2025", "summary": "Class DispEngineConfig Namespace Hi.Disp Assembly HiDisp.dll Configuration class for display engine. public class DispEngineConfig Inheritance object DispEngineConfig 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) Constructors DispEngineConfig() Initializes a new instance of the DispEngineConfig class. public DispEngineConfig() DispEngineConfig(IDisplayee) Initializes a new instance of the DispEngineConfig class with a displayee. public DispEngineConfig(IDisplayee displayee) Parameters displayee IDisplayee The displayee object to be rendered. DispEngineConfig(IDisplayee, Mat4d) Initializes a new instance of the DispEngineConfig class with a displayee and sketch view. public DispEngineConfig(IDisplayee displayee, Mat4d sketchView) Parameters displayee IDisplayee The displayee object to be rendered. sketchView Mat4d The sketch view transformation matrix. Properties Displayee Gets or sets the displayee object to be rendered. public IDisplayee Displayee { get; set; } Property Value IDisplayee SketchView Gets or sets the sketch view transformation matrix. public Mat4d SketchView { get; set; } Property Value Mat4d" }, "api/Hi.Disp.DispFrameUtil.html": { "href": "api/Hi.Disp.DispFrameUtil.html", "title": "Class DispFrameUtil | HiAPI-C# 2025", "summary": "Class DispFrameUtil Namespace Hi.Disp Assembly HiDisp.dll Utility class for display frame management. public static class DispFrameUtil Inheritance object DispFrameUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties KeyToDispEngineConfigDictionary Internal Use Only. public static ConcurrentDictionary KeyToDispEngineConfigDictionary { get; } Property Value ConcurrentDictionary UpdateByDispEngineConfigFunc Gets or sets the function to update display engine. public static Action UpdateByDispEngineConfigFunc { get; set; } Property Value Action Methods Call(string, params IDisplayee[]) Configures the display engine with the specified displayees. public static DispEngineConfig Call(string key, params IDisplayee[] displayees) Parameters key string The key to identify the display engine configuration. displayees IDisplayee[] The displayees to be configured. Returns DispEngineConfig The display engine configuration. ClearCache() Clears the cache of display engine configurations. public static void ClearCache() UpdateFrame(string) Internal Use Only. public static void UpdateFrame(string key) Parameters key string The key to identify the display engine configuration." }, "api/Hi.Disp.DispList.html": { "href": "api/Hi.Disp.DispList.html", "title": "Class DispList | HiAPI-C# 2025", "summary": "Class DispList Namespace Hi.Disp Assembly HiDisp.dll A combination of IDisplayee and SynList. public class DispList : SynList, IList, ICollection, IEnumerable, IEnumerable, IDisplayee, IExpandToBox3d Inheritance object SynList DispList Implements IList ICollection IEnumerable IEnumerable IDisplayee IExpandToBox3d Inherited Members SynList.Lock SynList.this[int] SynList.Count SynList.IsReadOnly SynList.Data SynList.Add(IDisplayee) SynList.AddAndGetIndex(IDisplayee) SynList.Clear() SynList.Contains(IDisplayee) SynList.CopyTo(IDisplayee[], int) SynList.GetEnumerator() SynList.IndexOf(IDisplayee) SynList.Insert(int, IDisplayee) SynList.Remove(IDisplayee) SynList.RemoveAt(int) SynList.ToList() 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) StringUtil.ToDotSplitedString(IEnumerable) ListUtil.GetCeilBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetCeilIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetCeilIndex(IList, ItemKey, Func, out int) ListUtil.GetCeilIndex(IList, TKey, Func, out int) ListUtil.GetCeil(IList, TKey, Func, out Item) ListUtil.GetFloorBySeek(IList, TKey, Func, out TItem, out int, int, SeekDirection) ListUtil.GetFloorIndexBySeek(IList, TKey, Func, out int, int, SeekDirection) ListUtil.GetFloorIndex(IList, ItemKey, Func, out int) ListUtil.GetFloorIndex(IList, TKey, Func, out int) ListUtil.GetFloor(IList, TKey, Func, out Item) ListUtil.GetIndexBasedEnumerable(IList) ListUtil.GetIndexBasedEnumerable(IList, int, int) ListUtil.GetIndexByBinarySearch(IList, TItem) ListUtil.GetIndexByBinarySearch(IList, TItem, IComparer) ListUtil.GetIndexByBinarySearch(IList, TSearch, Func) ListUtil.GetNearestIndex(IList, TItemKey, Func, out int) ListUtil.GetNearestIndex(IList, TItemKey, Func, Func, out int) ListUtil.GetSubList(IList, int, int) ListUtil.Swap(IList, int, int) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors DispList(DispList) public DispList(DispList src) Parameters src DispList DispList(params IDisplayee[]) public DispList(params IDisplayee[] displayees) Parameters displayees IDisplayee[] DispList(IEnumerable) public DispList(IEnumerable src) Parameters src IEnumerable DispList(int) public DispList(int cap = 8) Parameters cap int Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.DispUtil.html": { "href": "api/Hi.Disp.DispUtil.html", "title": "Class DispUtil | HiAPI-C# 2025", "summary": "Class DispUtil Namespace Hi.Disp Assembly HiDisp.dll Display Utility public static class DispUtil Inheritance object DispUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(IDisplayee, Bind, Mat4d) Displays the given displayee with an additional model transform. Internally pushes the transform to the model matrix stack, calls Display, then pops it. public static void Display(this IDisplayee displayee, Bind bind, Mat4d mat) Parameters displayee IDisplayee The displayee to render. bind Bind Rendering bind context. mat Mat4d The model transform to apply. Display(nint, Bind) Display function for native object. public static void Display(nint displayeePtr, Bind bind) Parameters displayeePtr nint natvie object pointer bind Bind bind" }, "api/Hi.Disp.Drawing.html": { "href": "api/Hi.Disp.Drawing.html", "title": "Class Drawing | HiAPI-C# 2025", "summary": "Class Drawing Namespace Hi.Disp Assembly HiDisp.dll The most efficient elemental 3D rendering unit. public class Drawing : IDisplayee, IExpandToBox3d, IDisposable Inheritance object Drawing 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 Drawing(double[], Stamp, int) Construct a Drawing. public Drawing(double[] src, Stamp stamp, int glPrimitive) Parameters src double[] src stamp Stamp stamp glPrimitive int gl primitive Properties GlPrimitive OpenGL Primitive. public int GlPrimitive { get; set; } Property Value int KeyStamp The only Stamp of this public Stamp KeyStamp { get; } Property Value Stamp Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, double[], Stamp, int) Display by the given parameter. public static void Display(Bind bind, double[] src, Stamp stamp, int glPrimitive) Parameters bind Bind bind src double[] src stamp Stamp stamp glPrimitive int gl primitive Display(Bind, int) Display(Bind) with the forced gl primitive. Thread safe for Display(Bind), Display(Bind, int), ExpandToBox3d(Box3d) and Dispose(). public void Display(Bind bind, int forceGlPrimitive) Parameters bind Bind bind forceGlPrimitive int forced gl primitive Dispose() Dispose. Thread safe for Display(Bind), Display(Bind, int), ExpandToBox3d(Box3d) and Dispose(). public void Dispose() Dispose(bool) protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expand to Box. Thread safe for Display(Bind), Display(Bind, int), ExpandToBox3d(Box3d) and Dispose(). public void ExpandToBox3d(Box3d dst) Parameters dst Box3d ~Drawing() protected ~Drawing()" }, "api/Hi.Disp.Flag.ColorScaleBar.html": { "href": "api/Hi.Disp.Flag.ColorScaleBar.html", "title": "Class ColorScaleBar | HiAPI-C# 2025", "summary": "Class ColorScaleBar Namespace Hi.Disp.Flag Assembly HiDisp.dll ColorScaleBar. For Covering mode. public class ColorScaleBar : IDisplayee, IExpandToBox3d Inheritance object ColorScaleBar Implements IDisplayee IExpandToBox3d 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 ColorScaleBar(double, double, Func, string, string) Initializes a new instance of the ColorScaleBar class. public ColorScaleBar(double floor, double ceiling, Func rgbFunc, string tag, string unit) Parameters floor double The minimum value for the color scale. ceiling double The maximum value for the color scale. rgbFunc Func The function that converts a value to an RGB color. tag string The tag text for the color scale bar. unit string The unit text for the color scale values. Properties Ceiling Gets or sets the maximum value for the color scale. public double Ceiling { get; set; } Property Value double Floor Gets or sets the minimum value for the color scale. public double Floor { get; set; } Property Value double LengthW Gets the width length of the color scale bar. public static int LengthW { get; } Property Value int OffsetH Gets the vertical offset of the color scale bar. public static double OffsetH { get; } Property Value double OffsetW Gets the horizontal offset of the color scale bar. public static double OffsetW { get; } Property Value double RgbFunc Gets or sets the function that converts a value to an RGB color. public Func RgbFunc { get; set; } Property Value Func Tag Gets or sets the tag text for the color scale bar. public string Tag { get; set; } Property Value string Unit Gets or sets the unit text for the color scale values. public string Unit { get; set; } Property Value string Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, double, double, Func, string, string) Displays the color scale bar on the specified binding context. public static void Display(Bind bind, double floor, double ceiling, Func rgbFunc, string tag, string unit) Parameters bind Bind The binding context to display on. floor double The minimum value for the color scale. ceiling double The maximum value for the color scale. rgbFunc Func The function that converts a value to an RGB color. tag string The tag text for the color scale bar. unit string The unit text for the color scale values. 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" }, "api/Hi.Disp.Flag.CoordinateDrawing.html": { "href": "api/Hi.Disp.Flag.CoordinateDrawing.html", "title": "Class CoordinateDrawing | HiAPI-C# 2025", "summary": "Class CoordinateDrawing Namespace Hi.Disp.Flag Assembly HiDisp.dll Draw a Cartesian Coordinate. public class CoordinateDrawing : IDisplayee, IExpandToBox3d, IDisposable, IMakeXmlSource Inheritance object CoordinateDrawing Implements IDisplayee IExpandToBox3d IDisposable IMakeXmlSource 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 CoordinateDrawing() Ctor. public CoordinateDrawing() CoordinateDrawing(string) Ctor with setter of TextAtOrigin. public CoordinateDrawing(string textAtOrigin) Parameters textAtOrigin string text at origin CoordinateDrawing(XElement) Ctor. public CoordinateDrawing(XElement src) Parameters src XElement XML Properties DimensionInPixels public double DimensionInPixels { get; set; } Property Value double Edge length in pixels. HslOffset public static Vec3d HslOffset { get; set; } Property Value Vec3d HSL offset for coloring this. TextAtOrigin public string TextAtOrigin { get; set; } Property Value string Text displays at the origin of this coordinate. XName Name for XML IO. public static string XName { get; } Property Value string Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, string) Displays a coordinate drawing with the specified binding context and tag. public static void Display(Bind bind, string tag) Parameters bind Bind The binding context to display on. tag string The tag text to display at the origin. 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 MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Disp.Flag.CubicalFlagDrawing.html": { "href": "api/Hi.Disp.Flag.CubicalFlagDrawing.html", "title": "Class CubicalFlagDrawing | HiAPI-C# 2025", "summary": "Class CubicalFlagDrawing Namespace Hi.Disp.Flag Assembly HiDisp.dll A drawing class for cubical flag visualization. public class CubicalFlagDrawing : IDisplayee, IExpandToBox3d Inheritance object CubicalFlagDrawing Implements IDisplayee IExpandToBox3d 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 CubicalFlagDrawing(double) Initializes a new instance of the CubicalFlagDrawing class. public CubicalFlagDrawing(double planDim = 16) Parameters planDim double The dimension of the plan. Fields planDim Gets or sets the dimension of the plan. public double planDim Field Value double Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 StaticDisplay(Bind, double) Displays the cubical flag with the specified binding context. public static void StaticDisplay(Bind bind, double planDim = 16) Parameters bind Bind The binding context to display on. planDim double The dimension of the plan." }, "api/Hi.Disp.Flag.DimensionBar.html": { "href": "api/Hi.Disp.Flag.DimensionBar.html", "title": "Class DimensionBar | HiAPI-C# 2025", "summary": "Class DimensionBar Namespace Hi.Disp.Flag Assembly HiDisp.dll DimensionBar. For Covering mode. public class DimensionBar : IDisplayee, IExpandToBox3d Inheritance object DimensionBar Implements IDisplayee IExpandToBox3d 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) Properties OffsetH Gets the vertical offset of the dimension bar. public static double OffsetH { get; } Property Value double Unit Gets or sets the unit of measurement to display. public string Unit { get; set; } Property Value string Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, string) Displays the dimension bar on the specified binding context. public static void Display(Bind bind, string unit) Parameters bind Bind The binding context to display on. unit string The unit of measurement to display. 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" }, "api/Hi.Disp.Flag.DispCoverUtil.html": { "href": "api/Hi.Disp.Flag.DispCoverUtil.html", "title": "Class DispCoverUtil | HiAPI-C# 2025", "summary": "Class DispCoverUtil Namespace Hi.Disp.Flag Assembly HiDisp.dll Utility class for display covering functionality. public static class DispCoverUtil Inheritance object DispCoverUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields BarGap The gap size between bars in display covering. public const double BarGap = 20 Field Value double BarLineWidth The line width for bars in display covering. public const double BarLineWidth = 2 Field Value double BarPointSize The point size for markers in display covering. public const double BarPointSize = 4 Field Value double" }, "api/Hi.Disp.Flag.html": { "href": "api/Hi.Disp.Flag.html", "title": "Namespace Hi.Disp.Flag | HiAPI-C# 2025", "summary": "Namespace Hi.Disp.Flag Classes ColorScaleBar ColorScaleBar. For Covering mode. CoordinateDrawing Draw a Cartesian Coordinate. CubicalFlagDrawing A drawing class for cubical flag visualization. DimensionBar DimensionBar. For Covering mode. DispCoverUtil Utility class for display covering functionality." }, "api/Hi.Disp.FuncDisplayee.html": { "href": "api/Hi.Disp.FuncDisplayee.html", "title": "Class FuncDisplayee | HiAPI-C# 2025", "summary": "Class FuncDisplayee Namespace Hi.Disp Assembly HiDisp.dll A displayee implementation that delegates display functionality to function delegates. public class FuncDisplayee : IDisplayee, IExpandToBox3d Inheritance object FuncDisplayee Implements IDisplayee IExpandToBox3d 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 FuncDisplayee() Initializes a new instance of the FuncDisplayee class. public FuncDisplayee() FuncDisplayee(Action, Action) Initializes a new instance of the FuncDisplayee class with display and expand delegates. public FuncDisplayee(Action displayDelegate, Action expandToBox3dDelegate) Parameters displayDelegate Action The delegate for the Display method. expandToBox3dDelegate Action The delegate for the ExpandToBox3d method. Properties DisplayDelegate Gets or sets the delegate for the Display method. public Action DisplayDelegate { get; set; } Property Value Action ExpandToBox3dDelegate Gets or sets the delegate for the ExpandToBox3d method. public Action ExpandToBox3dDelegate { get; set; } Property Value Action Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.GL.html": { "href": "api/Hi.Disp.GL.html", "title": "Class GL | HiAPI-C# 2025", "summary": "Class GL Namespace Hi.Disp Assembly HiDisp.dll Native opengl functions wrapper. public static class GL Inheritance object GL Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields GL_ACTIVE_ATTRIBUTES public const int GL_ACTIVE_ATTRIBUTES = 35721 Field Value int GL_ACTIVE_ATTRIBUTE_MAX_LENGTH public const int GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 35722 Field Value int GL_ACTIVE_TEXTURE public const int GL_ACTIVE_TEXTURE = 34016 Field Value int GL_ACTIVE_UNIFORMS public const int GL_ACTIVE_UNIFORMS = 35718 Field Value int GL_ACTIVE_UNIFORM_BLOCKS public const int GL_ACTIVE_UNIFORM_BLOCKS = 35382 Field Value int GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH public const int GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 35381 Field Value int GL_ACTIVE_UNIFORM_MAX_LENGTH public const int GL_ACTIVE_UNIFORM_MAX_LENGTH = 35719 Field Value int GL_ALIASED_LINE_WIDTH_RANGE public const int GL_ALIASED_LINE_WIDTH_RANGE = 33902 Field Value int GL_ALPHA public const int GL_ALPHA = 6406 Field Value int GL_ALREADY_SIGNALED public const int GL_ALREADY_SIGNALED = 37146 Field Value int GL_ALWAYS public const int GL_ALWAYS = 519 Field Value int GL_AND public const int GL_AND = 5377 Field Value int GL_AND_INVERTED public const int GL_AND_INVERTED = 5380 Field Value int GL_AND_REVERSE public const int GL_AND_REVERSE = 5378 Field Value int GL_ANY_SAMPLES_PASSED public const int GL_ANY_SAMPLES_PASSED = 35887 Field Value int GL_ARRAY_BUFFER public const int GL_ARRAY_BUFFER = 34962 Field Value int GL_ARRAY_BUFFER_BINDING public const int GL_ARRAY_BUFFER_BINDING = 34964 Field Value int GL_ATTACHED_SHADERS public const int GL_ATTACHED_SHADERS = 35717 Field Value int GL_BACK public const int GL_BACK = 1029 Field Value int GL_BACK_LEFT public const int GL_BACK_LEFT = 1026 Field Value int GL_BACK_RIGHT public const int GL_BACK_RIGHT = 1027 Field Value int GL_BGR public const int GL_BGR = 32992 Field Value int GL_BGRA public const int GL_BGRA = 32993 Field Value int GL_BGRA_INTEGER public const int GL_BGRA_INTEGER = 36251 Field Value int GL_BGR_INTEGER public const int GL_BGR_INTEGER = 36250 Field Value int GL_BLEND public const int GL_BLEND = 3042 Field Value int GL_BLEND_COLOR public const int GL_BLEND_COLOR = 32773 Field Value int GL_BLEND_DST public const int GL_BLEND_DST = 3040 Field Value int GL_BLEND_DST_ALPHA public const int GL_BLEND_DST_ALPHA = 32970 Field Value int GL_BLEND_DST_RGB public const int GL_BLEND_DST_RGB = 32968 Field Value int GL_BLEND_EQUATION public const int GL_BLEND_EQUATION = 32777 Field Value int GL_BLEND_EQUATION_ALPHA public const int GL_BLEND_EQUATION_ALPHA = 34877 Field Value int GL_BLEND_EQUATION_RGB public const int GL_BLEND_EQUATION_RGB = 32777 Field Value int GL_BLEND_SRC public const int GL_BLEND_SRC = 3041 Field Value int GL_BLEND_SRC_ALPHA public const int GL_BLEND_SRC_ALPHA = 32971 Field Value int GL_BLEND_SRC_RGB public const int GL_BLEND_SRC_RGB = 32969 Field Value int GL_BLUE public const int GL_BLUE = 6405 Field Value int GL_BLUE_INTEGER public const int GL_BLUE_INTEGER = 36246 Field Value int GL_BOOL public const int GL_BOOL = 35670 Field Value int GL_BOOL_VEC2 public const int GL_BOOL_VEC2 = 35671 Field Value int GL_BOOL_VEC3 public const int GL_BOOL_VEC3 = 35672 Field Value int GL_BOOL_VEC4 public const int GL_BOOL_VEC4 = 35673 Field Value int GL_BUFFER_ACCESS public const int GL_BUFFER_ACCESS = 35003 Field Value int GL_BUFFER_ACCESS_FLAGS public const int GL_BUFFER_ACCESS_FLAGS = 37151 Field Value int GL_BUFFER_MAPPED public const int GL_BUFFER_MAPPED = 35004 Field Value int GL_BUFFER_MAP_LENGTH public const int GL_BUFFER_MAP_LENGTH = 37152 Field Value int GL_BUFFER_MAP_OFFSET public const int GL_BUFFER_MAP_OFFSET = 37153 Field Value int GL_BUFFER_MAP_POINTER public const int GL_BUFFER_MAP_POINTER = 35005 Field Value int GL_BUFFER_SIZE public const int GL_BUFFER_SIZE = 34660 Field Value int GL_BUFFER_USAGE public const int GL_BUFFER_USAGE = 34661 Field Value int GL_BYTE public const int GL_BYTE = 5120 Field Value int GL_CCW public const int GL_CCW = 2305 Field Value int GL_CLAMP_READ_COLOR public const int GL_CLAMP_READ_COLOR = 35100 Field Value int GL_CLAMP_TO_BORDER public const int GL_CLAMP_TO_BORDER = 33069 Field Value int GL_CLAMP_TO_EDGE public const int GL_CLAMP_TO_EDGE = 33071 Field Value int GL_CLEAR public const int GL_CLEAR = 5376 Field Value int GL_CLIP_DISTANCE0 public const int GL_CLIP_DISTANCE0 = 12288 Field Value int GL_CLIP_DISTANCE1 public const int GL_CLIP_DISTANCE1 = 12289 Field Value int GL_CLIP_DISTANCE2 public const int GL_CLIP_DISTANCE2 = 12290 Field Value int GL_CLIP_DISTANCE3 public const int GL_CLIP_DISTANCE3 = 12291 Field Value int GL_CLIP_DISTANCE4 public const int GL_CLIP_DISTANCE4 = 12292 Field Value int GL_CLIP_DISTANCE5 public const int GL_CLIP_DISTANCE5 = 12293 Field Value int GL_CLIP_DISTANCE6 public const int GL_CLIP_DISTANCE6 = 12294 Field Value int GL_CLIP_DISTANCE7 public const int GL_CLIP_DISTANCE7 = 12295 Field Value int GL_COLOR public const int GL_COLOR = 6144 Field Value int GL_COLOR_ATTACHMENT0 public const int GL_COLOR_ATTACHMENT0 = 36064 Field Value int GL_COLOR_ATTACHMENT1 public const int GL_COLOR_ATTACHMENT1 = 36065 Field Value int GL_COLOR_ATTACHMENT10 public const int GL_COLOR_ATTACHMENT10 = 36074 Field Value int GL_COLOR_ATTACHMENT11 public const int GL_COLOR_ATTACHMENT11 = 36075 Field Value int GL_COLOR_ATTACHMENT12 public const int GL_COLOR_ATTACHMENT12 = 36076 Field Value int GL_COLOR_ATTACHMENT13 public const int GL_COLOR_ATTACHMENT13 = 36077 Field Value int GL_COLOR_ATTACHMENT14 public const int GL_COLOR_ATTACHMENT14 = 36078 Field Value int GL_COLOR_ATTACHMENT15 public const int GL_COLOR_ATTACHMENT15 = 36079 Field Value int GL_COLOR_ATTACHMENT16 public const int GL_COLOR_ATTACHMENT16 = 36080 Field Value int GL_COLOR_ATTACHMENT17 public const int GL_COLOR_ATTACHMENT17 = 36081 Field Value int GL_COLOR_ATTACHMENT18 public const int GL_COLOR_ATTACHMENT18 = 36082 Field Value int GL_COLOR_ATTACHMENT19 public const int GL_COLOR_ATTACHMENT19 = 36083 Field Value int GL_COLOR_ATTACHMENT2 public const int GL_COLOR_ATTACHMENT2 = 36066 Field Value int GL_COLOR_ATTACHMENT20 public const int GL_COLOR_ATTACHMENT20 = 36084 Field Value int GL_COLOR_ATTACHMENT21 public const int GL_COLOR_ATTACHMENT21 = 36085 Field Value int GL_COLOR_ATTACHMENT22 public const int GL_COLOR_ATTACHMENT22 = 36086 Field Value int GL_COLOR_ATTACHMENT23 public const int GL_COLOR_ATTACHMENT23 = 36087 Field Value int GL_COLOR_ATTACHMENT24 public const int GL_COLOR_ATTACHMENT24 = 36088 Field Value int GL_COLOR_ATTACHMENT25 public const int GL_COLOR_ATTACHMENT25 = 36089 Field Value int GL_COLOR_ATTACHMENT26 public const int GL_COLOR_ATTACHMENT26 = 36090 Field Value int GL_COLOR_ATTACHMENT27 public const int GL_COLOR_ATTACHMENT27 = 36091 Field Value int GL_COLOR_ATTACHMENT28 public const int GL_COLOR_ATTACHMENT28 = 36092 Field Value int GL_COLOR_ATTACHMENT29 public const int GL_COLOR_ATTACHMENT29 = 36093 Field Value int GL_COLOR_ATTACHMENT3 public const int GL_COLOR_ATTACHMENT3 = 36067 Field Value int GL_COLOR_ATTACHMENT30 public const int GL_COLOR_ATTACHMENT30 = 36094 Field Value int GL_COLOR_ATTACHMENT31 public const int GL_COLOR_ATTACHMENT31 = 36095 Field Value int GL_COLOR_ATTACHMENT4 public const int GL_COLOR_ATTACHMENT4 = 36068 Field Value int GL_COLOR_ATTACHMENT5 public const int GL_COLOR_ATTACHMENT5 = 36069 Field Value int GL_COLOR_ATTACHMENT6 public const int GL_COLOR_ATTACHMENT6 = 36070 Field Value int GL_COLOR_ATTACHMENT7 public const int GL_COLOR_ATTACHMENT7 = 36071 Field Value int GL_COLOR_ATTACHMENT8 public const int GL_COLOR_ATTACHMENT8 = 36072 Field Value int GL_COLOR_ATTACHMENT9 public const int GL_COLOR_ATTACHMENT9 = 36073 Field Value int GL_COLOR_BUFFER_BIT public const int GL_COLOR_BUFFER_BIT = 16384 Field Value int GL_COLOR_CLEAR_VALUE public const int GL_COLOR_CLEAR_VALUE = 3106 Field Value int GL_COLOR_LOGIC_OP public const int GL_COLOR_LOGIC_OP = 3058 Field Value int GL_COLOR_WRITEMASK public const int GL_COLOR_WRITEMASK = 3107 Field Value int GL_COMPARE_REF_TO_TEXTURE public const int GL_COMPARE_REF_TO_TEXTURE = 34894 Field Value int GL_COMPILE_STATUS public const int GL_COMPILE_STATUS = 35713 Field Value int GL_COMPRESSED_RED public const int GL_COMPRESSED_RED = 33317 Field Value int GL_COMPRESSED_RED_RGTC1 public const int GL_COMPRESSED_RED_RGTC1 = 36283 Field Value int GL_COMPRESSED_RG public const int GL_COMPRESSED_RG = 33318 Field Value int GL_COMPRESSED_RGB public const int GL_COMPRESSED_RGB = 34029 Field Value int GL_COMPRESSED_RGBA public const int GL_COMPRESSED_RGBA = 34030 Field Value int GL_COMPRESSED_RG_RGTC2 public const int GL_COMPRESSED_RG_RGTC2 = 36285 Field Value int GL_COMPRESSED_SIGNED_RED_RGTC1 public const int GL_COMPRESSED_SIGNED_RED_RGTC1 = 36284 Field Value int GL_COMPRESSED_SIGNED_RG_RGTC2 public const int GL_COMPRESSED_SIGNED_RG_RGTC2 = 36286 Field Value int GL_COMPRESSED_SRGB public const int GL_COMPRESSED_SRGB = 35912 Field Value int GL_COMPRESSED_SRGB_ALPHA public const int GL_COMPRESSED_SRGB_ALPHA = 35913 Field Value int GL_COMPRESSED_TEXTURE_FORMATS public const int GL_COMPRESSED_TEXTURE_FORMATS = 34467 Field Value int GL_CONDITION_SATISFIED public const int GL_CONDITION_SATISFIED = 37148 Field Value int GL_CONSTANT_ALPHA public const int GL_CONSTANT_ALPHA = 32771 Field Value int GL_CONSTANT_COLOR public const int GL_CONSTANT_COLOR = 32769 Field Value int GL_CONTEXT_COMPATIBILITY_PROFILE_BIT public const int GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 2 Field Value int GL_CONTEXT_CORE_PROFILE_BIT public const int GL_CONTEXT_CORE_PROFILE_BIT = 1 Field Value int GL_CONTEXT_FLAGS public const int GL_CONTEXT_FLAGS = 33310 Field Value int GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT public const int GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 1 Field Value int GL_CONTEXT_PROFILE_MASK public const int GL_CONTEXT_PROFILE_MASK = 37158 Field Value int GL_COPY public const int GL_COPY = 5379 Field Value int GL_COPY_INVERTED public const int GL_COPY_INVERTED = 5388 Field Value int GL_COPY_READ_BUFFER public const int GL_COPY_READ_BUFFER = 36662 Field Value int GL_COPY_WRITE_BUFFER public const int GL_COPY_WRITE_BUFFER = 36663 Field Value int GL_CULL_FACE public const int GL_CULL_FACE = 2884 Field Value int GL_CULL_FACE_MODE public const int GL_CULL_FACE_MODE = 2885 Field Value int GL_CURRENT_PROGRAM public const int GL_CURRENT_PROGRAM = 35725 Field Value int GL_CURRENT_QUERY public const int GL_CURRENT_QUERY = 34917 Field Value int GL_CURRENT_VERTEX_ATTRIB public const int GL_CURRENT_VERTEX_ATTRIB = 34342 Field Value int GL_CW public const int GL_CW = 2304 Field Value int GL_DECR public const int GL_DECR = 7683 Field Value int GL_DECR_WRAP public const int GL_DECR_WRAP = 34056 Field Value int GL_DELETE_STATUS public const int GL_DELETE_STATUS = 35712 Field Value int GL_DEPTH public const int GL_DEPTH = 6145 Field Value int GL_DEPTH24_STENCIL8 public const int GL_DEPTH24_STENCIL8 = 35056 Field Value int GL_DEPTH32F_STENCIL8 public const int GL_DEPTH32F_STENCIL8 = 36013 Field Value int GL_DEPTH_ATTACHMENT public const int GL_DEPTH_ATTACHMENT = 36096 Field Value int GL_DEPTH_BUFFER_BIT public const int GL_DEPTH_BUFFER_BIT = 256 Field Value int GL_DEPTH_CLAMP public const int GL_DEPTH_CLAMP = 34383 Field Value int GL_DEPTH_CLEAR_VALUE public const int GL_DEPTH_CLEAR_VALUE = 2931 Field Value int GL_DEPTH_COMPONENT public const int GL_DEPTH_COMPONENT = 6402 Field Value int GL_DEPTH_COMPONENT16 public const int GL_DEPTH_COMPONENT16 = 33189 Field Value int GL_DEPTH_COMPONENT24 public const int GL_DEPTH_COMPONENT24 = 33190 Field Value int GL_DEPTH_COMPONENT32 public const int GL_DEPTH_COMPONENT32 = 33191 Field Value int GL_DEPTH_COMPONENT32F public const int GL_DEPTH_COMPONENT32F = 36012 Field Value int GL_DEPTH_FUNC public const int GL_DEPTH_FUNC = 2932 Field Value int GL_DEPTH_RANGE public const int GL_DEPTH_RANGE = 2928 Field Value int GL_DEPTH_STENCIL public const int GL_DEPTH_STENCIL = 34041 Field Value int GL_DEPTH_STENCIL_ATTACHMENT public const int GL_DEPTH_STENCIL_ATTACHMENT = 33306 Field Value int GL_DEPTH_TEST public const int GL_DEPTH_TEST = 2929 Field Value int GL_DEPTH_WRITEMASK public const int GL_DEPTH_WRITEMASK = 2930 Field Value int GL_DITHER public const int GL_DITHER = 3024 Field Value int GL_DONT_CARE public const int GL_DONT_CARE = 4352 Field Value int GL_DOUBLE public const int GL_DOUBLE = 5130 Field Value int GL_DOUBLEBUFFER public const int GL_DOUBLEBUFFER = 3122 Field Value int GL_DRAW_BUFFER public const int GL_DRAW_BUFFER = 3073 Field Value int GL_DRAW_BUFFER0 public const int GL_DRAW_BUFFER0 = 34853 Field Value int GL_DRAW_BUFFER1 public const int GL_DRAW_BUFFER1 = 34854 Field Value int GL_DRAW_BUFFER10 public const int GL_DRAW_BUFFER10 = 34863 Field Value int GL_DRAW_BUFFER11 public const int GL_DRAW_BUFFER11 = 34864 Field Value int GL_DRAW_BUFFER12 public const int GL_DRAW_BUFFER12 = 34865 Field Value int GL_DRAW_BUFFER13 public const int GL_DRAW_BUFFER13 = 34866 Field Value int GL_DRAW_BUFFER14 public const int GL_DRAW_BUFFER14 = 34867 Field Value int GL_DRAW_BUFFER15 public const int GL_DRAW_BUFFER15 = 34868 Field Value int GL_DRAW_BUFFER2 public const int GL_DRAW_BUFFER2 = 34855 Field Value int GL_DRAW_BUFFER3 public const int GL_DRAW_BUFFER3 = 34856 Field Value int GL_DRAW_BUFFER4 public const int GL_DRAW_BUFFER4 = 34857 Field Value int GL_DRAW_BUFFER5 public const int GL_DRAW_BUFFER5 = 34858 Field Value int GL_DRAW_BUFFER6 public const int GL_DRAW_BUFFER6 = 34859 Field Value int GL_DRAW_BUFFER7 public const int GL_DRAW_BUFFER7 = 34860 Field Value int GL_DRAW_BUFFER8 public const int GL_DRAW_BUFFER8 = 34861 Field Value int GL_DRAW_BUFFER9 public const int GL_DRAW_BUFFER9 = 34862 Field Value int GL_DRAW_FRAMEBUFFER public const int GL_DRAW_FRAMEBUFFER = 36009 Field Value int GL_DRAW_FRAMEBUFFER_BINDING public const int GL_DRAW_FRAMEBUFFER_BINDING = 36006 Field Value int GL_DST_ALPHA public const int GL_DST_ALPHA = 772 Field Value int GL_DST_COLOR public const int GL_DST_COLOR = 774 Field Value int GL_DYNAMIC_COPY public const int GL_DYNAMIC_COPY = 35050 Field Value int GL_DYNAMIC_DRAW public const int GL_DYNAMIC_DRAW = 35048 Field Value int GL_DYNAMIC_READ public const int GL_DYNAMIC_READ = 35049 Field Value int GL_ELEMENT_ARRAY_BUFFER public const int GL_ELEMENT_ARRAY_BUFFER = 34963 Field Value int GL_ELEMENT_ARRAY_BUFFER_BINDING public const int GL_ELEMENT_ARRAY_BUFFER_BINDING = 34965 Field Value int GL_EQUAL public const int GL_EQUAL = 514 Field Value int GL_EQUIV public const int GL_EQUIV = 5385 Field Value int GL_EXTENSIONS public const int GL_EXTENSIONS = 7939 Field Value int GL_FALSE public const int GL_FALSE = 0 Field Value int GL_FASTEST public const int GL_FASTEST = 4353 Field Value int GL_FILL public const int GL_FILL = 6914 Field Value int GL_FIRST_VERTEX_CONVENTION public const int GL_FIRST_VERTEX_CONVENTION = 36429 Field Value int GL_FIXED_ONLY public const int GL_FIXED_ONLY = 35101 Field Value int GL_FLOAT public const int GL_FLOAT = 5126 Field Value int GL_FLOAT_32_UNSIGNED_INT_24_8_REV public const int GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 36269 Field Value int GL_FLOAT_MAT2 public const int GL_FLOAT_MAT2 = 35674 Field Value int GL_FLOAT_MAT2x3 public const int GL_FLOAT_MAT2x3 = 35685 Field Value int GL_FLOAT_MAT2x4 public const int GL_FLOAT_MAT2x4 = 35686 Field Value int GL_FLOAT_MAT3 public const int GL_FLOAT_MAT3 = 35675 Field Value int GL_FLOAT_MAT3x2 public const int GL_FLOAT_MAT3x2 = 35687 Field Value int GL_FLOAT_MAT3x4 public const int GL_FLOAT_MAT3x4 = 35688 Field Value int GL_FLOAT_MAT4 public const int GL_FLOAT_MAT4 = 35676 Field Value int GL_FLOAT_MAT4x2 public const int GL_FLOAT_MAT4x2 = 35689 Field Value int GL_FLOAT_MAT4x3 public const int GL_FLOAT_MAT4x3 = 35690 Field Value int GL_FLOAT_VEC2 public const int GL_FLOAT_VEC2 = 35664 Field Value int GL_FLOAT_VEC3 public const int GL_FLOAT_VEC3 = 35665 Field Value int GL_FLOAT_VEC4 public const int GL_FLOAT_VEC4 = 35666 Field Value int GL_FRAGMENT_SHADER public const int GL_FRAGMENT_SHADER = 35632 Field Value int GL_FRAGMENT_SHADER_DERIVATIVE_HINT public const int GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 35723 Field Value int GL_FRAMEBUFFER public const int GL_FRAMEBUFFER = 36160 Field Value int GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301 Field Value int GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300 Field Value int GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING public const int GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296 Field Value int GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE public const int GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297 Field Value int GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302 Field Value int GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299 Field Value int GL_FRAMEBUFFER_ATTACHMENT_LAYERED public const int GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 36263 Field Value int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME public const int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049 Field Value int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE public const int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048 Field Value int GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298 Field Value int GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE public const int GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303 Field Value int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE public const int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051 Field Value int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER public const int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052 Field Value int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL public const int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050 Field Value int GL_FRAMEBUFFER_BINDING public const int GL_FRAMEBUFFER_BINDING = 36006 Field Value int GL_FRAMEBUFFER_COMPLETE public const int GL_FRAMEBUFFER_COMPLETE = 36053 Field Value int GL_FRAMEBUFFER_DEFAULT public const int GL_FRAMEBUFFER_DEFAULT = 33304 Field Value int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT public const int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054 Field Value int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER public const int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 36059 Field Value int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS public const int GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 36264 Field Value int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT public const int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055 Field Value int GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE public const int GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182 Field Value int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER public const int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 36060 Field Value int GL_FRAMEBUFFER_SRGB public const int GL_FRAMEBUFFER_SRGB = 36281 Field Value int GL_FRAMEBUFFER_UNDEFINED public const int GL_FRAMEBUFFER_UNDEFINED = 33305 Field Value int GL_FRAMEBUFFER_UNSUPPORTED public const int GL_FRAMEBUFFER_UNSUPPORTED = 36061 Field Value int GL_FRONT public const int GL_FRONT = 1028 Field Value int GL_FRONT_AND_BACK public const int GL_FRONT_AND_BACK = 1032 Field Value int GL_FRONT_FACE public const int GL_FRONT_FACE = 2886 Field Value int GL_FRONT_LEFT public const int GL_FRONT_LEFT = 1024 Field Value int GL_FRONT_RIGHT public const int GL_FRONT_RIGHT = 1025 Field Value int GL_FUNC_ADD public const int GL_FUNC_ADD = 32774 Field Value int GL_FUNC_REVERSE_SUBTRACT public const int GL_FUNC_REVERSE_SUBTRACT = 32779 Field Value int GL_FUNC_SUBTRACT public const int GL_FUNC_SUBTRACT = 32778 Field Value int GL_GEOMETRY_INPUT_TYPE public const int GL_GEOMETRY_INPUT_TYPE = 35095 Field Value int GL_GEOMETRY_OUTPUT_TYPE public const int GL_GEOMETRY_OUTPUT_TYPE = 35096 Field Value int GL_GEOMETRY_SHADER public const int GL_GEOMETRY_SHADER = 36313 Field Value int GL_GEOMETRY_VERTICES_OUT public const int GL_GEOMETRY_VERTICES_OUT = 35094 Field Value int GL_GEQUAL public const int GL_GEQUAL = 518 Field Value int GL_GREATER public const int GL_GREATER = 516 Field Value int GL_GREEN public const int GL_GREEN = 6404 Field Value int GL_GREEN_INTEGER public const int GL_GREEN_INTEGER = 36245 Field Value int GL_INCR public const int GL_INCR = 7682 Field Value int GL_INCR_WRAP public const int GL_INCR_WRAP = 34055 Field Value int GL_INFO_LOG_LENGTH public const int GL_INFO_LOG_LENGTH = 35716 Field Value int GL_INT public const int GL_INT = 5124 Field Value int GL_INTERLEAVED_ATTRIBS public const int GL_INTERLEAVED_ATTRIBS = 35980 Field Value int GL_INT_2_10_10_10_REV public const int GL_INT_2_10_10_10_REV = 36255 Field Value int GL_INT_SAMPLER_1D public const int GL_INT_SAMPLER_1D = 36297 Field Value int GL_INT_SAMPLER_1D_ARRAY public const int GL_INT_SAMPLER_1D_ARRAY = 36302 Field Value int GL_INT_SAMPLER_2D public const int GL_INT_SAMPLER_2D = 36298 Field Value int GL_INT_SAMPLER_2D_ARRAY public const int GL_INT_SAMPLER_2D_ARRAY = 36303 Field Value int GL_INT_SAMPLER_2D_MULTISAMPLE public const int GL_INT_SAMPLER_2D_MULTISAMPLE = 37129 Field Value int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY public const int GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 37132 Field Value int GL_INT_SAMPLER_2D_RECT public const int GL_INT_SAMPLER_2D_RECT = 36301 Field Value int GL_INT_SAMPLER_3D public const int GL_INT_SAMPLER_3D = 36299 Field Value int GL_INT_SAMPLER_BUFFER public const int GL_INT_SAMPLER_BUFFER = 36304 Field Value int GL_INT_SAMPLER_CUBE public const int GL_INT_SAMPLER_CUBE = 36300 Field Value int GL_INT_VEC2 public const int GL_INT_VEC2 = 35667 Field Value int GL_INT_VEC3 public const int GL_INT_VEC3 = 35668 Field Value int GL_INT_VEC4 public const int GL_INT_VEC4 = 35669 Field Value int GL_INVALID_ENUM public const int GL_INVALID_ENUM = 1280 Field Value int GL_INVALID_FRAMEBUFFER_OPERATION public const int GL_INVALID_FRAMEBUFFER_OPERATION = 1286 Field Value int GL_INVALID_INDEX public const uint GL_INVALID_INDEX = 4294967295 Field Value uint GL_INVALID_OPERATION public const int GL_INVALID_OPERATION = 1282 Field Value int GL_INVALID_VALUE public const int GL_INVALID_VALUE = 1281 Field Value int GL_INVERT public const int GL_INVERT = 5386 Field Value int GL_KEEP public const int GL_KEEP = 7680 Field Value int GL_LAST_VERTEX_CONVENTION public const int GL_LAST_VERTEX_CONVENTION = 36430 Field Value int GL_LEFT public const int GL_LEFT = 1030 Field Value int GL_LEQUAL public const int GL_LEQUAL = 515 Field Value int GL_LESS public const int GL_LESS = 513 Field Value int GL_LINE public const int GL_LINE = 6913 Field Value int GL_LINEAR public const int GL_LINEAR = 9729 Field Value int GL_LINEAR_MIPMAP_LINEAR public const int GL_LINEAR_MIPMAP_LINEAR = 9987 Field Value int GL_LINEAR_MIPMAP_NEAREST public const int GL_LINEAR_MIPMAP_NEAREST = 9985 Field Value int GL_LINES public const int GL_LINES = 1 Field Value int GL_LINES_ADJACENCY public const int GL_LINES_ADJACENCY = 10 Field Value int GL_LINE_LOOP public const int GL_LINE_LOOP = 2 Field Value int GL_LINE_SMOOTH public const int GL_LINE_SMOOTH = 2848 Field Value int GL_LINE_SMOOTH_HINT public const int GL_LINE_SMOOTH_HINT = 3154 Field Value int GL_LINE_STRIP public const int GL_LINE_STRIP = 3 Field Value int GL_LINE_STRIP_ADJACENCY public const int GL_LINE_STRIP_ADJACENCY = 11 Field Value int GL_LINE_WIDTH public const int GL_LINE_WIDTH = 2849 Field Value int GL_LINE_WIDTH_GRANULARITY public const int GL_LINE_WIDTH_GRANULARITY = 2851 Field Value int GL_LINE_WIDTH_RANGE public const int GL_LINE_WIDTH_RANGE = 2850 Field Value int GL_LINK_STATUS public const int GL_LINK_STATUS = 35714 Field Value int GL_LOGIC_OP_MODE public const int GL_LOGIC_OP_MODE = 3056 Field Value int GL_LOWER_LEFT public const int GL_LOWER_LEFT = 36001 Field Value int GL_MAJOR_VERSION public const int GL_MAJOR_VERSION = 33307 Field Value int GL_MAP_FLUSH_EXPLICIT_BIT public const int GL_MAP_FLUSH_EXPLICIT_BIT = 16 Field Value int GL_MAP_INVALIDATE_BUFFER_BIT public const int GL_MAP_INVALIDATE_BUFFER_BIT = 8 Field Value int GL_MAP_INVALIDATE_RANGE_BIT public const int GL_MAP_INVALIDATE_RANGE_BIT = 4 Field Value int GL_MAP_READ_BIT public const int GL_MAP_READ_BIT = 1 Field Value int GL_MAP_UNSYNCHRONIZED_BIT public const int GL_MAP_UNSYNCHRONIZED_BIT = 32 Field Value int GL_MAP_WRITE_BIT public const int GL_MAP_WRITE_BIT = 2 Field Value int GL_MAX public const int GL_MAX = 32776 Field Value int GL_MAX_3D_TEXTURE_SIZE public const int GL_MAX_3D_TEXTURE_SIZE = 32883 Field Value int GL_MAX_ARRAY_TEXTURE_LAYERS public const int GL_MAX_ARRAY_TEXTURE_LAYERS = 35071 Field Value int GL_MAX_CLIP_DISTANCES public const int GL_MAX_CLIP_DISTANCES = 3378 Field Value int GL_MAX_COLOR_ATTACHMENTS public const int GL_MAX_COLOR_ATTACHMENTS = 36063 Field Value int GL_MAX_COLOR_TEXTURE_SAMPLES public const int GL_MAX_COLOR_TEXTURE_SAMPLES = 37134 Field Value int GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS public const int GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379 Field Value int GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS public const int GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 35378 Field Value int GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS public const int GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661 Field Value int GL_MAX_COMBINED_UNIFORM_BLOCKS public const int GL_MAX_COMBINED_UNIFORM_BLOCKS = 35374 Field Value int GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS public const int GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377 Field Value int GL_MAX_CUBE_MAP_TEXTURE_SIZE public const int GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076 Field Value int GL_MAX_DEPTH_TEXTURE_SAMPLES public const int GL_MAX_DEPTH_TEXTURE_SAMPLES = 37135 Field Value int GL_MAX_DRAW_BUFFERS public const int GL_MAX_DRAW_BUFFERS = 34852 Field Value int GL_MAX_DUAL_SOURCE_DRAW_BUFFERS public const int GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 35068 Field Value int GL_MAX_ELEMENTS_INDICES public const int GL_MAX_ELEMENTS_INDICES = 33001 Field Value int GL_MAX_ELEMENTS_VERTICES public const int GL_MAX_ELEMENTS_VERTICES = 33000 Field Value int GL_MAX_FRAGMENT_INPUT_COMPONENTS public const int GL_MAX_FRAGMENT_INPUT_COMPONENTS = 37157 Field Value int GL_MAX_FRAGMENT_UNIFORM_BLOCKS public const int GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 35373 Field Value int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS public const int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657 Field Value int GL_MAX_GEOMETRY_INPUT_COMPONENTS public const int GL_MAX_GEOMETRY_INPUT_COMPONENTS = 37155 Field Value int GL_MAX_GEOMETRY_OUTPUT_COMPONENTS public const int GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 37156 Field Value int GL_MAX_GEOMETRY_OUTPUT_VERTICES public const int GL_MAX_GEOMETRY_OUTPUT_VERTICES = 36320 Field Value int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS public const int GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 35881 Field Value int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS public const int GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 36321 Field Value int GL_MAX_GEOMETRY_UNIFORM_BLOCKS public const int GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 35372 Field Value int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS public const int GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 36319 Field Value int GL_MAX_INTEGER_SAMPLES public const int GL_MAX_INTEGER_SAMPLES = 37136 Field Value int GL_MAX_PROGRAM_TEXEL_OFFSET public const int GL_MAX_PROGRAM_TEXEL_OFFSET = 35077 Field Value int GL_MAX_RECTANGLE_TEXTURE_SIZE public const int GL_MAX_RECTANGLE_TEXTURE_SIZE = 34040 Field Value int GL_MAX_RENDERBUFFER_SIZE public const int GL_MAX_RENDERBUFFER_SIZE = 34024 Field Value int GL_MAX_SAMPLES public const int GL_MAX_SAMPLES = 36183 Field Value int GL_MAX_SAMPLE_MASK_WORDS public const int GL_MAX_SAMPLE_MASK_WORDS = 36441 Field Value int GL_MAX_SERVER_WAIT_TIMEOUT public const int GL_MAX_SERVER_WAIT_TIMEOUT = 37137 Field Value int GL_MAX_TEXTURE_BUFFER_SIZE public const int GL_MAX_TEXTURE_BUFFER_SIZE = 35883 Field Value int GL_MAX_TEXTURE_IMAGE_UNITS public const int GL_MAX_TEXTURE_IMAGE_UNITS = 34930 Field Value int GL_MAX_TEXTURE_LOD_BIAS public const int GL_MAX_TEXTURE_LOD_BIAS = 34045 Field Value int GL_MAX_TEXTURE_SIZE public const int GL_MAX_TEXTURE_SIZE = 3379 Field Value int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS public const int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978 Field Value int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS public const int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979 Field Value int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS public const int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968 Field Value int GL_MAX_UNIFORM_BLOCK_SIZE public const int GL_MAX_UNIFORM_BLOCK_SIZE = 35376 Field Value int GL_MAX_UNIFORM_BUFFER_BINDINGS public const int GL_MAX_UNIFORM_BUFFER_BINDINGS = 35375 Field Value int GL_MAX_VARYING_COMPONENTS public const int GL_MAX_VARYING_COMPONENTS = 35659 Field Value int GL_MAX_VARYING_FLOATS public const int GL_MAX_VARYING_FLOATS = 35659 Field Value int GL_MAX_VERTEX_ATTRIBS public const int GL_MAX_VERTEX_ATTRIBS = 34921 Field Value int GL_MAX_VERTEX_OUTPUT_COMPONENTS public const int GL_MAX_VERTEX_OUTPUT_COMPONENTS = 37154 Field Value int GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS public const int GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660 Field Value int GL_MAX_VERTEX_UNIFORM_BLOCKS public const int GL_MAX_VERTEX_UNIFORM_BLOCKS = 35371 Field Value int GL_MAX_VERTEX_UNIFORM_COMPONENTS public const int GL_MAX_VERTEX_UNIFORM_COMPONENTS = 35658 Field Value int GL_MAX_VIEWPORT_DIMS public const int GL_MAX_VIEWPORT_DIMS = 3386 Field Value int GL_MIN public const int GL_MIN = 32775 Field Value int GL_MINOR_VERSION public const int GL_MINOR_VERSION = 33308 Field Value int GL_MIN_PROGRAM_TEXEL_OFFSET public const int GL_MIN_PROGRAM_TEXEL_OFFSET = 35076 Field Value int GL_MIRRORED_REPEAT public const int GL_MIRRORED_REPEAT = 33648 Field Value int GL_MULTISAMPLE public const int GL_MULTISAMPLE = 32925 Field Value int GL_NAND public const int GL_NAND = 5390 Field Value int GL_NEAREST public const int GL_NEAREST = 9728 Field Value int GL_NEAREST_MIPMAP_LINEAR public const int GL_NEAREST_MIPMAP_LINEAR = 9986 Field Value int GL_NEAREST_MIPMAP_NEAREST public const int GL_NEAREST_MIPMAP_NEAREST = 9984 Field Value int GL_NEVER public const int GL_NEVER = 512 Field Value int GL_NICEST public const int GL_NICEST = 4354 Field Value int GL_NONE public const int GL_NONE = 0 Field Value int GL_NOOP public const int GL_NOOP = 5381 Field Value int GL_NOR public const int GL_NOR = 5384 Field Value int GL_NOTEQUAL public const int GL_NOTEQUAL = 517 Field Value int GL_NO_ERROR public const int GL_NO_ERROR = 0 Field Value int GL_NUM_COMPRESSED_TEXTURE_FORMATS public const int GL_NUM_COMPRESSED_TEXTURE_FORMATS = 34466 Field Value int GL_NUM_EXTENSIONS public const int GL_NUM_EXTENSIONS = 33309 Field Value int GL_OBJECT_TYPE public const int GL_OBJECT_TYPE = 37138 Field Value int GL_ONE public const int GL_ONE = 1 Field Value int GL_ONE_MINUS_CONSTANT_ALPHA public const int GL_ONE_MINUS_CONSTANT_ALPHA = 32772 Field Value int GL_ONE_MINUS_CONSTANT_COLOR public const int GL_ONE_MINUS_CONSTANT_COLOR = 32770 Field Value int GL_ONE_MINUS_DST_ALPHA public const int GL_ONE_MINUS_DST_ALPHA = 773 Field Value int GL_ONE_MINUS_DST_COLOR public const int GL_ONE_MINUS_DST_COLOR = 775 Field Value int GL_ONE_MINUS_SRC1_ALPHA public const int GL_ONE_MINUS_SRC1_ALPHA = 35067 Field Value int GL_ONE_MINUS_SRC1_COLOR public const int GL_ONE_MINUS_SRC1_COLOR = 35066 Field Value int GL_ONE_MINUS_SRC_ALPHA public const int GL_ONE_MINUS_SRC_ALPHA = 771 Field Value int GL_ONE_MINUS_SRC_COLOR public const int GL_ONE_MINUS_SRC_COLOR = 769 Field Value int GL_OR public const int GL_OR = 5383 Field Value int GL_OR_INVERTED public const int GL_OR_INVERTED = 5389 Field Value int GL_OR_REVERSE public const int GL_OR_REVERSE = 5387 Field Value int GL_OUT_OF_MEMORY public const int GL_OUT_OF_MEMORY = 1285 Field Value int GL_PACK_ALIGNMENT public const int GL_PACK_ALIGNMENT = 3333 Field Value int GL_PACK_IMAGE_HEIGHT public const int GL_PACK_IMAGE_HEIGHT = 32876 Field Value int GL_PACK_LSB_FIRST public const int GL_PACK_LSB_FIRST = 3329 Field Value int GL_PACK_ROW_LENGTH public const int GL_PACK_ROW_LENGTH = 3330 Field Value int GL_PACK_SKIP_IMAGES public const int GL_PACK_SKIP_IMAGES = 32875 Field Value int GL_PACK_SKIP_PIXELS public const int GL_PACK_SKIP_PIXELS = 3332 Field Value int GL_PACK_SKIP_ROWS public const int GL_PACK_SKIP_ROWS = 3331 Field Value int GL_PACK_SWAP_BYTES public const int GL_PACK_SWAP_BYTES = 3328 Field Value int GL_PIXEL_PACK_BUFFER public const int GL_PIXEL_PACK_BUFFER = 35051 Field Value int GL_PIXEL_PACK_BUFFER_BINDING public const int GL_PIXEL_PACK_BUFFER_BINDING = 35053 Field Value int GL_PIXEL_UNPACK_BUFFER public const int GL_PIXEL_UNPACK_BUFFER = 35052 Field Value int GL_PIXEL_UNPACK_BUFFER_BINDING public const int GL_PIXEL_UNPACK_BUFFER_BINDING = 35055 Field Value int GL_POINT public const int GL_POINT = 6912 Field Value int GL_POINTS public const int GL_POINTS = 0 Field Value int GL_POINT_FADE_THRESHOLD_SIZE public const int GL_POINT_FADE_THRESHOLD_SIZE = 33064 Field Value int GL_POINT_SIZE public const int GL_POINT_SIZE = 2833 Field Value int GL_POINT_SIZE_GRANULARITY public const int GL_POINT_SIZE_GRANULARITY = 2835 Field Value int GL_POINT_SIZE_RANGE public const int GL_POINT_SIZE_RANGE = 2834 Field Value int GL_POINT_SPRITE_COORD_ORIGIN public const int GL_POINT_SPRITE_COORD_ORIGIN = 36000 Field Value int GL_POLYGON_MODE public const int GL_POLYGON_MODE = 2880 Field Value int GL_POLYGON_OFFSET_FACTOR public const int GL_POLYGON_OFFSET_FACTOR = 32824 Field Value int GL_POLYGON_OFFSET_FILL public const int GL_POLYGON_OFFSET_FILL = 32823 Field Value int GL_POLYGON_OFFSET_LINE public const int GL_POLYGON_OFFSET_LINE = 10754 Field Value int GL_POLYGON_OFFSET_POINT public const int GL_POLYGON_OFFSET_POINT = 10753 Field Value int GL_POLYGON_OFFSET_UNITS public const int GL_POLYGON_OFFSET_UNITS = 10752 Field Value int GL_POLYGON_SMOOTH public const int GL_POLYGON_SMOOTH = 2881 Field Value int GL_POLYGON_SMOOTH_HINT public const int GL_POLYGON_SMOOTH_HINT = 3155 Field Value int GL_PRIMITIVES_GENERATED public const int GL_PRIMITIVES_GENERATED = 35975 Field Value int GL_PRIMITIVE_RESTART public const int GL_PRIMITIVE_RESTART = 36765 Field Value int GL_PRIMITIVE_RESTART_INDEX public const int GL_PRIMITIVE_RESTART_INDEX = 36766 Field Value int GL_PROGRAM_POINT_SIZE public const int GL_PROGRAM_POINT_SIZE = 34370 Field Value int GL_PROVOKING_VERTEX public const int GL_PROVOKING_VERTEX = 36431 Field Value int GL_PROXY_TEXTURE_1D public const int GL_PROXY_TEXTURE_1D = 32867 Field Value int GL_PROXY_TEXTURE_1D_ARRAY public const int GL_PROXY_TEXTURE_1D_ARRAY = 35865 Field Value int GL_PROXY_TEXTURE_2D public const int GL_PROXY_TEXTURE_2D = 32868 Field Value int GL_PROXY_TEXTURE_2D_ARRAY public const int GL_PROXY_TEXTURE_2D_ARRAY = 35867 Field Value int GL_PROXY_TEXTURE_2D_MULTISAMPLE public const int GL_PROXY_TEXTURE_2D_MULTISAMPLE = 37121 Field Value int GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY public const int GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 37123 Field Value int GL_PROXY_TEXTURE_3D public const int GL_PROXY_TEXTURE_3D = 32880 Field Value int GL_PROXY_TEXTURE_CUBE_MAP public const int GL_PROXY_TEXTURE_CUBE_MAP = 34075 Field Value int GL_PROXY_TEXTURE_RECTANGLE public const int GL_PROXY_TEXTURE_RECTANGLE = 34039 Field Value int GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION public const int GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 36428 Field Value int GL_QUERY_BY_REGION_NO_WAIT public const int GL_QUERY_BY_REGION_NO_WAIT = 36374 Field Value int GL_QUERY_BY_REGION_WAIT public const int GL_QUERY_BY_REGION_WAIT = 36373 Field Value int GL_QUERY_COUNTER_BITS public const int GL_QUERY_COUNTER_BITS = 34916 Field Value int GL_QUERY_NO_WAIT public const int GL_QUERY_NO_WAIT = 36372 Field Value int GL_QUERY_RESULT public const int GL_QUERY_RESULT = 34918 Field Value int GL_QUERY_RESULT_AVAILABLE public const int GL_QUERY_RESULT_AVAILABLE = 34919 Field Value int GL_QUERY_WAIT public const int GL_QUERY_WAIT = 36371 Field Value int GL_R11F_G11F_B10F public const int GL_R11F_G11F_B10F = 35898 Field Value int GL_R16 public const int GL_R16 = 33322 Field Value int GL_R16F public const int GL_R16F = 33325 Field Value int GL_R16I public const int GL_R16I = 33331 Field Value int GL_R16UI public const int GL_R16UI = 33332 Field Value int GL_R16_SNORM public const int GL_R16_SNORM = 36760 Field Value int GL_R32F public const int GL_R32F = 33326 Field Value int GL_R32I public const int GL_R32I = 33333 Field Value int GL_R32UI public const int GL_R32UI = 33334 Field Value int GL_R3_G3_B2 public const int GL_R3_G3_B2 = 10768 Field Value int GL_R8 public const int GL_R8 = 33321 Field Value int GL_R8I public const int GL_R8I = 33329 Field Value int GL_R8UI public const int GL_R8UI = 33330 Field Value int GL_R8_SNORM public const int GL_R8_SNORM = 36756 Field Value int GL_RASTERIZER_DISCARD public const int GL_RASTERIZER_DISCARD = 35977 Field Value int GL_READ_BUFFER public const int GL_READ_BUFFER = 3074 Field Value int GL_READ_FRAMEBUFFER public const int GL_READ_FRAMEBUFFER = 36008 Field Value int GL_READ_FRAMEBUFFER_BINDING public const int GL_READ_FRAMEBUFFER_BINDING = 36010 Field Value int GL_READ_ONLY public const int GL_READ_ONLY = 35000 Field Value int GL_READ_WRITE public const int GL_READ_WRITE = 35002 Field Value int GL_RED public const int GL_RED = 6403 Field Value int GL_RED_INTEGER public const int GL_RED_INTEGER = 36244 Field Value int GL_RENDERBUFFER public const int GL_RENDERBUFFER = 36161 Field Value int GL_RENDERBUFFER_ALPHA_SIZE public const int GL_RENDERBUFFER_ALPHA_SIZE = 36179 Field Value int GL_RENDERBUFFER_BINDING public const int GL_RENDERBUFFER_BINDING = 36007 Field Value int GL_RENDERBUFFER_BLUE_SIZE public const int GL_RENDERBUFFER_BLUE_SIZE = 36178 Field Value int GL_RENDERBUFFER_DEPTH_SIZE public const int GL_RENDERBUFFER_DEPTH_SIZE = 36180 Field Value int GL_RENDERBUFFER_GREEN_SIZE public const int GL_RENDERBUFFER_GREEN_SIZE = 36177 Field Value int GL_RENDERBUFFER_HEIGHT public const int GL_RENDERBUFFER_HEIGHT = 36163 Field Value int GL_RENDERBUFFER_INTERNAL_FORMAT public const int GL_RENDERBUFFER_INTERNAL_FORMAT = 36164 Field Value int GL_RENDERBUFFER_RED_SIZE public const int GL_RENDERBUFFER_RED_SIZE = 36176 Field Value int GL_RENDERBUFFER_SAMPLES public const int GL_RENDERBUFFER_SAMPLES = 36011 Field Value int GL_RENDERBUFFER_STENCIL_SIZE public const int GL_RENDERBUFFER_STENCIL_SIZE = 36181 Field Value int GL_RENDERBUFFER_WIDTH public const int GL_RENDERBUFFER_WIDTH = 36162 Field Value int GL_RENDERER public const int GL_RENDERER = 7937 Field Value int GL_REPEAT public const int GL_REPEAT = 10497 Field Value int GL_REPLACE public const int GL_REPLACE = 7681 Field Value int GL_RG public const int GL_RG = 33319 Field Value int GL_RG16 public const int GL_RG16 = 33324 Field Value int GL_RG16F public const int GL_RG16F = 33327 Field Value int GL_RG16I public const int GL_RG16I = 33337 Field Value int GL_RG16UI public const int GL_RG16UI = 33338 Field Value int GL_RG16_SNORM public const int GL_RG16_SNORM = 36761 Field Value int GL_RG32F public const int GL_RG32F = 33328 Field Value int GL_RG32I public const int GL_RG32I = 33339 Field Value int GL_RG32UI public const int GL_RG32UI = 33340 Field Value int GL_RG8 public const int GL_RG8 = 33323 Field Value int GL_RG8I public const int GL_RG8I = 33335 Field Value int GL_RG8UI public const int GL_RG8UI = 33336 Field Value int GL_RG8_SNORM public const int GL_RG8_SNORM = 36757 Field Value int GL_RGB public const int GL_RGB = 6407 Field Value int GL_RGB10 public const int GL_RGB10 = 32850 Field Value int GL_RGB10_A2 public const int GL_RGB10_A2 = 32857 Field Value int GL_RGB10_A2UI public const int GL_RGB10_A2UI = 36975 Field Value int GL_RGB12 public const int GL_RGB12 = 32851 Field Value int GL_RGB16 public const int GL_RGB16 = 32852 Field Value int GL_RGB16F public const int GL_RGB16F = 34843 Field Value int GL_RGB16I public const int GL_RGB16I = 36233 Field Value int GL_RGB16UI public const int GL_RGB16UI = 36215 Field Value int GL_RGB16_SNORM public const int GL_RGB16_SNORM = 36762 Field Value int GL_RGB32F public const int GL_RGB32F = 34837 Field Value int GL_RGB32I public const int GL_RGB32I = 36227 Field Value int GL_RGB32UI public const int GL_RGB32UI = 36209 Field Value int GL_RGB4 public const int GL_RGB4 = 32847 Field Value int GL_RGB5 public const int GL_RGB5 = 32848 Field Value int GL_RGB5_A1 public const int GL_RGB5_A1 = 32855 Field Value int GL_RGB8 public const int GL_RGB8 = 32849 Field Value int GL_RGB8I public const int GL_RGB8I = 36239 Field Value int GL_RGB8UI public const int GL_RGB8UI = 36221 Field Value int GL_RGB8_SNORM public const int GL_RGB8_SNORM = 36758 Field Value int GL_RGB9_E5 public const int GL_RGB9_E5 = 35901 Field Value int GL_RGBA public const int GL_RGBA = 6408 Field Value int GL_RGBA12 public const int GL_RGBA12 = 32858 Field Value int GL_RGBA16 public const int GL_RGBA16 = 32859 Field Value int GL_RGBA16F public const int GL_RGBA16F = 34842 Field Value int GL_RGBA16I public const int GL_RGBA16I = 36232 Field Value int GL_RGBA16UI public const int GL_RGBA16UI = 36214 Field Value int GL_RGBA16_SNORM public const int GL_RGBA16_SNORM = 36763 Field Value int GL_RGBA2 public const int GL_RGBA2 = 32853 Field Value int GL_RGBA32F public const int GL_RGBA32F = 34836 Field Value int GL_RGBA32I public const int GL_RGBA32I = 36226 Field Value int GL_RGBA32UI public const int GL_RGBA32UI = 36208 Field Value int GL_RGBA4 public const int GL_RGBA4 = 32854 Field Value int GL_RGBA8 public const int GL_RGBA8 = 32856 Field Value int GL_RGBA8I public const int GL_RGBA8I = 36238 Field Value int GL_RGBA8UI public const int GL_RGBA8UI = 36220 Field Value int GL_RGBA8_SNORM public const int GL_RGBA8_SNORM = 36759 Field Value int GL_RGBA_INTEGER public const int GL_RGBA_INTEGER = 36249 Field Value int GL_RGB_INTEGER public const int GL_RGB_INTEGER = 36248 Field Value int GL_RG_INTEGER public const int GL_RG_INTEGER = 33320 Field Value int GL_RIGHT public const int GL_RIGHT = 1031 Field Value int GL_SAMPLER_1D public const int GL_SAMPLER_1D = 35677 Field Value int GL_SAMPLER_1D_ARRAY public const int GL_SAMPLER_1D_ARRAY = 36288 Field Value int GL_SAMPLER_1D_ARRAY_SHADOW public const int GL_SAMPLER_1D_ARRAY_SHADOW = 36291 Field Value int GL_SAMPLER_1D_SHADOW public const int GL_SAMPLER_1D_SHADOW = 35681 Field Value int GL_SAMPLER_2D public const int GL_SAMPLER_2D = 35678 Field Value int GL_SAMPLER_2D_ARRAY public const int GL_SAMPLER_2D_ARRAY = 36289 Field Value int GL_SAMPLER_2D_ARRAY_SHADOW public const int GL_SAMPLER_2D_ARRAY_SHADOW = 36292 Field Value int GL_SAMPLER_2D_MULTISAMPLE public const int GL_SAMPLER_2D_MULTISAMPLE = 37128 Field Value int GL_SAMPLER_2D_MULTISAMPLE_ARRAY public const int GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 37131 Field Value int GL_SAMPLER_2D_RECT public const int GL_SAMPLER_2D_RECT = 35683 Field Value int GL_SAMPLER_2D_RECT_SHADOW public const int GL_SAMPLER_2D_RECT_SHADOW = 35684 Field Value int GL_SAMPLER_2D_SHADOW public const int GL_SAMPLER_2D_SHADOW = 35682 Field Value int GL_SAMPLER_3D public const int GL_SAMPLER_3D = 35679 Field Value int GL_SAMPLER_BINDING public const int GL_SAMPLER_BINDING = 35097 Field Value int GL_SAMPLER_BUFFER public const int GL_SAMPLER_BUFFER = 36290 Field Value int GL_SAMPLER_CUBE public const int GL_SAMPLER_CUBE = 35680 Field Value int GL_SAMPLER_CUBE_SHADOW public const int GL_SAMPLER_CUBE_SHADOW = 36293 Field Value int GL_SAMPLES public const int GL_SAMPLES = 32937 Field Value int GL_SAMPLES_PASSED public const int GL_SAMPLES_PASSED = 35092 Field Value int GL_SAMPLE_ALPHA_TO_COVERAGE public const int GL_SAMPLE_ALPHA_TO_COVERAGE = 32926 Field Value int GL_SAMPLE_ALPHA_TO_ONE public const int GL_SAMPLE_ALPHA_TO_ONE = 32927 Field Value int GL_SAMPLE_BUFFERS public const int GL_SAMPLE_BUFFERS = 32936 Field Value int GL_SAMPLE_COVERAGE public const int GL_SAMPLE_COVERAGE = 32928 Field Value int GL_SAMPLE_COVERAGE_INVERT public const int GL_SAMPLE_COVERAGE_INVERT = 32939 Field Value int GL_SAMPLE_COVERAGE_VALUE public const int GL_SAMPLE_COVERAGE_VALUE = 32938 Field Value int GL_SAMPLE_MASK public const int GL_SAMPLE_MASK = 36433 Field Value int GL_SAMPLE_MASK_VALUE public const int GL_SAMPLE_MASK_VALUE = 36434 Field Value int GL_SAMPLE_POSITION public const int GL_SAMPLE_POSITION = 36432 Field Value int GL_SCISSOR_BOX public const int GL_SCISSOR_BOX = 3088 Field Value int GL_SCISSOR_TEST public const int GL_SCISSOR_TEST = 3089 Field Value int GL_SEPARATE_ATTRIBS public const int GL_SEPARATE_ATTRIBS = 35981 Field Value int GL_SET public const int GL_SET = 5391 Field Value int GL_SHADER_SOURCE_LENGTH public const int GL_SHADER_SOURCE_LENGTH = 35720 Field Value int GL_SHADER_TYPE public const int GL_SHADER_TYPE = 35663 Field Value int GL_SHADING_LANGUAGE_VERSION public const int GL_SHADING_LANGUAGE_VERSION = 35724 Field Value int GL_SHORT public const int GL_SHORT = 5122 Field Value int GL_SIGNALED public const int GL_SIGNALED = 37145 Field Value int GL_SIGNED_NORMALIZED public const int GL_SIGNED_NORMALIZED = 36764 Field Value int GL_SMOOTH_LINE_WIDTH_GRANULARITY public const int GL_SMOOTH_LINE_WIDTH_GRANULARITY = 2851 Field Value int GL_SMOOTH_LINE_WIDTH_RANGE public const int GL_SMOOTH_LINE_WIDTH_RANGE = 2850 Field Value int GL_SMOOTH_POINT_SIZE_GRANULARITY public const int GL_SMOOTH_POINT_SIZE_GRANULARITY = 2835 Field Value int GL_SMOOTH_POINT_SIZE_RANGE public const int GL_SMOOTH_POINT_SIZE_RANGE = 2834 Field Value int GL_SRC1_ALPHA public const int GL_SRC1_ALPHA = 34185 Field Value int GL_SRC1_COLOR public const int GL_SRC1_COLOR = 35065 Field Value int GL_SRC_ALPHA public const int GL_SRC_ALPHA = 770 Field Value int GL_SRC_ALPHA_SATURATE public const int GL_SRC_ALPHA_SATURATE = 776 Field Value int GL_SRC_COLOR public const int GL_SRC_COLOR = 768 Field Value int GL_SRGB public const int GL_SRGB = 35904 Field Value int GL_SRGB8 public const int GL_SRGB8 = 35905 Field Value int GL_SRGB8_ALPHA8 public const int GL_SRGB8_ALPHA8 = 35907 Field Value int GL_SRGB_ALPHA public const int GL_SRGB_ALPHA = 35906 Field Value int GL_STATIC_COPY public const int GL_STATIC_COPY = 35046 Field Value int GL_STATIC_DRAW public const int GL_STATIC_DRAW = 35044 Field Value int GL_STATIC_READ public const int GL_STATIC_READ = 35045 Field Value int GL_STENCIL public const int GL_STENCIL = 6146 Field Value int GL_STENCIL_ATTACHMENT public const int GL_STENCIL_ATTACHMENT = 36128 Field Value int GL_STENCIL_BACK_FAIL public const int GL_STENCIL_BACK_FAIL = 34817 Field Value int GL_STENCIL_BACK_FUNC public const int GL_STENCIL_BACK_FUNC = 34816 Field Value int GL_STENCIL_BACK_PASS_DEPTH_FAIL public const int GL_STENCIL_BACK_PASS_DEPTH_FAIL = 34818 Field Value int GL_STENCIL_BACK_PASS_DEPTH_PASS public const int GL_STENCIL_BACK_PASS_DEPTH_PASS = 34819 Field Value int GL_STENCIL_BACK_REF public const int GL_STENCIL_BACK_REF = 36003 Field Value int GL_STENCIL_BACK_VALUE_MASK public const int GL_STENCIL_BACK_VALUE_MASK = 36004 Field Value int GL_STENCIL_BACK_WRITEMASK public const int GL_STENCIL_BACK_WRITEMASK = 36005 Field Value int GL_STENCIL_BUFFER_BIT public const int GL_STENCIL_BUFFER_BIT = 1024 Field Value int GL_STENCIL_CLEAR_VALUE public const int GL_STENCIL_CLEAR_VALUE = 2961 Field Value int GL_STENCIL_FAIL public const int GL_STENCIL_FAIL = 2964 Field Value int GL_STENCIL_FUNC public const int GL_STENCIL_FUNC = 2962 Field Value int GL_STENCIL_INDEX public const int GL_STENCIL_INDEX = 6401 Field Value int GL_STENCIL_INDEX1 public const int GL_STENCIL_INDEX1 = 36166 Field Value int GL_STENCIL_INDEX16 public const int GL_STENCIL_INDEX16 = 36169 Field Value int GL_STENCIL_INDEX4 public const int GL_STENCIL_INDEX4 = 36167 Field Value int GL_STENCIL_INDEX8 public const int GL_STENCIL_INDEX8 = 36168 Field Value int GL_STENCIL_PASS_DEPTH_FAIL public const int GL_STENCIL_PASS_DEPTH_FAIL = 2965 Field Value int GL_STENCIL_PASS_DEPTH_PASS public const int GL_STENCIL_PASS_DEPTH_PASS = 2966 Field Value int GL_STENCIL_REF public const int GL_STENCIL_REF = 2967 Field Value int GL_STENCIL_TEST public const int GL_STENCIL_TEST = 2960 Field Value int GL_STENCIL_VALUE_MASK public const int GL_STENCIL_VALUE_MASK = 2963 Field Value int GL_STENCIL_WRITEMASK public const int GL_STENCIL_WRITEMASK = 2968 Field Value int GL_STEREO public const int GL_STEREO = 3123 Field Value int GL_STREAM_COPY public const int GL_STREAM_COPY = 35042 Field Value int GL_STREAM_DRAW public const int GL_STREAM_DRAW = 35040 Field Value int GL_STREAM_READ public const int GL_STREAM_READ = 35041 Field Value int GL_SUBPIXEL_BITS public const int GL_SUBPIXEL_BITS = 3408 Field Value int GL_SYNC_CONDITION public const int GL_SYNC_CONDITION = 37139 Field Value int GL_SYNC_FENCE public const int GL_SYNC_FENCE = 37142 Field Value int GL_SYNC_FLAGS public const int GL_SYNC_FLAGS = 37141 Field Value int GL_SYNC_FLUSH_COMMANDS_BIT public const int GL_SYNC_FLUSH_COMMANDS_BIT = 1 Field Value int GL_SYNC_GPU_COMMANDS_COMPLETE public const int GL_SYNC_GPU_COMMANDS_COMPLETE = 37143 Field Value int GL_SYNC_STATUS public const int GL_SYNC_STATUS = 37140 Field Value int GL_TEXTURE public const int GL_TEXTURE = 5890 Field Value int GL_TEXTURE0 public const int GL_TEXTURE0 = 33984 Field Value int GL_TEXTURE1 public const int GL_TEXTURE1 = 33985 Field Value int GL_TEXTURE10 public const int GL_TEXTURE10 = 33994 Field Value int GL_TEXTURE11 public const int GL_TEXTURE11 = 33995 Field Value int GL_TEXTURE12 public const int GL_TEXTURE12 = 33996 Field Value int GL_TEXTURE13 public const int GL_TEXTURE13 = 33997 Field Value int GL_TEXTURE14 public const int GL_TEXTURE14 = 33998 Field Value int GL_TEXTURE15 public const int GL_TEXTURE15 = 33999 Field Value int GL_TEXTURE16 public const int GL_TEXTURE16 = 34000 Field Value int GL_TEXTURE17 public const int GL_TEXTURE17 = 34001 Field Value int GL_TEXTURE18 public const int GL_TEXTURE18 = 34002 Field Value int GL_TEXTURE19 public const int GL_TEXTURE19 = 34003 Field Value int GL_TEXTURE2 public const int GL_TEXTURE2 = 33986 Field Value int GL_TEXTURE20 public const int GL_TEXTURE20 = 34004 Field Value int GL_TEXTURE21 public const int GL_TEXTURE21 = 34005 Field Value int GL_TEXTURE22 public const int GL_TEXTURE22 = 34006 Field Value int GL_TEXTURE23 public const int GL_TEXTURE23 = 34007 Field Value int GL_TEXTURE24 public const int GL_TEXTURE24 = 34008 Field Value int GL_TEXTURE25 public const int GL_TEXTURE25 = 34009 Field Value int GL_TEXTURE26 public const int GL_TEXTURE26 = 34010 Field Value int GL_TEXTURE27 public const int GL_TEXTURE27 = 34011 Field Value int GL_TEXTURE28 public const int GL_TEXTURE28 = 34012 Field Value int GL_TEXTURE29 public const int GL_TEXTURE29 = 34013 Field Value int GL_TEXTURE3 public const int GL_TEXTURE3 = 33987 Field Value int GL_TEXTURE30 public const int GL_TEXTURE30 = 34014 Field Value int GL_TEXTURE31 public const int GL_TEXTURE31 = 34015 Field Value int GL_TEXTURE4 public const int GL_TEXTURE4 = 33988 Field Value int GL_TEXTURE5 public const int GL_TEXTURE5 = 33989 Field Value int GL_TEXTURE6 public const int GL_TEXTURE6 = 33990 Field Value int GL_TEXTURE7 public const int GL_TEXTURE7 = 33991 Field Value int GL_TEXTURE8 public const int GL_TEXTURE8 = 33992 Field Value int GL_TEXTURE9 public const int GL_TEXTURE9 = 33993 Field Value int GL_TEXTURE_1D public const int GL_TEXTURE_1D = 3552 Field Value int GL_TEXTURE_1D_ARRAY public const int GL_TEXTURE_1D_ARRAY = 35864 Field Value int GL_TEXTURE_2D public const int GL_TEXTURE_2D = 3553 Field Value int GL_TEXTURE_2D_ARRAY public const int GL_TEXTURE_2D_ARRAY = 35866 Field Value int GL_TEXTURE_2D_MULTISAMPLE public const int GL_TEXTURE_2D_MULTISAMPLE = 37120 Field Value int GL_TEXTURE_2D_MULTISAMPLE_ARRAY public const int GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 37122 Field Value int GL_TEXTURE_3D public const int GL_TEXTURE_3D = 32879 Field Value int GL_TEXTURE_ALPHA_SIZE public const int GL_TEXTURE_ALPHA_SIZE = 32863 Field Value int GL_TEXTURE_ALPHA_TYPE public const int GL_TEXTURE_ALPHA_TYPE = 35859 Field Value int GL_TEXTURE_BASE_LEVEL public const int GL_TEXTURE_BASE_LEVEL = 33084 Field Value int GL_TEXTURE_BINDING_1D public const int GL_TEXTURE_BINDING_1D = 32872 Field Value int GL_TEXTURE_BINDING_1D_ARRAY public const int GL_TEXTURE_BINDING_1D_ARRAY = 35868 Field Value int GL_TEXTURE_BINDING_2D public const int GL_TEXTURE_BINDING_2D = 32873 Field Value int GL_TEXTURE_BINDING_2D_ARRAY public const int GL_TEXTURE_BINDING_2D_ARRAY = 35869 Field Value int GL_TEXTURE_BINDING_2D_MULTISAMPLE public const int GL_TEXTURE_BINDING_2D_MULTISAMPLE = 37124 Field Value int GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY public const int GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 37125 Field Value int GL_TEXTURE_BINDING_3D public const int GL_TEXTURE_BINDING_3D = 32874 Field Value int GL_TEXTURE_BINDING_BUFFER public const int GL_TEXTURE_BINDING_BUFFER = 35884 Field Value int GL_TEXTURE_BINDING_CUBE_MAP public const int GL_TEXTURE_BINDING_CUBE_MAP = 34068 Field Value int GL_TEXTURE_BINDING_RECTANGLE public const int GL_TEXTURE_BINDING_RECTANGLE = 34038 Field Value int GL_TEXTURE_BLUE_SIZE public const int GL_TEXTURE_BLUE_SIZE = 32862 Field Value int GL_TEXTURE_BLUE_TYPE public const int GL_TEXTURE_BLUE_TYPE = 35858 Field Value int GL_TEXTURE_BORDER_COLOR public const int GL_TEXTURE_BORDER_COLOR = 4100 Field Value int GL_TEXTURE_BUFFER public const int GL_TEXTURE_BUFFER = 35882 Field Value int GL_TEXTURE_BUFFER_DATA_STORE_BINDING public const int GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 35885 Field Value int GL_TEXTURE_COMPARE_FUNC public const int GL_TEXTURE_COMPARE_FUNC = 34893 Field Value int GL_TEXTURE_COMPARE_MODE public const int GL_TEXTURE_COMPARE_MODE = 34892 Field Value int GL_TEXTURE_COMPRESSED public const int GL_TEXTURE_COMPRESSED = 34465 Field Value int GL_TEXTURE_COMPRESSED_IMAGE_SIZE public const int GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 34464 Field Value int GL_TEXTURE_COMPRESSION_HINT public const int GL_TEXTURE_COMPRESSION_HINT = 34031 Field Value int GL_TEXTURE_CUBE_MAP public const int GL_TEXTURE_CUBE_MAP = 34067 Field Value int GL_TEXTURE_CUBE_MAP_NEGATIVE_X public const int GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 34070 Field Value int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y public const int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072 Field Value int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z public const int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074 Field Value int GL_TEXTURE_CUBE_MAP_POSITIVE_X public const int GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069 Field Value int GL_TEXTURE_CUBE_MAP_POSITIVE_Y public const int GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 34071 Field Value int GL_TEXTURE_CUBE_MAP_POSITIVE_Z public const int GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 34073 Field Value int GL_TEXTURE_CUBE_MAP_SEAMLESS public const int GL_TEXTURE_CUBE_MAP_SEAMLESS = 34895 Field Value int GL_TEXTURE_DEPTH public const int GL_TEXTURE_DEPTH = 32881 Field Value int GL_TEXTURE_DEPTH_SIZE public const int GL_TEXTURE_DEPTH_SIZE = 34890 Field Value int GL_TEXTURE_DEPTH_TYPE public const int GL_TEXTURE_DEPTH_TYPE = 35862 Field Value int GL_TEXTURE_FIXED_SAMPLE_LOCATIONS public const int GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 37127 Field Value int GL_TEXTURE_GREEN_SIZE public const int GL_TEXTURE_GREEN_SIZE = 32861 Field Value int GL_TEXTURE_GREEN_TYPE public const int GL_TEXTURE_GREEN_TYPE = 35857 Field Value int GL_TEXTURE_HEIGHT public const int GL_TEXTURE_HEIGHT = 4097 Field Value int GL_TEXTURE_INTERNAL_FORMAT public const int GL_TEXTURE_INTERNAL_FORMAT = 4099 Field Value int GL_TEXTURE_LOD_BIAS public const int GL_TEXTURE_LOD_BIAS = 34049 Field Value int GL_TEXTURE_MAG_FILTER public const int GL_TEXTURE_MAG_FILTER = 10240 Field Value int GL_TEXTURE_MAX_LEVEL public const int GL_TEXTURE_MAX_LEVEL = 33085 Field Value int GL_TEXTURE_MAX_LOD public const int GL_TEXTURE_MAX_LOD = 33083 Field Value int GL_TEXTURE_MIN_FILTER public const int GL_TEXTURE_MIN_FILTER = 10241 Field Value int GL_TEXTURE_MIN_LOD public const int GL_TEXTURE_MIN_LOD = 33082 Field Value int GL_TEXTURE_RECTANGLE public const int GL_TEXTURE_RECTANGLE = 34037 Field Value int GL_TEXTURE_RED_SIZE public const int GL_TEXTURE_RED_SIZE = 32860 Field Value int GL_TEXTURE_RED_TYPE public const int GL_TEXTURE_RED_TYPE = 35856 Field Value int GL_TEXTURE_SAMPLES public const int GL_TEXTURE_SAMPLES = 37126 Field Value int GL_TEXTURE_SHARED_SIZE public const int GL_TEXTURE_SHARED_SIZE = 35903 Field Value int GL_TEXTURE_STENCIL_SIZE public const int GL_TEXTURE_STENCIL_SIZE = 35057 Field Value int GL_TEXTURE_SWIZZLE_A public const int GL_TEXTURE_SWIZZLE_A = 36421 Field Value int GL_TEXTURE_SWIZZLE_B public const int GL_TEXTURE_SWIZZLE_B = 36420 Field Value int GL_TEXTURE_SWIZZLE_G public const int GL_TEXTURE_SWIZZLE_G = 36419 Field Value int GL_TEXTURE_SWIZZLE_R public const int GL_TEXTURE_SWIZZLE_R = 36418 Field Value int GL_TEXTURE_SWIZZLE_RGBA public const int GL_TEXTURE_SWIZZLE_RGBA = 36422 Field Value int GL_TEXTURE_WIDTH public const int GL_TEXTURE_WIDTH = 4096 Field Value int GL_TEXTURE_WRAP_R public const int GL_TEXTURE_WRAP_R = 32882 Field Value int GL_TEXTURE_WRAP_S public const int GL_TEXTURE_WRAP_S = 10242 Field Value int GL_TEXTURE_WRAP_T public const int GL_TEXTURE_WRAP_T = 10243 Field Value int GL_TIMEOUT_EXPIRED public const int GL_TIMEOUT_EXPIRED = 37147 Field Value int GL_TIMEOUT_IGNORED public const ulong GL_TIMEOUT_IGNORED = 18446744073709551615 Field Value ulong GL_TIMESTAMP public const int GL_TIMESTAMP = 36392 Field Value int GL_TIME_ELAPSED public const int GL_TIME_ELAPSED = 35007 Field Value int GL_TRANSFORM_FEEDBACK_BUFFER public const int GL_TRANSFORM_FEEDBACK_BUFFER = 35982 Field Value int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING public const int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983 Field Value int GL_TRANSFORM_FEEDBACK_BUFFER_MODE public const int GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 35967 Field Value int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE public const int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973 Field Value int GL_TRANSFORM_FEEDBACK_BUFFER_START public const int GL_TRANSFORM_FEEDBACK_BUFFER_START = 35972 Field Value int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN public const int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976 Field Value int GL_TRANSFORM_FEEDBACK_VARYINGS public const int GL_TRANSFORM_FEEDBACK_VARYINGS = 35971 Field Value int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH public const int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 35958 Field Value int GL_TRIANGLES public const int GL_TRIANGLES = 4 Field Value int GL_TRIANGLES_ADJACENCY public const int GL_TRIANGLES_ADJACENCY = 12 Field Value int GL_TRIANGLE_FAN public const int GL_TRIANGLE_FAN = 6 Field Value int GL_TRIANGLE_STRIP public const int GL_TRIANGLE_STRIP = 5 Field Value int GL_TRIANGLE_STRIP_ADJACENCY public const int GL_TRIANGLE_STRIP_ADJACENCY = 13 Field Value int GL_TRUE public const int GL_TRUE = 1 Field Value int GL_UInt16_FLOAT public const int GL_UInt16_FLOAT = 5131 Field Value int GL_UNIFORM_ARRAY_STRIDE public const int GL_UNIFORM_ARRAY_STRIDE = 35388 Field Value int GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS public const int GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394 Field Value int GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES public const int GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395 Field Value int GL_UNIFORM_BLOCK_BINDING public const int GL_UNIFORM_BLOCK_BINDING = 35391 Field Value int GL_UNIFORM_BLOCK_DATA_SIZE public const int GL_UNIFORM_BLOCK_DATA_SIZE = 35392 Field Value int GL_UNIFORM_BLOCK_INDEX public const int GL_UNIFORM_BLOCK_INDEX = 35386 Field Value int GL_UNIFORM_BLOCK_NAME_LENGTH public const int GL_UNIFORM_BLOCK_NAME_LENGTH = 35393 Field Value int GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER public const int GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398 Field Value int GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER public const int GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 35397 Field Value int GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER public const int GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396 Field Value int GL_UNIFORM_BUFFER public const int GL_UNIFORM_BUFFER = 35345 Field Value int GL_UNIFORM_BUFFER_BINDING public const int GL_UNIFORM_BUFFER_BINDING = 35368 Field Value int GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT public const int GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380 Field Value int GL_UNIFORM_BUFFER_SIZE public const int GL_UNIFORM_BUFFER_SIZE = 35370 Field Value int GL_UNIFORM_BUFFER_START public const int GL_UNIFORM_BUFFER_START = 35369 Field Value int GL_UNIFORM_IS_ROW_MAJOR public const int GL_UNIFORM_IS_ROW_MAJOR = 35390 Field Value int GL_UNIFORM_MATRIX_STRIDE public const int GL_UNIFORM_MATRIX_STRIDE = 35389 Field Value int GL_UNIFORM_NAME_LENGTH public const int GL_UNIFORM_NAME_LENGTH = 35385 Field Value int GL_UNIFORM_OFFSET public const int GL_UNIFORM_OFFSET = 35387 Field Value int GL_UNIFORM_SIZE public const int GL_UNIFORM_SIZE = 35384 Field Value int GL_UNIFORM_TYPE public const int GL_UNIFORM_TYPE = 35383 Field Value int GL_UNPACK_ALIGNMENT public const int GL_UNPACK_ALIGNMENT = 3317 Field Value int GL_UNPACK_IMAGE_HEIGHT public const int GL_UNPACK_IMAGE_HEIGHT = 32878 Field Value int GL_UNPACK_LSB_FIRST public const int GL_UNPACK_LSB_FIRST = 3313 Field Value int GL_UNPACK_ROW_LENGTH public const int GL_UNPACK_ROW_LENGTH = 3314 Field Value int GL_UNPACK_SKIP_IMAGES public const int GL_UNPACK_SKIP_IMAGES = 32877 Field Value int GL_UNPACK_SKIP_PIXELS public const int GL_UNPACK_SKIP_PIXELS = 3316 Field Value int GL_UNPACK_SKIP_ROWS public const int GL_UNPACK_SKIP_ROWS = 3315 Field Value int GL_UNPACK_SWAP_BYTES public const int GL_UNPACK_SWAP_BYTES = 3312 Field Value int GL_UNSIGNALED public const int GL_UNSIGNALED = 37144 Field Value int GL_UNSIGNED_BYTE public const int GL_UNSIGNED_BYTE = 5121 Field Value int GL_UNSIGNED_BYTE_2_3_3_REV public const int GL_UNSIGNED_BYTE_2_3_3_REV = 33634 Field Value int GL_UNSIGNED_BYTE_3_3_2 public const int GL_UNSIGNED_BYTE_3_3_2 = 32818 Field Value int GL_UNSIGNED_INT public const int GL_UNSIGNED_INT = 5125 Field Value int GL_UNSIGNED_INT_10F_11F_11F_REV public const int GL_UNSIGNED_INT_10F_11F_11F_REV = 35899 Field Value int GL_UNSIGNED_INT_10_10_10_2 public const int GL_UNSIGNED_INT_10_10_10_2 = 32822 Field Value int GL_UNSIGNED_INT_24_8 public const int GL_UNSIGNED_INT_24_8 = 34042 Field Value int GL_UNSIGNED_INT_2_10_10_10_REV public const int GL_UNSIGNED_INT_2_10_10_10_REV = 33640 Field Value int GL_UNSIGNED_INT_5_9_9_9_REV public const int GL_UNSIGNED_INT_5_9_9_9_REV = 35902 Field Value int GL_UNSIGNED_INT_8_8_8_8 public const int GL_UNSIGNED_INT_8_8_8_8 = 32821 Field Value int GL_UNSIGNED_INT_8_8_8_8_REV public const int GL_UNSIGNED_INT_8_8_8_8_REV = 33639 Field Value int GL_UNSIGNED_INT_SAMPLER_1D public const int GL_UNSIGNED_INT_SAMPLER_1D = 36305 Field Value int GL_UNSIGNED_INT_SAMPLER_1D_ARRAY public const int GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 36310 Field Value int GL_UNSIGNED_INT_SAMPLER_2D public const int GL_UNSIGNED_INT_SAMPLER_2D = 36306 Field Value int GL_UNSIGNED_INT_SAMPLER_2D_ARRAY public const int GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311 Field Value int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE public const int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 37130 Field Value int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY public const int GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 37133 Field Value int GL_UNSIGNED_INT_SAMPLER_2D_RECT public const int GL_UNSIGNED_INT_SAMPLER_2D_RECT = 36309 Field Value int GL_UNSIGNED_INT_SAMPLER_3D public const int GL_UNSIGNED_INT_SAMPLER_3D = 36307 Field Value int GL_UNSIGNED_INT_SAMPLER_BUFFER public const int GL_UNSIGNED_INT_SAMPLER_BUFFER = 36312 Field Value int GL_UNSIGNED_INT_SAMPLER_CUBE public const int GL_UNSIGNED_INT_SAMPLER_CUBE = 36308 Field Value int GL_UNSIGNED_INT_VEC2 public const int GL_UNSIGNED_INT_VEC2 = 36294 Field Value int GL_UNSIGNED_INT_VEC3 public const int GL_UNSIGNED_INT_VEC3 = 36295 Field Value int GL_UNSIGNED_INT_VEC4 public const int GL_UNSIGNED_INT_VEC4 = 36296 Field Value int GL_UNSIGNED_NORMALIZED public const int GL_UNSIGNED_NORMALIZED = 35863 Field Value int GL_UNSIGNED_SHORT public const int GL_UNSIGNED_SHORT = 5123 Field Value int GL_UNSIGNED_SHORT_1_5_5_5_REV public const int GL_UNSIGNED_SHORT_1_5_5_5_REV = 33638 Field Value int GL_UNSIGNED_SHORT_4_4_4_4 public const int GL_UNSIGNED_SHORT_4_4_4_4 = 32819 Field Value int GL_UNSIGNED_SHORT_4_4_4_4_REV public const int GL_UNSIGNED_SHORT_4_4_4_4_REV = 33637 Field Value int GL_UNSIGNED_SHORT_5_5_5_1 public const int GL_UNSIGNED_SHORT_5_5_5_1 = 32820 Field Value int GL_UNSIGNED_SHORT_5_6_5 public const int GL_UNSIGNED_SHORT_5_6_5 = 33635 Field Value int GL_UNSIGNED_SHORT_5_6_5_REV public const int GL_UNSIGNED_SHORT_5_6_5_REV = 33636 Field Value int GL_UPPER_LEFT public const int GL_UPPER_LEFT = 36002 Field Value int GL_VALIDATE_STATUS public const int GL_VALIDATE_STATUS = 35715 Field Value int GL_VENDOR public const int GL_VENDOR = 7936 Field Value int GL_VERSION public const int GL_VERSION = 7938 Field Value int GL_VERTEX_ARRAY_BINDING public const int GL_VERTEX_ARRAY_BINDING = 34229 Field Value int GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING public const int GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975 Field Value int GL_VERTEX_ATTRIB_ARRAY_DIVISOR public const int GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 35070 Field Value int GL_VERTEX_ATTRIB_ARRAY_ENABLED public const int GL_VERTEX_ATTRIB_ARRAY_ENABLED = 34338 Field Value int GL_VERTEX_ATTRIB_ARRAY_INTEGER public const int GL_VERTEX_ATTRIB_ARRAY_INTEGER = 35069 Field Value int GL_VERTEX_ATTRIB_ARRAY_NORMALIZED public const int GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922 Field Value int GL_VERTEX_ATTRIB_ARRAY_POINTER public const int GL_VERTEX_ATTRIB_ARRAY_POINTER = 34373 Field Value int GL_VERTEX_ATTRIB_ARRAY_SIZE public const int GL_VERTEX_ATTRIB_ARRAY_SIZE = 34339 Field Value int GL_VERTEX_ATTRIB_ARRAY_STRIDE public const int GL_VERTEX_ATTRIB_ARRAY_STRIDE = 34340 Field Value int GL_VERTEX_ATTRIB_ARRAY_TYPE public const int GL_VERTEX_ATTRIB_ARRAY_TYPE = 34341 Field Value int GL_VERTEX_PROGRAM_POINT_SIZE public const int GL_VERTEX_PROGRAM_POINT_SIZE = 34370 Field Value int GL_VERTEX_SHADER public const int GL_VERTEX_SHADER = 35633 Field Value int GL_VIEWPORT public const int GL_VIEWPORT = 2978 Field Value int GL_WAIT_FAILED public const int GL_WAIT_FAILED = 37149 Field Value int GL_WRITE_ONLY public const int GL_WRITE_ONLY = 35001 Field Value int GL_XOR public const int GL_XOR = 5382 Field Value int GL_ZERO public const int GL_ZERO = 0 Field Value int Methods glAccum(uint, float) public static extern void glAccum(uint op, float value) Parameters op uint value float glActiveProgramEXT(uint) public static extern void glActiveProgramEXT(uint program) Parameters program uint glActiveShaderProgram(uint, uint) public static extern void glActiveShaderProgram(uint pipeline, uint program) Parameters pipeline uint program uint glActiveStencilFaceEXT(uint) public static extern void glActiveStencilFaceEXT(uint face) Parameters face uint glActiveTexture(uint) public static extern void glActiveTexture(uint texture) Parameters texture uint glActiveTextureARB(uint) public static extern void glActiveTextureARB(uint texture) Parameters texture uint glActiveVaryingNV(uint, string) public static extern void glActiveVaryingNV(uint program, string name) Parameters program uint name string glAlphaFragmentOp1ATI(uint, uint, uint, uint, uint, uint) public static extern void glAlphaFragmentOp1ATI(uint op, uint dst, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod) Parameters op uint dst uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint glAlphaFragmentOp2ATI(uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glAlphaFragmentOp2ATI(uint op, uint dst, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod, uint arg2, uint arg2Rep, uint arg2Mod) Parameters op uint dst uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint arg2 uint arg2Rep uint arg2Mod uint glAlphaFragmentOp3ATI(uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glAlphaFragmentOp3ATI(uint op, uint dst, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod, uint arg2, uint arg2Rep, uint arg2Mod, uint arg3, uint arg3Rep, uint arg3Mod) Parameters op uint dst uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint arg2 uint arg2Rep uint arg2Mod uint arg3 uint arg3Rep uint arg3Mod uint glAlphaFunc(uint, float) public static extern void glAlphaFunc(uint func, float @ref) Parameters func uint ref float glApplyTextureEXT(uint) public static extern void glApplyTextureEXT(uint mode) Parameters mode uint glAreProgramsResidentNV(int, uint*, bool*) public static extern bool glAreProgramsResidentNV(int n, uint* programs, bool* residences) Parameters n int programs uint* residences bool* Returns bool glAreTexturesResident(int, uint*, bool*) public static extern bool glAreTexturesResident(int n, uint* textures, bool* residences) Parameters n int textures uint* residences bool* Returns bool glAreTexturesResidentEXT(int, uint*, bool*) public static extern bool glAreTexturesResidentEXT(int n, uint* textures, bool* residences) Parameters n int textures uint* residences bool* Returns bool glArrayElement(int) public static extern void glArrayElement(int i) Parameters i int glArrayElementEXT(int) public static extern void glArrayElementEXT(int i) Parameters i int glArrayObjectATI(uint, int, uint, int, uint, uint) public static extern void glArrayObjectATI(uint array, int size, uint type, int stride, uint buffer, uint offset) Parameters array uint size int type uint stride int buffer uint offset uint glAsyncMarkerSGIX(uint) public static extern void glAsyncMarkerSGIX(uint marker) Parameters marker uint glAttachObjectARB(uint, uint) public static extern void glAttachObjectARB(uint containerObj, uint obj) Parameters containerObj uint obj uint glAttachShader(uint, uint) public static extern void glAttachShader(uint program, uint shader) Parameters program uint shader uint glBegin(uint) public static extern void glBegin(uint mode) Parameters mode uint glBeginConditionalRender(uint, uint) public static extern void glBeginConditionalRender(uint id, uint mode) Parameters id uint mode uint glBeginConditionalRenderNV(uint, uint) public static extern void glBeginConditionalRenderNV(uint id, uint mode) Parameters id uint mode uint glBeginFragmentShaderATI() public static extern void glBeginFragmentShaderATI() glBeginOcclusionQueryNV(uint) public static extern void glBeginOcclusionQueryNV(uint id) Parameters id uint glBeginPerfMonitorAMD(uint) public static extern void glBeginPerfMonitorAMD(uint monitor) Parameters monitor uint glBeginQuery(uint, uint) public static extern void glBeginQuery(uint target, uint id) Parameters target uint id uint glBeginQueryARB(uint, uint) public static extern void glBeginQueryARB(uint target, uint id) Parameters target uint id uint glBeginQueryIndexed(uint, uint, uint) public static extern void glBeginQueryIndexed(uint target, uint index, uint id) Parameters target uint index uint id uint glBeginTransformFeedback(uint) public static extern void glBeginTransformFeedback(uint primitiveMode) Parameters primitiveMode uint glBeginTransformFeedbackEXT(uint) public static extern void glBeginTransformFeedbackEXT(uint primitiveMode) Parameters primitiveMode uint glBeginTransformFeedbackNV(uint) public static extern void glBeginTransformFeedbackNV(uint primitiveMode) Parameters primitiveMode uint glBeginVertexShaderEXT() public static extern void glBeginVertexShaderEXT() glBeginVideoCaptureNV(uint) public static extern void glBeginVideoCaptureNV(uint video_capture_slot) Parameters video_capture_slot uint glBindAttribLocation(uint, uint, string) public static extern void glBindAttribLocation(uint program, uint index, string name) Parameters program uint index uint name string glBindAttribLocationARB(uint, uint, string) public static extern void glBindAttribLocationARB(uint programObj, uint index, string name) Parameters programObj uint index uint name string glBindBuffer(uint, uint) public static extern void glBindBuffer(uint target, uint buffer) Parameters target uint buffer uint glBindBufferARB(uint, uint) public static extern void glBindBufferARB(uint target, uint buffer) Parameters target uint buffer uint glBindBufferBase(uint, uint, uint) public static extern void glBindBufferBase(uint target, uint index, uint buffer) Parameters target uint index uint buffer uint glBindBufferBaseEXT(uint, uint, uint) public static extern void glBindBufferBaseEXT(uint target, uint index, uint buffer) Parameters target uint index uint buffer uint glBindBufferBaseNV(uint, uint, uint) public static extern void glBindBufferBaseNV(uint target, uint index, uint buffer) Parameters target uint index uint buffer uint glBindBufferOffsetEXT(uint, uint, uint, nint) public static extern void glBindBufferOffsetEXT(uint target, uint index, uint buffer, nint offset) Parameters target uint index uint buffer uint offset nint glBindBufferOffsetNV(uint, uint, uint, nint) public static extern void glBindBufferOffsetNV(uint target, uint index, uint buffer, nint offset) Parameters target uint index uint buffer uint offset nint glBindBufferRange(uint, uint, uint, nint, nint) public static extern void glBindBufferRange(uint target, uint index, uint buffer, nint offset, nint size) Parameters target uint index uint buffer uint offset nint size nint glBindBufferRangeEXT(uint, uint, uint, nint, nint) public static extern void glBindBufferRangeEXT(uint target, uint index, uint buffer, nint offset, nint size) Parameters target uint index uint buffer uint offset nint size nint glBindBufferRangeNV(uint, uint, uint, nint, nint) public static extern void glBindBufferRangeNV(uint target, uint index, uint buffer, nint offset, nint size) Parameters target uint index uint buffer uint offset nint size nint glBindFragDataLocation(uint, uint, string) public static extern void glBindFragDataLocation(uint program, uint color, string name) Parameters program uint color uint name string glBindFragDataLocationEXT(uint, uint, string) public static extern void glBindFragDataLocationEXT(uint program, uint color, string name) Parameters program uint color uint name string glBindFragDataLocationIndexed(uint, uint, uint, string) public static extern void glBindFragDataLocationIndexed(uint program, uint colorNumber, uint index, string name) Parameters program uint colorNumber uint index uint name string glBindFragmentShaderATI(uint) public static extern void glBindFragmentShaderATI(uint id) Parameters id uint glBindFramebuffer(uint, uint) public static extern void glBindFramebuffer(uint target, uint framebuffer) Parameters target uint framebuffer uint glBindFramebufferEXT(uint, uint) public static extern void glBindFramebufferEXT(uint target, uint framebuffer) Parameters target uint framebuffer uint glBindImageTextureEXT(uint, uint, int, bool, int, uint, int) public static extern void glBindImageTextureEXT(uint index, uint texture, int level, bool layered, int layer, uint access, int format) Parameters index uint texture uint level int layered bool layer int access uint format int glBindLightParameterEXT(uint, uint) public static extern int glBindLightParameterEXT(uint light, uint value) Parameters light uint value uint Returns int glBindMaterialParameterEXT(uint, uint) public static extern int glBindMaterialParameterEXT(uint face, uint value) Parameters face uint value uint Returns int glBindMultiTextureEXT(uint, uint, uint) public static extern void glBindMultiTextureEXT(uint texunit, uint target, uint texture) Parameters texunit uint target uint texture uint glBindParameterEXT(uint) public static extern int glBindParameterEXT(uint value) Parameters value uint Returns int glBindProgramARB(uint, uint) public static extern void glBindProgramARB(uint target, uint program) Parameters target uint program uint glBindProgramNV(uint, uint) public static extern void glBindProgramNV(uint target, uint id) Parameters target uint id uint glBindProgramPipeline(uint) public static extern void glBindProgramPipeline(uint pipeline) Parameters pipeline uint glBindRenderbuffer(uint, uint) public static extern void glBindRenderbuffer(uint target, uint renderbuffer) Parameters target uint renderbuffer uint glBindRenderbufferEXT(uint, uint) public static extern void glBindRenderbufferEXT(uint target, uint renderbuffer) Parameters target uint renderbuffer uint glBindSampler(uint, uint) public static extern void glBindSampler(uint unit, uint sampler) Parameters unit uint sampler uint glBindTexGenParameterEXT(uint, uint, uint) public static extern int glBindTexGenParameterEXT(uint unit, uint coord, uint value) Parameters unit uint coord uint value uint Returns int glBindTexture(uint, uint) public static extern void glBindTexture(uint target, uint texture) Parameters target uint texture uint glBindTextureEXT(uint, uint) public static extern void glBindTextureEXT(uint target, uint texture) Parameters target uint texture uint glBindTextureUnitParameterEXT(uint, uint) public static extern int glBindTextureUnitParameterEXT(uint unit, uint value) Parameters unit uint value uint Returns int glBindTransformFeedback(uint, uint) public static extern void glBindTransformFeedback(uint target, uint id) Parameters target uint id uint glBindTransformFeedbackNV(uint, uint) public static extern void glBindTransformFeedbackNV(uint target, uint id) Parameters target uint id uint glBindVertexArray(uint) public static extern void glBindVertexArray(uint array) Parameters array uint glBindVertexArrayAPPLE(uint) public static extern void glBindVertexArrayAPPLE(uint array) Parameters array uint glBindVertexShaderEXT(uint) public static extern void glBindVertexShaderEXT(uint id) Parameters id uint glBindVideoCaptureStreamBufferNV(uint, uint, uint, nint) public static extern void glBindVideoCaptureStreamBufferNV(uint video_capture_slot, uint stream, uint frame_region, nint offset) Parameters video_capture_slot uint stream uint frame_region uint offset nint glBindVideoCaptureStreamTextureNV(uint, uint, uint, uint, uint) public static extern void glBindVideoCaptureStreamTextureNV(uint video_capture_slot, uint stream, uint frame_region, uint target, uint texture) Parameters video_capture_slot uint stream uint frame_region uint target uint texture uint glBinormal3bEXT(sbyte, sbyte, sbyte) public static extern void glBinormal3bEXT(sbyte bx, sbyte by, sbyte bz) Parameters bx sbyte by sbyte bz sbyte glBinormal3bvEXT(sbyte*) public static extern void glBinormal3bvEXT(sbyte* v) Parameters v sbyte* glBinormal3dEXT(double, double, double) public static extern void glBinormal3dEXT(double bx, double by, double bz) Parameters bx double by double bz double glBinormal3dvEXT(double*) public static extern void glBinormal3dvEXT(double* v) Parameters v double* glBinormal3fEXT(float, float, float) public static extern void glBinormal3fEXT(float bx, float by, float bz) Parameters bx float by float bz float glBinormal3fvEXT(float*) public static extern void glBinormal3fvEXT(float* v) Parameters v float* glBinormal3iEXT(int, int, int) public static extern void glBinormal3iEXT(int bx, int by, int bz) Parameters bx int by int bz int glBinormal3ivEXT(int*) public static extern void glBinormal3ivEXT(int* v) Parameters v int* glBinormal3sEXT(short, short, short) public static extern void glBinormal3sEXT(short bx, short by, short bz) Parameters bx short by short bz short glBinormal3svEXT(short*) public static extern void glBinormal3svEXT(short* v) Parameters v short* glBinormalPointerEXT(uint, int, nint) public static extern void glBinormalPointerEXT(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glBitmap(int, int, float, float, float, float, byte*) public static extern void glBitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, byte* bitmap) Parameters width int height int xorig float yorig float xmove float ymove float bitmap byte* glBlendColor(float, float, float, float) public static extern void glBlendColor(float red, float green, float blue, float alpha) Parameters red float green float blue float alpha float glBlendColorEXT(float, float, float, float) public static extern void glBlendColorEXT(float red, float green, float blue, float alpha) Parameters red float green float blue float alpha float glBlendEquation(uint) public static extern void glBlendEquation(uint mode) Parameters mode uint glBlendEquationEXT(uint) public static extern void glBlendEquationEXT(uint mode) Parameters mode uint glBlendEquationIndexedAMD(uint, uint) public static extern void glBlendEquationIndexedAMD(uint buf, uint mode) Parameters buf uint mode uint glBlendEquationSeparate(uint, uint) public static extern void glBlendEquationSeparate(uint modeRGB, uint modeAlpha) Parameters modeRGB uint modeAlpha uint glBlendEquationSeparateEXT(uint, uint) public static extern void glBlendEquationSeparateEXT(uint modeRGB, uint modeAlpha) Parameters modeRGB uint modeAlpha uint glBlendEquationSeparateIndexedAMD(uint, uint, uint) public static extern void glBlendEquationSeparateIndexedAMD(uint buf, uint modeRGB, uint modeAlpha) Parameters buf uint modeRGB uint modeAlpha uint glBlendEquationSeparatei(uint, uint, uint) public static extern void glBlendEquationSeparatei(uint buf, uint modeRGB, uint modeAlpha) Parameters buf uint modeRGB uint modeAlpha uint glBlendEquationSeparateiARB(uint, uint, uint) public static extern void glBlendEquationSeparateiARB(uint buf, uint modeRGB, uint modeAlpha) Parameters buf uint modeRGB uint modeAlpha uint glBlendEquationi(uint, uint) public static extern void glBlendEquationi(uint buf, uint mode) Parameters buf uint mode uint glBlendEquationiARB(uint, uint) public static extern void glBlendEquationiARB(uint buf, uint mode) Parameters buf uint mode uint glBlendFunc(uint, uint) public static extern void glBlendFunc(uint sfactor, uint dfactor) Parameters sfactor uint dfactor uint glBlendFuncIndexedAMD(uint, uint, uint) public static extern void glBlendFuncIndexedAMD(uint buf, uint src, uint dst) Parameters buf uint src uint dst uint glBlendFuncSeparate(uint, uint, uint, uint) public static extern void glBlendFuncSeparate(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha) Parameters sfactorRGB uint dfactorRGB uint sfactorAlpha uint dfactorAlpha uint glBlendFuncSeparateEXT(uint, uint, uint, uint) public static extern void glBlendFuncSeparateEXT(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha) Parameters sfactorRGB uint dfactorRGB uint sfactorAlpha uint dfactorAlpha uint glBlendFuncSeparateINGR(uint, uint, uint, uint) public static extern void glBlendFuncSeparateINGR(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha) Parameters sfactorRGB uint dfactorRGB uint sfactorAlpha uint dfactorAlpha uint glBlendFuncSeparateIndexedAMD(uint, uint, uint, uint, uint) public static extern void glBlendFuncSeparateIndexedAMD(uint buf, uint srcRGB, uint dstRGB, uint srcAlpha, uint dstAlpha) Parameters buf uint srcRGB uint dstRGB uint srcAlpha uint dstAlpha uint glBlendFuncSeparatei(uint, uint, uint, uint, uint) public static extern void glBlendFuncSeparatei(uint buf, uint srcRGB, uint dstRGB, uint srcAlpha, uint dstAlpha) Parameters buf uint srcRGB uint dstRGB uint srcAlpha uint dstAlpha uint glBlendFuncSeparateiARB(uint, uint, uint, uint, uint) public static extern void glBlendFuncSeparateiARB(uint buf, uint srcRGB, uint dstRGB, uint srcAlpha, uint dstAlpha) Parameters buf uint srcRGB uint dstRGB uint srcAlpha uint dstAlpha uint glBlendFunci(uint, uint, uint) public static extern void glBlendFunci(uint buf, uint src, uint dst) Parameters buf uint src uint dst uint glBlendFunciARB(uint, uint, uint) public static extern void glBlendFunciARB(uint buf, uint src, uint dst) Parameters buf uint src uint dst uint glBlitFramebuffer(int, int, int, int, int, int, int, int, uint, uint) public static extern void glBlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter) Parameters srcX0 int srcY0 int srcX1 int srcY1 int dstX0 int dstY0 int dstX1 int dstY1 int mask uint filter uint glBlitFramebufferEXT(int, int, int, int, int, int, int, int, uint, uint) public static extern void glBlitFramebufferEXT(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter) Parameters srcX0 int srcY0 int srcX1 int srcY1 int dstX0 int dstY0 int dstX1 int dstY1 int mask uint filter uint glBufferAddressRangeNV(uint, uint, ulong, nint) public static extern void glBufferAddressRangeNV(uint pname, uint index, ulong address, nint length) Parameters pname uint index uint address ulong length nint glBufferData(uint, nint, nint, uint) public static extern void glBufferData(uint target, nint size, nint data, uint usage) Parameters target uint size nint data nint usage uint glBufferDataARB(uint, nint, nint, uint) public static extern void glBufferDataARB(uint target, nint size, nint data, uint usage) Parameters target uint size nint data nint usage uint glBufferParameteriAPPLE(uint, uint, int) public static extern void glBufferParameteriAPPLE(uint target, uint pname, int param) Parameters target uint pname uint param int glBufferSubData(uint, nint, nint, nint) public static extern void glBufferSubData(uint target, nint offset, nint size, nint data) Parameters target uint offset nint size nint data nint glBufferSubDataARB(uint, nint, nint, nint) public static extern void glBufferSubDataARB(uint target, nint offset, nint size, nint data) Parameters target uint offset nint size nint data nint glCallList(uint) public static extern void glCallList(uint list) Parameters list uint glCallLists(int, uint, nint) public static extern void glCallLists(int n, uint type, nint lists) Parameters n int type uint lists nint glCheckFramebufferStatus(uint) public static extern uint glCheckFramebufferStatus(uint target) Parameters target uint Returns uint glCheckFramebufferStatusEXT(uint) public static extern uint glCheckFramebufferStatusEXT(uint target) Parameters target uint Returns uint glCheckNamedFramebufferStatusEXT(uint, uint) public static extern uint glCheckNamedFramebufferStatusEXT(uint framebuffer, uint target) Parameters framebuffer uint target uint Returns uint glClampColor(uint, uint) public static extern void glClampColor(uint target, uint clamp) Parameters target uint clamp uint glClampColorARB(uint, uint) public static extern void glClampColorARB(uint target, uint clamp) Parameters target uint clamp uint glClear(uint) public static extern void glClear(uint mask) Parameters mask uint glClearAccum(float, float, float, float) public static extern void glClearAccum(float red, float green, float blue, float alpha) Parameters red float green float blue float alpha float glClearBufferfi(uint, int, float, int) public static extern void glClearBufferfi(uint buffer, int drawbuffer, float depth, int stencil) Parameters buffer uint drawbuffer int depth float stencil int glClearBufferfv(uint, int, float*) public static extern void glClearBufferfv(uint buffer, int drawbuffer, float* value) Parameters buffer uint drawbuffer int value float* glClearBufferiv(uint, int, int*) public static extern void glClearBufferiv(uint buffer, int drawbuffer, int* value) Parameters buffer uint drawbuffer int value int* glClearBufferuiv(uint, int, uint*) public static extern void glClearBufferuiv(uint buffer, int drawbuffer, uint* value) Parameters buffer uint drawbuffer int value uint* glClearColor(float, float, float, float) public static extern void glClearColor(float red, float green, float blue, float alpha) Parameters red float green float blue float alpha float glClearColorIiEXT(int, int, int, int) public static extern void glClearColorIiEXT(int red, int green, int blue, int alpha) Parameters red int green int blue int alpha int glClearColorIuiEXT(uint, uint, uint, uint) public static extern void glClearColorIuiEXT(uint red, uint green, uint blue, uint alpha) Parameters red uint green uint blue uint alpha uint glClearDepth(double) public static extern void glClearDepth(double depth) Parameters depth double glClearDepthdNV(double) public static extern void glClearDepthdNV(double depth) Parameters depth double glClearDepthf(float) public static extern void glClearDepthf(float d) Parameters d float glClearIndex(float) public static extern void glClearIndex(float c) Parameters c float glClearStencil(int) public static extern void glClearStencil(int s) Parameters s int glClientActiveTexture(uint) public static extern void glClientActiveTexture(uint texture) Parameters texture uint glClientActiveTextureARB(uint) public static extern void glClientActiveTextureARB(uint texture) Parameters texture uint glClientActiveVertexStreamATI(uint) public static extern void glClientActiveVertexStreamATI(uint stream) Parameters stream uint glClientAttribDefaultEXT(uint) public static extern void glClientAttribDefaultEXT(uint mask) Parameters mask uint glClientWaitSync(nint, uint, ulong) public static extern uint glClientWaitSync(nint sync, uint flags, ulong timeout) Parameters sync nint flags uint timeout ulong Returns uint glClipPlane(uint, double*) public static extern void glClipPlane(uint plane, double* equation) Parameters plane uint equation double* glColor3b(sbyte, sbyte, sbyte) public static extern void glColor3b(sbyte red, sbyte green, sbyte blue) Parameters red sbyte green sbyte blue sbyte glColor3bv(sbyte*) public static extern void glColor3bv(sbyte* v) Parameters v sbyte* glColor3d(double, double, double) public static extern void glColor3d(double red, double green, double blue) Parameters red double green double blue double glColor3dv(double*) public static extern void glColor3dv(double* v) Parameters v double* glColor3f(float, float, float) public static extern void glColor3f(float red, float green, float blue) Parameters red float green float blue float glColor3fVertex3fSUN(float, float, float, float, float, float) public static extern void glColor3fVertex3fSUN(float r, float g, float b, float x, float y, float z) Parameters r float g float b float x float y float z float glColor3fVertex3fvSUN(float*, float*) public static extern void glColor3fVertex3fvSUN(float* c, float* v) Parameters c float* v float* glColor3fv(float*) public static extern void glColor3fv(float* v) Parameters v float* glColor3hNV(ushort, ushort, ushort) public static extern void glColor3hNV(ushort red, ushort green, ushort blue) Parameters red ushort green ushort blue ushort glColor3hvNV(ushort*) public static extern void glColor3hvNV(ushort* v) Parameters v ushort* glColor3i(int, int, int) public static extern void glColor3i(int red, int green, int blue) Parameters red int green int blue int glColor3iv(int*) public static extern void glColor3iv(int* v) Parameters v int* glColor3s(short, short, short) public static extern void glColor3s(short red, short green, short blue) Parameters red short green short blue short glColor3sv(short*) public static extern void glColor3sv(short* v) Parameters v short* glColor3ub(byte, byte, byte) public static extern void glColor3ub(byte red, byte green, byte blue) Parameters red byte green byte blue byte glColor3ubv(byte*) public static extern void glColor3ubv(byte* v) Parameters v byte* glColor3ui(uint, uint, uint) public static extern void glColor3ui(uint red, uint green, uint blue) Parameters red uint green uint blue uint glColor3uiv(uint*) public static extern void glColor3uiv(uint* v) Parameters v uint* glColor3us(ushort, ushort, ushort) public static extern void glColor3us(ushort red, ushort green, ushort blue) Parameters red ushort green ushort blue ushort glColor3usv(ushort*) public static extern void glColor3usv(ushort* v) Parameters v ushort* glColor4b(sbyte, sbyte, sbyte, sbyte) public static extern void glColor4b(sbyte red, sbyte green, sbyte blue, sbyte alpha) Parameters red sbyte green sbyte blue sbyte alpha sbyte glColor4bv(sbyte*) public static extern void glColor4bv(sbyte* v) Parameters v sbyte* glColor4d(double, double, double, double) public static extern void glColor4d(double red, double green, double blue, double alpha) Parameters red double green double blue double alpha double glColor4dv(double*) public static extern void glColor4dv(double* v) Parameters v double* glColor4f(float, float, float, float) public static extern void glColor4f(float red, float green, float blue, float alpha) Parameters red float green float blue float alpha float glColor4fNormal3fVertex3fSUN(float, float, float, float, float, float, float, float, float, float) public static extern void glColor4fNormal3fVertex3fSUN(float r, float g, float b, float a, float nx, float ny, float nz, float x, float y, float z) Parameters r float g float b float a float nx float ny float nz float x float y float z float glColor4fNormal3fVertex3fvSUN(float*, float*, float*) public static extern void glColor4fNormal3fVertex3fvSUN(float* c, float* n, float* v) Parameters c float* n float* v float* glColor4fv(float*) public static extern void glColor4fv(float* v) Parameters v float* glColor4hNV(ushort, ushort, ushort, ushort) public static extern void glColor4hNV(ushort red, ushort green, ushort blue, ushort alpha) Parameters red ushort green ushort blue ushort alpha ushort glColor4hvNV(ushort*) public static extern void glColor4hvNV(ushort* v) Parameters v ushort* glColor4i(int, int, int, int) public static extern void glColor4i(int red, int green, int blue, int alpha) Parameters red int green int blue int alpha int glColor4iv(int*) public static extern void glColor4iv(int* v) Parameters v int* glColor4s(short, short, short, short) public static extern void glColor4s(short red, short green, short blue, short alpha) Parameters red short green short blue short alpha short glColor4sv(short*) public static extern void glColor4sv(short* v) Parameters v short* glColor4ub(byte, byte, byte, byte) public static extern void glColor4ub(byte red, byte green, byte blue, byte alpha) Parameters red byte green byte blue byte alpha byte glColor4ubVertex2fSUN(byte, byte, byte, byte, float, float) public static extern void glColor4ubVertex2fSUN(byte r, byte g, byte b, byte a, float x, float y) Parameters r byte g byte b byte a byte x float y float glColor4ubVertex2fvSUN(byte*, float*) public static extern void glColor4ubVertex2fvSUN(byte* c, float* v) Parameters c byte* v float* glColor4ubVertex3fSUN(byte, byte, byte, byte, float, float, float) public static extern void glColor4ubVertex3fSUN(byte r, byte g, byte b, byte a, float x, float y, float z) Parameters r byte g byte b byte a byte x float y float z float glColor4ubVertex3fvSUN(byte*, float*) public static extern void glColor4ubVertex3fvSUN(byte* c, float* v) Parameters c byte* v float* glColor4ubv(byte*) public static extern void glColor4ubv(byte* v) Parameters v byte* glColor4ui(uint, uint, uint, uint) public static extern void glColor4ui(uint red, uint green, uint blue, uint alpha) Parameters red uint green uint blue uint alpha uint glColor4uiv(uint*) public static extern void glColor4uiv(uint* v) Parameters v uint* glColor4us(ushort, ushort, ushort, ushort) public static extern void glColor4us(ushort red, ushort green, ushort blue, ushort alpha) Parameters red ushort green ushort blue ushort alpha ushort glColor4usv(ushort*) public static extern void glColor4usv(ushort* v) Parameters v ushort* glColorFormatNV(int, uint, int) public static extern void glColorFormatNV(int size, uint type, int stride) Parameters size int type uint stride int glColorFragmentOp1ATI(uint, uint, uint, uint, uint, uint, uint) public static extern void glColorFragmentOp1ATI(uint op, uint dst, uint dstMask, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod) Parameters op uint dst uint dstMask uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint glColorFragmentOp2ATI(uint, uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glColorFragmentOp2ATI(uint op, uint dst, uint dstMask, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod, uint arg2, uint arg2Rep, uint arg2Mod) Parameters op uint dst uint dstMask uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint arg2 uint arg2Rep uint arg2Mod uint glColorFragmentOp3ATI(uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glColorFragmentOp3ATI(uint op, uint dst, uint dstMask, uint dstMod, uint arg1, uint arg1Rep, uint arg1Mod, uint arg2, uint arg2Rep, uint arg2Mod, uint arg3, uint arg3Rep, uint arg3Mod) Parameters op uint dst uint dstMask uint dstMod uint arg1 uint arg1Rep uint arg1Mod uint arg2 uint arg2Rep uint arg2Mod uint arg3 uint arg3Rep uint arg3Mod uint glColorMask(bool, bool, bool, bool) public static extern void glColorMask(bool red, bool green, bool blue, bool alpha) Parameters red bool green bool blue bool alpha bool glColorMaskIndexedEXT(uint, bool, bool, bool, bool) public static extern void glColorMaskIndexedEXT(uint index, bool r, bool g, bool b, bool a) Parameters index uint r bool g bool b bool a bool glColorMaski(uint, bool, bool, bool, bool) public static extern void glColorMaski(uint index, bool r, bool g, bool b, bool a) Parameters index uint r bool g bool b bool a bool glColorMaterial(uint, uint) public static extern void glColorMaterial(uint face, uint mode) Parameters face uint mode uint glColorP3ui(uint, uint) public static extern void glColorP3ui(uint type, uint color) Parameters type uint color uint glColorP3uiv(uint, uint*) public static extern void glColorP3uiv(uint type, uint* color) Parameters type uint color uint* glColorP4ui(uint, uint) public static extern void glColorP4ui(uint type, uint color) Parameters type uint color uint glColorP4uiv(uint, uint*) public static extern void glColorP4uiv(uint type, uint* color) Parameters type uint color uint* glColorPointer(int, uint, int, nint) public static extern void glColorPointer(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glColorPointerEXT(int, uint, int, int, nint) public static extern void glColorPointerEXT(int size, uint type, int stride, int count, nint pointer) Parameters size int type uint stride int count int pointer nint glColorPointerListIBM(int, uint, int, nint, int) public static extern void glColorPointerListIBM(int size, uint type, int stride, nint pointer, int ptrstride) Parameters size int type uint stride int pointer nint ptrstride int glColorPointervINTEL(int, uint, nint) public static extern void glColorPointervINTEL(int size, uint type, nint pointer) Parameters size int type uint pointer nint glColorSubTable(uint, int, int, uint, uint, nint) public static extern void glColorSubTable(uint target, int start, int count, uint format, uint type, nint data) Parameters target uint start int count int format uint type uint data nint glColorSubTableEXT(uint, int, int, uint, uint, nint) public static extern void glColorSubTableEXT(uint target, int start, int count, uint format, uint type, nint data) Parameters target uint start int count int format uint type uint data nint glColorTable(uint, uint, int, uint, uint, nint) public static extern void glColorTable(uint target, uint internalformat, int width, uint format, uint type, nint table) Parameters target uint internalformat uint width int format uint type uint table nint glColorTableEXT(uint, uint, int, uint, uint, nint) public static extern void glColorTableEXT(uint target, uint internalFormat, int width, uint format, uint type, nint table) Parameters target uint internalFormat uint width int format uint type uint table nint glColorTableParameterfv(uint, uint, float*) public static extern void glColorTableParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glColorTableParameterfvSGI(uint, uint, float*) public static extern void glColorTableParameterfvSGI(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glColorTableParameteriv(uint, uint, int*) public static extern void glColorTableParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glColorTableParameterivSGI(uint, uint, int*) public static extern void glColorTableParameterivSGI(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glColorTableSGI(uint, uint, int, uint, uint, nint) public static extern void glColorTableSGI(uint target, uint internalformat, int width, uint format, uint type, nint table) Parameters target uint internalformat uint width int format uint type uint table nint glCombinerInputNV(uint, uint, uint, uint, uint, uint) public static extern void glCombinerInputNV(uint stage, uint portion, uint variable, uint input, uint mapping, uint componentUsage) Parameters stage uint portion uint variable uint input uint mapping uint componentUsage uint glCombinerOutputNV(uint, uint, uint, uint, uint, uint, uint, bool, bool, bool) public static extern void glCombinerOutputNV(uint stage, uint portion, uint abOutput, uint cdOutput, uint sumOutput, uint scale, uint bias, bool abDotProduct, bool cdDotProduct, bool muxSum) Parameters stage uint portion uint abOutput uint cdOutput uint sumOutput uint scale uint bias uint abDotProduct bool cdDotProduct bool muxSum bool glCombinerParameterfNV(uint, float) public static extern void glCombinerParameterfNV(uint pname, float param) Parameters pname uint param float glCombinerParameterfvNV(uint, float*) public static extern void glCombinerParameterfvNV(uint pname, float* @params) Parameters pname uint params float* glCombinerParameteriNV(uint, int) public static extern void glCombinerParameteriNV(uint pname, int param) Parameters pname uint param int glCombinerParameterivNV(uint, int*) public static extern void glCombinerParameterivNV(uint pname, int* @params) Parameters pname uint params int* glCombinerStageParameterfvNV(uint, uint, float*) public static extern void glCombinerStageParameterfvNV(uint stage, uint pname, float* @params) Parameters stage uint pname uint params float* glCompileShader(uint) public static extern void glCompileShader(uint shader) Parameters shader uint glCompileShaderARB(uint) public static extern void glCompileShaderARB(uint shaderObj) Parameters shaderObj uint glCompileShaderIncludeARB(uint, int, string[], int*) public static extern void glCompileShaderIncludeARB(uint shader, int count, string[] path, int* length) Parameters shader uint count int path string[] length int* glCompressedMultiTexImage1DEXT(uint, uint, int, uint, int, int, int, nint) public static extern void glCompressedMultiTexImage1DEXT(uint texunit, uint target, int level, uint internalformat, int width, int border, int imageSize, nint bits) Parameters texunit uint target uint level int internalformat uint width int border int imageSize int bits nint glCompressedMultiTexImage2DEXT(uint, uint, int, uint, int, int, int, int, nint) public static extern void glCompressedMultiTexImage2DEXT(uint texunit, uint target, int level, uint internalformat, int width, int height, int border, int imageSize, nint bits) Parameters texunit uint target uint level int internalformat uint width int height int border int imageSize int bits nint glCompressedMultiTexImage3DEXT(uint, uint, int, uint, int, int, int, int, int, nint) public static extern void glCompressedMultiTexImage3DEXT(uint texunit, uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, nint bits) Parameters texunit uint target uint level int internalformat uint width int height int depth int border int imageSize int bits nint glCompressedMultiTexSubImage1DEXT(uint, uint, int, int, int, uint, int, nint) public static extern void glCompressedMultiTexSubImage1DEXT(uint texunit, uint target, int level, int xoffset, int width, uint format, int imageSize, nint bits) Parameters texunit uint target uint level int xoffset int width int format uint imageSize int bits nint glCompressedMultiTexSubImage2DEXT(uint, uint, int, int, int, int, int, uint, int, nint) public static extern void glCompressedMultiTexSubImage2DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, nint bits) Parameters texunit uint target uint level int xoffset int yoffset int width int height int format uint imageSize int bits nint glCompressedMultiTexSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, uint, int, nint) public static extern void glCompressedMultiTexSubImage3DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, nint bits) Parameters texunit uint target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint imageSize int bits nint glCompressedTexImage1D(uint, int, uint, int, int, int, nint) public static extern void glCompressedTexImage1D(uint target, int level, uint internalformat, int width, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int border int imageSize int data nint glCompressedTexImage1DARB(uint, int, uint, int, int, int, nint) public static extern void glCompressedTexImage1DARB(uint target, int level, uint internalformat, int width, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int border int imageSize int data nint glCompressedTexImage2D(uint, int, uint, int, int, int, int, nint) public static extern void glCompressedTexImage2D(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int height int border int imageSize int data nint glCompressedTexImage2DARB(uint, int, uint, int, int, int, int, nint) public static extern void glCompressedTexImage2DARB(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int height int border int imageSize int data nint glCompressedTexImage3D(uint, int, uint, int, int, int, int, int, nint) public static extern void glCompressedTexImage3D(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int height int depth int border int imageSize int data nint glCompressedTexImage3DARB(uint, int, uint, int, int, int, int, int, nint) public static extern void glCompressedTexImage3DARB(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, nint data) Parameters target uint level int internalformat uint width int height int depth int border int imageSize int data nint glCompressedTexSubImage1D(uint, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage1D(uint target, int level, int xoffset, int width, uint format, int imageSize, nint data) Parameters target uint level int xoffset int width int format uint imageSize int data nint glCompressedTexSubImage1DARB(uint, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage1DARB(uint target, int level, int xoffset, int width, uint format, int imageSize, nint data) Parameters target uint level int xoffset int width int format uint imageSize int data nint glCompressedTexSubImage2D(uint, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, nint data) Parameters target uint level int xoffset int yoffset int width int height int format uint imageSize int data nint glCompressedTexSubImage2DARB(uint, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage2DARB(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, nint data) Parameters target uint level int xoffset int yoffset int width int height int format uint imageSize int data nint glCompressedTexSubImage3D(uint, int, int, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, nint data) Parameters target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint imageSize int data nint glCompressedTexSubImage3DARB(uint, int, int, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTexSubImage3DARB(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, nint data) Parameters target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint imageSize int data nint glCompressedTextureImage1DEXT(uint, uint, int, uint, int, int, int, nint) public static extern void glCompressedTextureImage1DEXT(uint texture, uint target, int level, uint internalformat, int width, int border, int imageSize, nint bits) Parameters texture uint target uint level int internalformat uint width int border int imageSize int bits nint glCompressedTextureImage2DEXT(uint, uint, int, uint, int, int, int, int, nint) public static extern void glCompressedTextureImage2DEXT(uint texture, uint target, int level, uint internalformat, int width, int height, int border, int imageSize, nint bits) Parameters texture uint target uint level int internalformat uint width int height int border int imageSize int bits nint glCompressedTextureImage3DEXT(uint, uint, int, uint, int, int, int, int, int, nint) public static extern void glCompressedTextureImage3DEXT(uint texture, uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, nint bits) Parameters texture uint target uint level int internalformat uint width int height int depth int border int imageSize int bits nint glCompressedTextureSubImage1DEXT(uint, uint, int, int, int, uint, int, nint) public static extern void glCompressedTextureSubImage1DEXT(uint texture, uint target, int level, int xoffset, int width, uint format, int imageSize, nint bits) Parameters texture uint target uint level int xoffset int width int format uint imageSize int bits nint glCompressedTextureSubImage2DEXT(uint, uint, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTextureSubImage2DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, nint bits) Parameters texture uint target uint level int xoffset int yoffset int width int height int format uint imageSize int bits nint glCompressedTextureSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, uint, int, nint) public static extern void glCompressedTextureSubImage3DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, nint bits) Parameters texture uint target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint imageSize int bits nint glConvolutionFilter1D(uint, uint, int, uint, uint, nint) public static extern void glConvolutionFilter1D(uint target, uint internalformat, int width, uint format, uint type, nint image) Parameters target uint internalformat uint width int format uint type uint image nint glConvolutionFilter1DEXT(uint, uint, int, uint, uint, nint) public static extern void glConvolutionFilter1DEXT(uint target, uint internalformat, int width, uint format, uint type, nint image) Parameters target uint internalformat uint width int format uint type uint image nint glConvolutionFilter2D(uint, uint, int, int, uint, uint, nint) public static extern void glConvolutionFilter2D(uint target, uint internalformat, int width, int height, uint format, uint type, nint image) Parameters target uint internalformat uint width int height int format uint type uint image nint glConvolutionFilter2DEXT(uint, uint, int, int, uint, uint, nint) public static extern void glConvolutionFilter2DEXT(uint target, uint internalformat, int width, int height, uint format, uint type, nint image) Parameters target uint internalformat uint width int height int format uint type uint image nint glConvolutionParameterf(uint, uint, float) public static extern void glConvolutionParameterf(uint target, uint pname, float @params) Parameters target uint pname uint params float glConvolutionParameterfEXT(uint, uint, float) public static extern void glConvolutionParameterfEXT(uint target, uint pname, float @params) Parameters target uint pname uint params float glConvolutionParameterfv(uint, uint, float*) public static extern void glConvolutionParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glConvolutionParameterfvEXT(uint, uint, float*) public static extern void glConvolutionParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glConvolutionParameteri(uint, uint, int) public static extern void glConvolutionParameteri(uint target, uint pname, int @params) Parameters target uint pname uint params int glConvolutionParameteriEXT(uint, uint, int) public static extern void glConvolutionParameteriEXT(uint target, uint pname, int @params) Parameters target uint pname uint params int glConvolutionParameteriv(uint, uint, int*) public static extern void glConvolutionParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glConvolutionParameterivEXT(uint, uint, int*) public static extern void glConvolutionParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glCopyBufferSubData(uint, uint, nint, nint, nint) public static extern void glCopyBufferSubData(uint readTarget, uint writeTarget, nint readOffset, nint writeOffset, nint size) Parameters readTarget uint writeTarget uint readOffset nint writeOffset nint size nint glCopyColorSubTable(uint, int, int, int, int) public static extern void glCopyColorSubTable(uint target, int start, int x, int y, int width) Parameters target uint start int x int y int width int glCopyColorSubTableEXT(uint, int, int, int, int) public static extern void glCopyColorSubTableEXT(uint target, int start, int x, int y, int width) Parameters target uint start int x int y int width int glCopyColorTable(uint, uint, int, int, int) public static extern void glCopyColorTable(uint target, uint internalformat, int x, int y, int width) Parameters target uint internalformat uint x int y int width int glCopyColorTableSGI(uint, uint, int, int, int) public static extern void glCopyColorTableSGI(uint target, uint internalformat, int x, int y, int width) Parameters target uint internalformat uint x int y int width int glCopyConvolutionFilter1D(uint, uint, int, int, int) public static extern void glCopyConvolutionFilter1D(uint target, uint internalformat, int x, int y, int width) Parameters target uint internalformat uint x int y int width int glCopyConvolutionFilter1DEXT(uint, uint, int, int, int) public static extern void glCopyConvolutionFilter1DEXT(uint target, uint internalformat, int x, int y, int width) Parameters target uint internalformat uint x int y int width int glCopyConvolutionFilter2D(uint, uint, int, int, int, int) public static extern void glCopyConvolutionFilter2D(uint target, uint internalformat, int x, int y, int width, int height) Parameters target uint internalformat uint x int y int width int height int glCopyConvolutionFilter2DEXT(uint, uint, int, int, int, int) public static extern void glCopyConvolutionFilter2DEXT(uint target, uint internalformat, int x, int y, int width, int height) Parameters target uint internalformat uint x int y int width int height int glCopyImageSubDataNV(uint, uint, int, int, int, int, uint, uint, int, int, int, int, int, int, int) public static extern void glCopyImageSubDataNV(uint srcName, uint srcTarget, int srcLevel, int srcX, int srcY, int srcZ, uint dstName, uint dstTarget, int dstLevel, int dstX, int dstY, int dstZ, int width, int height, int depth) Parameters srcName uint srcTarget uint srcLevel int srcX int srcY int srcZ int dstName uint dstTarget uint dstLevel int dstX int dstY int dstZ int width int height int depth int glCopyMultiTexImage1DEXT(uint, uint, int, uint, int, int, int, int) public static extern void glCopyMultiTexImage1DEXT(uint texunit, uint target, int level, uint internalformat, int x, int y, int width, int border) Parameters texunit uint target uint level int internalformat uint x int y int width int border int glCopyMultiTexImage2DEXT(uint, uint, int, uint, int, int, int, int, int) public static extern void glCopyMultiTexImage2DEXT(uint texunit, uint target, int level, uint internalformat, int x, int y, int width, int height, int border) Parameters texunit uint target uint level int internalformat uint x int y int width int height int border int glCopyMultiTexSubImage1DEXT(uint, uint, int, int, int, int, int) public static extern void glCopyMultiTexSubImage1DEXT(uint texunit, uint target, int level, int xoffset, int x, int y, int width) Parameters texunit uint target uint level int xoffset int x int y int width int glCopyMultiTexSubImage2DEXT(uint, uint, int, int, int, int, int, int, int) public static extern void glCopyMultiTexSubImage2DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height) Parameters texunit uint target uint level int xoffset int yoffset int x int y int width int height int glCopyMultiTexSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, int) public static extern void glCopyMultiTexSubImage3DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) Parameters texunit uint target uint level int xoffset int yoffset int zoffset int x int y int width int height int glCopyPixels(int, int, int, int, uint) public static extern void glCopyPixels(int x, int y, int width, int height, uint type) Parameters x int y int width int height int type uint glCopyTexImage1D(uint, int, uint, int, int, int, int) public static extern void glCopyTexImage1D(uint target, int level, uint internalformat, int x, int y, int width, int border) Parameters target uint level int internalformat uint x int y int width int border int glCopyTexImage1DEXT(uint, int, uint, int, int, int, int) public static extern void glCopyTexImage1DEXT(uint target, int level, uint internalformat, int x, int y, int width, int border) Parameters target uint level int internalformat uint x int y int width int border int glCopyTexImage2D(uint, int, uint, int, int, int, int, int) public static extern void glCopyTexImage2D(uint target, int level, uint internalformat, int x, int y, int width, int height, int border) Parameters target uint level int internalformat uint x int y int width int height int border int glCopyTexImage2DEXT(uint, int, uint, int, int, int, int, int) public static extern void glCopyTexImage2DEXT(uint target, int level, uint internalformat, int x, int y, int width, int height, int border) Parameters target uint level int internalformat uint x int y int width int height int border int glCopyTexSubImage1D(uint, int, int, int, int, int) public static extern void glCopyTexSubImage1D(uint target, int level, int xoffset, int x, int y, int width) Parameters target uint level int xoffset int x int y int width int glCopyTexSubImage1DEXT(uint, int, int, int, int, int) public static extern void glCopyTexSubImage1DEXT(uint target, int level, int xoffset, int x, int y, int width) Parameters target uint level int xoffset int x int y int width int glCopyTexSubImage2D(uint, int, int, int, int, int, int, int) public static extern void glCopyTexSubImage2D(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height) Parameters target uint level int xoffset int yoffset int x int y int width int height int glCopyTexSubImage2DEXT(uint, int, int, int, int, int, int, int) public static extern void glCopyTexSubImage2DEXT(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height) Parameters target uint level int xoffset int yoffset int x int y int width int height int glCopyTexSubImage3D(uint, int, int, int, int, int, int, int, int) public static extern void glCopyTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) Parameters target uint level int xoffset int yoffset int zoffset int x int y int width int height int glCopyTexSubImage3DEXT(uint, int, int, int, int, int, int, int, int) public static extern void glCopyTexSubImage3DEXT(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) Parameters target uint level int xoffset int yoffset int zoffset int x int y int width int height int glCopyTextureImage1DEXT(uint, uint, int, uint, int, int, int, int) public static extern void glCopyTextureImage1DEXT(uint texture, uint target, int level, uint internalformat, int x, int y, int width, int border) Parameters texture uint target uint level int internalformat uint x int y int width int border int glCopyTextureImage2DEXT(uint, uint, int, uint, int, int, int, int, int) public static extern void glCopyTextureImage2DEXT(uint texture, uint target, int level, uint internalformat, int x, int y, int width, int height, int border) Parameters texture uint target uint level int internalformat uint x int y int width int height int border int glCopyTextureSubImage1DEXT(uint, uint, int, int, int, int, int) public static extern void glCopyTextureSubImage1DEXT(uint texture, uint target, int level, int xoffset, int x, int y, int width) Parameters texture uint target uint level int xoffset int x int y int width int glCopyTextureSubImage2DEXT(uint, uint, int, int, int, int, int, int, int) public static extern void glCopyTextureSubImage2DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height) Parameters texture uint target uint level int xoffset int yoffset int x int y int width int height int glCopyTextureSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, int) public static extern void glCopyTextureSubImage3DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height) Parameters texture uint target uint level int xoffset int yoffset int zoffset int x int y int width int height int glCreateProgram() public static extern int glCreateProgram() Returns int glCreateProgramObjectARB() public static extern int glCreateProgramObjectARB() Returns int glCreateShader(uint) public static extern int glCreateShader(uint type) Parameters type uint Returns int glCreateShaderObjectARB(uint) public static extern int glCreateShaderObjectARB(uint shaderType) Parameters shaderType uint Returns int glCreateShaderProgramEXT(uint, string) public static extern int glCreateShaderProgramEXT(uint type, string @string) Parameters type uint string string Returns int glCreateShaderProgramv(uint, int, string[]) public static extern int glCreateShaderProgramv(uint type, int count, string[] strings) Parameters type uint count int strings string[] Returns int glCreateSyncFromCLeventARB(nint, nint, uint) public static extern nint glCreateSyncFromCLeventARB(nint context, nint @event, uint flags) Parameters context nint event nint flags uint Returns nint glCullFace(uint) public static extern void glCullFace(uint mode) Parameters mode uint glCullParameterdvEXT(uint, double*) public static extern void glCullParameterdvEXT(uint pname, double* @params) Parameters pname uint params double* glCullParameterfvEXT(uint, float*) public static extern void glCullParameterfvEXT(uint pname, float* @params) Parameters pname uint params float* glCurrentPaletteMatrixARB(int) public static extern void glCurrentPaletteMatrixARB(int index) Parameters index int glDebugMessageControlARB(uint, uint, uint, int, uint*, bool) public static extern void glDebugMessageControlARB(uint source, uint type, uint severity, int count, uint* ids, bool enabled) Parameters source uint type uint severity uint count int ids uint* enabled bool glDebugMessageEnableAMD(uint, uint, int, uint*, bool) public static extern void glDebugMessageEnableAMD(uint category, uint severity, int count, uint* ids, bool enabled) Parameters category uint severity uint count int ids uint* enabled bool glDebugMessageInsertAMD(uint, uint, uint, int, string) public static extern void glDebugMessageInsertAMD(uint category, uint severity, uint id, int length, string buf) Parameters category uint severity uint id uint length int buf string glDebugMessageInsertARB(uint, uint, uint, uint, int, string) public static extern void glDebugMessageInsertARB(uint source, uint type, uint id, uint severity, int length, string buf) Parameters source uint type uint id uint severity uint length int buf string glDeformSGIX(uint) public static extern void glDeformSGIX(uint mask) Parameters mask uint glDeformationMap3dSGIX(uint, double, double, int, int, double, double, int, int, double, double, int, int, double*) public static extern void glDeformationMap3dSGIX(uint target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double w1, double w2, int wstride, int worder, double* points) Parameters target uint u1 double u2 double ustride int uorder int v1 double v2 double vstride int vorder int w1 double w2 double wstride int worder int points double* glDeformationMap3fSGIX(uint, float, float, int, int, float, float, int, int, float, float, int, int, float*) public static extern void glDeformationMap3fSGIX(uint target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float w1, float w2, int wstride, int worder, float* points) Parameters target uint u1 float u2 float ustride int uorder int v1 float v2 float vstride int vorder int w1 float w2 float wstride int worder int points float* glDeleteAsyncMarkersSGIX(uint, int) public static extern void glDeleteAsyncMarkersSGIX(uint marker, int range) Parameters marker uint range int glDeleteBuffers(int, uint*) public static extern void glDeleteBuffers(int n, uint* buffers) Parameters n int buffers uint* glDeleteBuffersARB(int, uint*) public static extern void glDeleteBuffersARB(int n, uint* buffers) Parameters n int buffers uint* glDeleteFencesAPPLE(int, uint*) public static extern void glDeleteFencesAPPLE(int n, uint* fences) Parameters n int fences uint* glDeleteFencesNV(int, uint*) public static extern void glDeleteFencesNV(int n, uint* fences) Parameters n int fences uint* glDeleteFragmentShaderATI(uint) public static extern void glDeleteFragmentShaderATI(uint id) Parameters id uint glDeleteFramebuffers(int, uint*) public static extern void glDeleteFramebuffers(int n, uint* framebuffers) Parameters n int framebuffers uint* glDeleteFramebuffersEXT(int, uint*) public static extern void glDeleteFramebuffersEXT(int n, uint* framebuffers) Parameters n int framebuffers uint* glDeleteLists(uint, int) public static extern void glDeleteLists(uint list, int range) Parameters list uint range int glDeleteNamedStringARB(int, string) public static extern void glDeleteNamedStringARB(int namelen, string name) Parameters namelen int name string glDeleteNamesAMD(uint, uint, uint*) public static extern void glDeleteNamesAMD(uint identifier, uint num, uint* names) Parameters identifier uint num uint names uint* glDeleteObjectARB(uint) public static extern void glDeleteObjectARB(uint obj) Parameters obj uint glDeleteOcclusionQueriesNV(int, uint*) public static extern void glDeleteOcclusionQueriesNV(int n, uint* ids) Parameters n int ids uint* glDeletePerfMonitorsAMD(int, uint*) public static extern void glDeletePerfMonitorsAMD(int n, uint* monitors) Parameters n int monitors uint* glDeleteProgram(uint) public static extern void glDeleteProgram(uint program) Parameters program uint glDeleteProgramPipelines(int, uint*) public static extern void glDeleteProgramPipelines(int n, uint* pipelines) Parameters n int pipelines uint* glDeleteProgramsARB(int, uint*) public static extern void glDeleteProgramsARB(int n, uint* programs) Parameters n int programs uint* glDeleteProgramsNV(int, uint*) public static extern void glDeleteProgramsNV(int n, uint* programs) Parameters n int programs uint* glDeleteQueries(int, uint*) public static extern void glDeleteQueries(int n, uint* ids) Parameters n int ids uint* glDeleteQueriesARB(int, uint*) public static extern void glDeleteQueriesARB(int n, uint* ids) Parameters n int ids uint* glDeleteRenderbuffers(int, uint*) public static extern void glDeleteRenderbuffers(int n, uint* renderbuffers) Parameters n int renderbuffers uint* glDeleteRenderbuffersEXT(int, uint*) public static extern void glDeleteRenderbuffersEXT(int n, uint* renderbuffers) Parameters n int renderbuffers uint* glDeleteSamplers(int, uint*) public static extern void glDeleteSamplers(int count, uint* samplers) Parameters count int samplers uint* glDeleteShader(uint) public static extern void glDeleteShader(uint shader) Parameters shader uint glDeleteSync(nint) public static extern void glDeleteSync(nint sync) Parameters sync nint glDeleteTextures(int, uint*) public static extern void glDeleteTextures(int n, uint* textures) Parameters n int textures uint* glDeleteTexturesEXT(int, uint*) public static extern void glDeleteTexturesEXT(int n, uint* textures) Parameters n int textures uint* glDeleteTransformFeedbacks(int, uint*) public static extern void glDeleteTransformFeedbacks(int n, uint* ids) Parameters n int ids uint* glDeleteTransformFeedbacksNV(int, uint*) public static extern void glDeleteTransformFeedbacksNV(int n, uint* ids) Parameters n int ids uint* glDeleteVertexArrays(int, uint*) public static extern void glDeleteVertexArrays(int n, uint* arrays) Parameters n int arrays uint* glDeleteVertexArraysAPPLE(int, uint*) public static extern void glDeleteVertexArraysAPPLE(int n, uint* arrays) Parameters n int arrays uint* glDeleteVertexShaderEXT(uint) public static extern void glDeleteVertexShaderEXT(uint id) Parameters id uint glDepthBoundsEXT(double, double) public static extern void glDepthBoundsEXT(double zmin, double zmax) Parameters zmin double zmax double glDepthBoundsdNV(double, double) public static extern void glDepthBoundsdNV(double zmin, double zmax) Parameters zmin double zmax double glDepthFunc(uint) public static extern void glDepthFunc(uint func) Parameters func uint glDepthMask(bool) public static extern void glDepthMask(bool flag) Parameters flag bool glDepthRange(double, double) public static extern void glDepthRange(double near, double far) Parameters near double far double glDepthRangeArrayv(uint, int, double*) public static extern void glDepthRangeArrayv(uint first, int count, double* v) Parameters first uint count int v double* glDepthRangeIndexed(uint, double, double) public static extern void glDepthRangeIndexed(uint index, double n, double f) Parameters index uint n double f double glDepthRangedNV(double, double) public static extern void glDepthRangedNV(double zNear, double zFar) Parameters zNear double zFar double glDepthRangef(float, float) public static extern void glDepthRangef(float n, float f) Parameters n float f float glDetachObjectARB(uint, uint) public static extern void glDetachObjectARB(uint containerObj, uint attachedObj) Parameters containerObj uint attachedObj uint glDetachShader(uint, uint) public static extern void glDetachShader(uint program, uint shader) Parameters program uint shader uint glDetailTexFuncSGIS(uint, int, float*) public static extern void glDetailTexFuncSGIS(uint target, int n, float* points) Parameters target uint n int points float* glDisable(uint) public static extern void glDisable(uint cap) Parameters cap uint glDisableClientState(uint) public static extern void glDisableClientState(uint array) Parameters array uint glDisableClientStateIndexedEXT(uint, uint) public static extern void glDisableClientStateIndexedEXT(uint array, uint index) Parameters array uint index uint glDisableIndexedEXT(uint, uint) public static extern void glDisableIndexedEXT(uint target, uint index) Parameters target uint index uint glDisableVariantClientStateEXT(uint) public static extern void glDisableVariantClientStateEXT(uint id) Parameters id uint glDisableVertexAttribAPPLE(uint, uint) public static extern void glDisableVertexAttribAPPLE(uint index, uint pname) Parameters index uint pname uint glDisableVertexAttribArray(uint) public static extern void glDisableVertexAttribArray(uint index) Parameters index uint glDisableVertexAttribArrayARB(uint) public static extern void glDisableVertexAttribArrayARB(uint index) Parameters index uint glDisablei(uint, uint) public static extern void glDisablei(uint target, uint index) Parameters target uint index uint glDrawArrays(uint, int, int) public static extern void glDrawArrays(uint mode, int first, int count) Parameters mode uint first int count int glDrawArraysEXT(uint, int, int) public static extern void glDrawArraysEXT(uint mode, int first, int count) Parameters mode uint first int count int glDrawArraysIndirect(uint, nint) public static extern void glDrawArraysIndirect(uint mode, nint indirect) Parameters mode uint indirect nint glDrawArraysInstanced(uint, int, int, int) public static extern void glDrawArraysInstanced(uint mode, int first, int count, int primcount) Parameters mode uint first int count int primcount int glDrawArraysInstancedARB(uint, int, int, int) public static extern void glDrawArraysInstancedARB(uint mode, int first, int count, int primcount) Parameters mode uint first int count int primcount int glDrawArraysInstancedEXT(uint, int, int, int) public static extern void glDrawArraysInstancedEXT(uint mode, int start, int count, int primcount) Parameters mode uint start int count int primcount int glDrawBuffer(uint) public static extern void glDrawBuffer(uint mode) Parameters mode uint glDrawBuffers(int, uint*) public static extern void glDrawBuffers(int n, uint* bufs) Parameters n int bufs uint* glDrawBuffersARB(int, uint*) public static extern void glDrawBuffersARB(int n, uint* bufs) Parameters n int bufs uint* glDrawBuffersATI(int, uint*) public static extern void glDrawBuffersATI(int n, uint* bufs) Parameters n int bufs uint* glDrawElementArrayAPPLE(uint, int, int) public static extern void glDrawElementArrayAPPLE(uint mode, int first, int count) Parameters mode uint first int count int glDrawElementArrayATI(uint, int) public static extern void glDrawElementArrayATI(uint mode, int count) Parameters mode uint count int glDrawElements(uint, int, uint, nint) public static extern void glDrawElements(uint mode, int count, uint type, nint indices) Parameters mode uint count int type uint indices nint glDrawElementsBaseVertex(uint, int, uint, nint, int) public static extern void glDrawElementsBaseVertex(uint mode, int count, uint type, nint indices, int basevertex) Parameters mode uint count int type uint indices nint basevertex int glDrawElementsIndirect(uint, uint, nint) public static extern void glDrawElementsIndirect(uint mode, uint type, nint indirect) Parameters mode uint type uint indirect nint glDrawElementsInstanced(uint, int, uint, nint, int) public static extern void glDrawElementsInstanced(uint mode, int count, uint type, nint indices, int primcount) Parameters mode uint count int type uint indices nint primcount int glDrawElementsInstancedARB(uint, int, uint, nint, int) public static extern void glDrawElementsInstancedARB(uint mode, int count, uint type, nint indices, int primcount) Parameters mode uint count int type uint indices nint primcount int glDrawElementsInstancedBaseVertex(uint, int, uint, nint, int, int) public static extern void glDrawElementsInstancedBaseVertex(uint mode, int count, uint type, nint indices, int primcount, int basevertex) Parameters mode uint count int type uint indices nint primcount int basevertex int glDrawElementsInstancedEXT(uint, int, uint, nint, int) public static extern void glDrawElementsInstancedEXT(uint mode, int count, uint type, nint indices, int primcount) Parameters mode uint count int type uint indices nint primcount int glDrawMeshArraysSUN(uint, int, int, int) public static extern void glDrawMeshArraysSUN(uint mode, int first, int count, int width) Parameters mode uint first int count int width int glDrawPixels(int, int, uint, uint, nint) public static extern void glDrawPixels(int width, int height, uint format, uint type, nint pixels) Parameters width int height int format uint type uint pixels nint glDrawRangeElementArrayAPPLE(uint, uint, uint, int, int) public static extern void glDrawRangeElementArrayAPPLE(uint mode, uint start, uint end, int first, int count) Parameters mode uint start uint end uint first int count int glDrawRangeElementArrayATI(uint, uint, uint, int) public static extern void glDrawRangeElementArrayATI(uint mode, uint start, uint end, int count) Parameters mode uint start uint end uint count int glDrawRangeElements(uint, uint, uint, int, uint, nint) public static extern void glDrawRangeElements(uint mode, uint start, uint end, int count, uint type, nint indices) Parameters mode uint start uint end uint count int type uint indices nint glDrawRangeElementsBaseVertex(uint, uint, uint, int, uint, nint, int) public static extern void glDrawRangeElementsBaseVertex(uint mode, uint start, uint end, int count, uint type, nint indices, int basevertex) Parameters mode uint start uint end uint count int type uint indices nint basevertex int glDrawRangeElementsEXT(uint, uint, uint, int, uint, nint) public static extern void glDrawRangeElementsEXT(uint mode, uint start, uint end, int count, uint type, nint indices) Parameters mode uint start uint end uint count int type uint indices nint glDrawTransformFeedback(uint, uint) public static extern void glDrawTransformFeedback(uint mode, uint id) Parameters mode uint id uint glDrawTransformFeedbackNV(uint, uint) public static extern void glDrawTransformFeedbackNV(uint mode, uint id) Parameters mode uint id uint glDrawTransformFeedbackStream(uint, uint, uint) public static extern void glDrawTransformFeedbackStream(uint mode, uint id, uint stream) Parameters mode uint id uint stream uint glEdgeFlag(bool) public static extern void glEdgeFlag(bool flag) Parameters flag bool glEdgeFlagFormatNV(int) public static extern void glEdgeFlagFormatNV(int stride) Parameters stride int glEdgeFlagPointer(int, nint) public static extern void glEdgeFlagPointer(int stride, nint pointer) Parameters stride int pointer nint glEdgeFlagPointerEXT(int, int, bool*) public static extern void glEdgeFlagPointerEXT(int stride, int count, bool* pointer) Parameters stride int count int pointer bool* glEdgeFlagPointerListIBM(int, bool*, int) public static extern void glEdgeFlagPointerListIBM(int stride, bool* pointer, int ptrstride) Parameters stride int pointer bool* ptrstride int glEdgeFlagv(bool*) public static extern void glEdgeFlagv(bool* flag) Parameters flag bool* glElementPointerAPPLE(uint, nint) public static extern void glElementPointerAPPLE(uint type, nint pointer) Parameters type uint pointer nint glElementPointerATI(uint, nint) public static extern void glElementPointerATI(uint type, nint pointer) Parameters type uint pointer nint glEnable(uint) public static extern void glEnable(uint cap) Parameters cap uint glEnableClientState(uint) public static extern void glEnableClientState(uint array) Parameters array uint glEnableClientStateIndexedEXT(uint, uint) public static extern void glEnableClientStateIndexedEXT(uint array, uint index) Parameters array uint index uint glEnableIndexedEXT(uint, uint) public static extern void glEnableIndexedEXT(uint target, uint index) Parameters target uint index uint glEnableVariantClientStateEXT(uint) public static extern void glEnableVariantClientStateEXT(uint id) Parameters id uint glEnableVertexAttribAPPLE(uint, uint) public static extern void glEnableVertexAttribAPPLE(uint index, uint pname) Parameters index uint pname uint glEnableVertexAttribArray(uint) public static extern void glEnableVertexAttribArray(uint index) Parameters index uint glEnableVertexAttribArrayARB(uint) public static extern void glEnableVertexAttribArrayARB(uint index) Parameters index uint glEnablei(uint, uint) public static extern void glEnablei(uint target, uint index) Parameters target uint index uint glEnd() public static extern void glEnd() glEndConditionalRender() public static extern void glEndConditionalRender() glEndConditionalRenderNV() public static extern void glEndConditionalRenderNV() glEndFragmentShaderATI() public static extern void glEndFragmentShaderATI() glEndList() public static extern void glEndList() glEndOcclusionQueryNV() public static extern void glEndOcclusionQueryNV() glEndPerfMonitorAMD(uint) public static extern void glEndPerfMonitorAMD(uint monitor) Parameters monitor uint glEndQuery(uint) public static extern void glEndQuery(uint target) Parameters target uint glEndQueryARB(uint) public static extern void glEndQueryARB(uint target) Parameters target uint glEndQueryIndexed(uint, uint) public static extern void glEndQueryIndexed(uint target, uint index) Parameters target uint index uint glEndTransformFeedback() public static extern void glEndTransformFeedback() glEndTransformFeedbackEXT() public static extern void glEndTransformFeedbackEXT() glEndTransformFeedbackNV() public static extern void glEndTransformFeedbackNV() glEndVertexShaderEXT() public static extern void glEndVertexShaderEXT() glEndVideoCaptureNV(uint) public static extern void glEndVideoCaptureNV(uint video_capture_slot) Parameters video_capture_slot uint glEvalCoord1d(double) public static extern void glEvalCoord1d(double u) Parameters u double glEvalCoord1dv(double*) public static extern void glEvalCoord1dv(double* u) Parameters u double* glEvalCoord1f(float) public static extern void glEvalCoord1f(float u) Parameters u float glEvalCoord1fv(float*) public static extern void glEvalCoord1fv(float* u) Parameters u float* glEvalCoord2d(double, double) public static extern void glEvalCoord2d(double u, double v) Parameters u double v double glEvalCoord2dv(double*) public static extern void glEvalCoord2dv(double* u) Parameters u double* glEvalCoord2f(float, float) public static extern void glEvalCoord2f(float u, float v) Parameters u float v float glEvalCoord2fv(float*) public static extern void glEvalCoord2fv(float* u) Parameters u float* glEvalMapsNV(uint, uint) public static extern void glEvalMapsNV(uint target, uint mode) Parameters target uint mode uint glEvalMesh1(uint, int, int) public static extern void glEvalMesh1(uint mode, int i1, int i2) Parameters mode uint i1 int i2 int glEvalMesh2(uint, int, int, int, int) public static extern void glEvalMesh2(uint mode, int i1, int i2, int j1, int j2) Parameters mode uint i1 int i2 int j1 int j2 int glEvalPoint1(int) public static extern void glEvalPoint1(int i) Parameters i int glEvalPoint2(int, int) public static extern void glEvalPoint2(int i, int j) Parameters i int j int glExecuteProgramNV(uint, uint, float*) public static extern void glExecuteProgramNV(uint target, uint id, float* @params) Parameters target uint id uint params float* glExtractComponentEXT(uint, uint, uint) public static extern void glExtractComponentEXT(uint res, uint src, uint num) Parameters res uint src uint num uint glFeedbackBuffer(int, uint, float*) public static extern void glFeedbackBuffer(int size, uint type, float* buffer) Parameters size int type uint buffer float* glFinalCombinerInputNV(uint, uint, uint, uint) public static extern void glFinalCombinerInputNV(uint variable, uint input, uint mapping, uint componentUsage) Parameters variable uint input uint mapping uint componentUsage uint glFinish() public static extern void glFinish() glFinishAsyncSGIX(uint*) public static extern int glFinishAsyncSGIX(uint* markerp) Parameters markerp uint* Returns int glFinishFenceAPPLE(uint) public static extern void glFinishFenceAPPLE(uint fence) Parameters fence uint glFinishFenceNV(uint) public static extern void glFinishFenceNV(uint fence) Parameters fence uint glFinishObjectAPPLE(uint, int) public static extern void glFinishObjectAPPLE(uint @object, int name) Parameters object uint name int glFinishTextureSUNX() public static extern void glFinishTextureSUNX() glFlush() public static extern void glFlush() glFlushMappedBufferRange(uint, nint, nint) public static extern void glFlushMappedBufferRange(uint target, nint offset, nint length) Parameters target uint offset nint length nint glFlushMappedBufferRangeAPPLE(uint, nint, nint) public static extern void glFlushMappedBufferRangeAPPLE(uint target, nint offset, nint size) Parameters target uint offset nint size nint glFlushMappedNamedBufferRangeEXT(uint, nint, nint) public static extern void glFlushMappedNamedBufferRangeEXT(uint buffer, nint offset, nint length) Parameters buffer uint offset nint length nint glFlushPixelDataRangeNV(uint) public static extern void glFlushPixelDataRangeNV(uint target) Parameters target uint glFlushRasterSGIX() public static extern void glFlushRasterSGIX() glFlushVertexArrayRangeAPPLE(int, nint) public static extern void glFlushVertexArrayRangeAPPLE(int length, nint pointer) Parameters length int pointer nint glFlushVertexArrayRangeNV() public static extern void glFlushVertexArrayRangeNV() glFogCoordFormatNV(uint, int) public static extern void glFogCoordFormatNV(uint type, int stride) Parameters type uint stride int glFogCoordPointer(uint, int, nint) public static extern void glFogCoordPointer(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glFogCoordPointerEXT(uint, int, nint) public static extern void glFogCoordPointerEXT(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glFogCoordPointerListIBM(uint, int, nint, int) public static extern void glFogCoordPointerListIBM(uint type, int stride, nint pointer, int ptrstride) Parameters type uint stride int pointer nint ptrstride int glFogCoordd(double) public static extern void glFogCoordd(double coord) Parameters coord double glFogCoorddEXT(double) public static extern void glFogCoorddEXT(double coord) Parameters coord double glFogCoorddv(double*) public static extern void glFogCoorddv(double* coord) Parameters coord double* glFogCoorddvEXT(double*) public static extern void glFogCoorddvEXT(double* coord) Parameters coord double* glFogCoordf(float) public static extern void glFogCoordf(float coord) Parameters coord float glFogCoordfEXT(float) public static extern void glFogCoordfEXT(float coord) Parameters coord float glFogCoordfv(float*) public static extern void glFogCoordfv(float* coord) Parameters coord float* glFogCoordfvEXT(float*) public static extern void glFogCoordfvEXT(float* coord) Parameters coord float* glFogCoordhNV(ushort) public static extern void glFogCoordhNV(ushort fog) Parameters fog ushort glFogCoordhvNV(ushort*) public static extern void glFogCoordhvNV(ushort* fog) Parameters fog ushort* glFogFuncSGIS(int, float*) public static extern void glFogFuncSGIS(int n, float* points) Parameters n int points float* glFogf(uint, float) public static extern void glFogf(uint pname, float param) Parameters pname uint param float glFogfv(uint, float*) public static extern void glFogfv(uint pname, float* @params) Parameters pname uint params float* glFogi(uint, int) public static extern void glFogi(uint pname, int param) Parameters pname uint param int glFogiv(uint, int*) public static extern void glFogiv(uint pname, int* @params) Parameters pname uint params int* glFragmentColorMaterialSGIX(uint, uint) public static extern void glFragmentColorMaterialSGIX(uint face, uint mode) Parameters face uint mode uint glFragmentLightModelfSGIX(uint, float) public static extern void glFragmentLightModelfSGIX(uint pname, float param) Parameters pname uint param float glFragmentLightModelfvSGIX(uint, float*) public static extern void glFragmentLightModelfvSGIX(uint pname, float* @params) Parameters pname uint params float* glFragmentLightModeliSGIX(uint, int) public static extern void glFragmentLightModeliSGIX(uint pname, int param) Parameters pname uint param int glFragmentLightModelivSGIX(uint, int*) public static extern void glFragmentLightModelivSGIX(uint pname, int* @params) Parameters pname uint params int* glFragmentLightfSGIX(uint, uint, float) public static extern void glFragmentLightfSGIX(uint light, uint pname, float param) Parameters light uint pname uint param float glFragmentLightfvSGIX(uint, uint, float*) public static extern void glFragmentLightfvSGIX(uint light, uint pname, float* @params) Parameters light uint pname uint params float* glFragmentLightiSGIX(uint, uint, int) public static extern void glFragmentLightiSGIX(uint light, uint pname, int param) Parameters light uint pname uint param int glFragmentLightivSGIX(uint, uint, int*) public static extern void glFragmentLightivSGIX(uint light, uint pname, int* @params) Parameters light uint pname uint params int* glFragmentMaterialfSGIX(uint, uint, float) public static extern void glFragmentMaterialfSGIX(uint face, uint pname, float param) Parameters face uint pname uint param float glFragmentMaterialfvSGIX(uint, uint, float*) public static extern void glFragmentMaterialfvSGIX(uint face, uint pname, float* @params) Parameters face uint pname uint params float* glFragmentMaterialiSGIX(uint, uint, int) public static extern void glFragmentMaterialiSGIX(uint face, uint pname, int param) Parameters face uint pname uint param int glFragmentMaterialivSGIX(uint, uint, int*) public static extern void glFragmentMaterialivSGIX(uint face, uint pname, int* @params) Parameters face uint pname uint params int* glFrameTerminatorGREMEDY() public static extern void glFrameTerminatorGREMEDY() glFrameZoomSGIX(int) public static extern void glFrameZoomSGIX(int factor) Parameters factor int glFramebufferDrawBufferEXT(uint, uint) public static extern void glFramebufferDrawBufferEXT(uint framebuffer, uint mode) Parameters framebuffer uint mode uint glFramebufferDrawBuffersEXT(uint, int, uint*) public static extern void glFramebufferDrawBuffersEXT(uint framebuffer, int n, uint* bufs) Parameters framebuffer uint n int bufs uint* glFramebufferReadBufferEXT(uint, uint) public static extern void glFramebufferReadBufferEXT(uint framebuffer, uint mode) Parameters framebuffer uint mode uint glFramebufferRenderbuffer(uint, uint, uint, uint) public static extern void glFramebufferRenderbuffer(uint target, uint attachment, uint renderbuffertarget, uint renderbuffer) Parameters target uint attachment uint renderbuffertarget uint renderbuffer uint glFramebufferRenderbufferEXT(uint, uint, uint, uint) public static extern void glFramebufferRenderbufferEXT(uint target, uint attachment, uint renderbuffertarget, uint renderbuffer) Parameters target uint attachment uint renderbuffertarget uint renderbuffer uint glFramebufferTexture(uint, uint, uint, int) public static extern void glFramebufferTexture(uint target, uint attachment, uint texture, int level) Parameters target uint attachment uint texture uint level int glFramebufferTexture1D(uint, uint, uint, uint, int) public static extern void glFramebufferTexture1D(uint target, uint attachment, uint textarget, uint texture, int level) Parameters target uint attachment uint textarget uint texture uint level int glFramebufferTexture1DEXT(uint, uint, uint, uint, int) public static extern void glFramebufferTexture1DEXT(uint target, uint attachment, uint textarget, uint texture, int level) Parameters target uint attachment uint textarget uint texture uint level int glFramebufferTexture2D(uint, uint, uint, uint, int) public static extern void glFramebufferTexture2D(uint target, uint attachment, uint textarget, uint texture, int level) Parameters target uint attachment uint textarget uint texture uint level int glFramebufferTexture2DEXT(uint, uint, uint, uint, int) public static extern void glFramebufferTexture2DEXT(uint target, uint attachment, uint textarget, uint texture, int level) Parameters target uint attachment uint textarget uint texture uint level int glFramebufferTexture3D(uint, uint, uint, uint, int, int) public static extern void glFramebufferTexture3D(uint target, uint attachment, uint textarget, uint texture, int level, int zoffset) Parameters target uint attachment uint textarget uint texture uint level int zoffset int glFramebufferTexture3DEXT(uint, uint, uint, uint, int, int) public static extern void glFramebufferTexture3DEXT(uint target, uint attachment, uint textarget, uint texture, int level, int zoffset) Parameters target uint attachment uint textarget uint texture uint level int zoffset int glFramebufferTextureARB(uint, uint, uint, int) public static extern void glFramebufferTextureARB(uint target, uint attachment, uint texture, int level) Parameters target uint attachment uint texture uint level int glFramebufferTextureEXT(uint, uint, uint, int) public static extern void glFramebufferTextureEXT(uint target, uint attachment, uint texture, int level) Parameters target uint attachment uint texture uint level int glFramebufferTextureFaceARB(uint, uint, uint, int, uint) public static extern void glFramebufferTextureFaceARB(uint target, uint attachment, uint texture, int level, uint face) Parameters target uint attachment uint texture uint level int face uint glFramebufferTextureFaceEXT(uint, uint, uint, int, uint) public static extern void glFramebufferTextureFaceEXT(uint target, uint attachment, uint texture, int level, uint face) Parameters target uint attachment uint texture uint level int face uint glFramebufferTextureLayer(uint, uint, uint, int, int) public static extern void glFramebufferTextureLayer(uint target, uint attachment, uint texture, int level, int layer) Parameters target uint attachment uint texture uint level int layer int glFramebufferTextureLayerARB(uint, uint, uint, int, int) public static extern void glFramebufferTextureLayerARB(uint target, uint attachment, uint texture, int level, int layer) Parameters target uint attachment uint texture uint level int layer int glFramebufferTextureLayerEXT(uint, uint, uint, int, int) public static extern void glFramebufferTextureLayerEXT(uint target, uint attachment, uint texture, int level, int layer) Parameters target uint attachment uint texture uint level int layer int glFreeObjectBufferATI(uint) public static extern void glFreeObjectBufferATI(uint buffer) Parameters buffer uint glFrontFace(uint) public static extern void glFrontFace(uint mode) Parameters mode uint glFrustum(double, double, double, double, double, double) public static extern void glFrustum(double left, double right, double bottom, double top, double zNear, double zFar) Parameters left double right double bottom double top double zNear double zFar double glGenAsyncMarkersSGIX(int) public static extern int glGenAsyncMarkersSGIX(int range) Parameters range int Returns int glGenBuffers(int, uint*) public static extern void glGenBuffers(int n, uint* buffers) Parameters n int buffers uint* glGenBuffersARB(int, uint*) public static extern void glGenBuffersARB(int n, uint* buffers) Parameters n int buffers uint* glGenFencesAPPLE(int, uint*) public static extern void glGenFencesAPPLE(int n, uint* fences) Parameters n int fences uint* glGenFencesNV(int, uint*) public static extern void glGenFencesNV(int n, uint* fences) Parameters n int fences uint* glGenFragmentShadersATI(uint) public static extern int glGenFragmentShadersATI(uint range) Parameters range uint Returns int glGenFramebuffers(int, uint*) public static extern void glGenFramebuffers(int n, uint* framebuffers) Parameters n int framebuffers uint* glGenFramebuffersEXT(int, uint*) public static extern void glGenFramebuffersEXT(int n, uint* framebuffers) Parameters n int framebuffers uint* glGenLists(int) public static extern int glGenLists(int range) Parameters range int Returns int glGenNamesAMD(uint, uint, uint*) public static extern void glGenNamesAMD(uint identifier, uint num, uint* names) Parameters identifier uint num uint names uint* glGenOcclusionQueriesNV(int, uint*) public static extern void glGenOcclusionQueriesNV(int n, uint* ids) Parameters n int ids uint* glGenPerfMonitorsAMD(int, uint*) public static extern void glGenPerfMonitorsAMD(int n, uint* monitors) Parameters n int monitors uint* glGenProgramPipelines(int, uint*) public static extern void glGenProgramPipelines(int n, uint* pipelines) Parameters n int pipelines uint* glGenProgramsARB(int, uint*) public static extern void glGenProgramsARB(int n, uint* programs) Parameters n int programs uint* glGenProgramsNV(int, uint*) public static extern void glGenProgramsNV(int n, uint* programs) Parameters n int programs uint* glGenQueries(int, uint*) public static extern void glGenQueries(int n, uint* ids) Parameters n int ids uint* glGenQueriesARB(int, uint*) public static extern void glGenQueriesARB(int n, uint* ids) Parameters n int ids uint* glGenRenderbuffers(int, uint*) public static extern void glGenRenderbuffers(int n, uint* renderbuffers) Parameters n int renderbuffers uint* glGenRenderbuffersEXT(int, uint*) public static extern void glGenRenderbuffersEXT(int n, uint* renderbuffers) Parameters n int renderbuffers uint* glGenSamplers(int, uint*) public static extern void glGenSamplers(int count, uint* samplers) Parameters count int samplers uint* glGenSymbolsEXT(uint, uint, uint, uint) public static extern int glGenSymbolsEXT(uint datatype, uint storagetype, uint range, uint components) Parameters datatype uint storagetype uint range uint components uint Returns int glGenTextures(int, uint*) public static extern void glGenTextures(int n, uint* textures) Parameters n int textures uint* glGenTexturesEXT(int, uint*) public static extern void glGenTexturesEXT(int n, uint* textures) Parameters n int textures uint* glGenTransformFeedbacks(int, uint*) public static extern void glGenTransformFeedbacks(int n, uint* ids) Parameters n int ids uint* glGenTransformFeedbacksNV(int, uint*) public static extern void glGenTransformFeedbacksNV(int n, uint* ids) Parameters n int ids uint* glGenVertexArrays(int, uint*) public static extern void glGenVertexArrays(int n, uint* arrays) Parameters n int arrays uint* glGenVertexArraysAPPLE(int, uint*) public static extern void glGenVertexArraysAPPLE(int n, uint* arrays) Parameters n int arrays uint* glGenVertexShadersEXT(uint) public static extern int glGenVertexShadersEXT(uint range) Parameters range uint Returns int glGenerateMipmap(uint) public static extern void glGenerateMipmap(uint target) Parameters target uint glGenerateMipmapEXT(uint) public static extern void glGenerateMipmapEXT(uint target) Parameters target uint glGenerateMultiTexMipmapEXT(uint, uint) public static extern void glGenerateMultiTexMipmapEXT(uint texunit, uint target) Parameters texunit uint target uint glGenerateTextureMipmapEXT(uint, uint) public static extern void glGenerateTextureMipmapEXT(uint texture, uint target) Parameters texture uint target uint glGetActiveAttrib(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetActiveAttrib(uint program, uint index, int bufSize, int* length, int* size, uint* type, StringBuilder name) Parameters program uint index uint bufSize int length int* size int* type uint* name StringBuilder glGetActiveAttribARB(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetActiveAttribARB(uint programObj, uint index, int maxLength, int* length, int* size, uint* type, StringBuilder name) Parameters programObj uint index uint maxLength int length int* size int* type uint* name StringBuilder glGetActiveSubroutineName(uint, uint, uint, int, int*, StringBuilder) public static extern void glGetActiveSubroutineName(uint program, uint shadertype, uint index, int bufsize, int* length, StringBuilder name) Parameters program uint shadertype uint index uint bufsize int length int* name StringBuilder glGetActiveSubroutineUniformName(uint, uint, uint, int, int*, StringBuilder) public static extern void glGetActiveSubroutineUniformName(uint program, uint shadertype, uint index, int bufsize, int* length, StringBuilder name) Parameters program uint shadertype uint index uint bufsize int length int* name StringBuilder glGetActiveSubroutineUniformiv(uint, uint, uint, uint, int*) public static extern void glGetActiveSubroutineUniformiv(uint program, uint shadertype, uint index, uint pname, int* values) Parameters program uint shadertype uint index uint pname uint values int* glGetActiveUniform(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetActiveUniform(uint program, uint index, int bufSize, int* length, int* size, uint* type, StringBuilder name) Parameters program uint index uint bufSize int length int* size int* type uint* name StringBuilder glGetActiveUniformARB(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetActiveUniformARB(uint programObj, uint index, int maxLength, int* length, int* size, uint* type, StringBuilder name) Parameters programObj uint index uint maxLength int length int* size int* type uint* name StringBuilder glGetActiveUniformBlockName(uint, uint, int, int*, StringBuilder) public static extern void glGetActiveUniformBlockName(uint program, uint uniformBlockIndex, int bufSize, int* length, StringBuilder uniformBlockName) Parameters program uint uniformBlockIndex uint bufSize int length int* uniformBlockName StringBuilder glGetActiveUniformBlockiv(uint, uint, uint, int*) public static extern void glGetActiveUniformBlockiv(uint program, uint uniformBlockIndex, uint pname, int* @params) Parameters program uint uniformBlockIndex uint pname uint params int* glGetActiveUniformName(uint, uint, int, int*, StringBuilder) public static extern void glGetActiveUniformName(uint program, uint uniformIndex, int bufSize, int* length, StringBuilder uniformName) Parameters program uint uniformIndex uint bufSize int length int* uniformName StringBuilder glGetActiveUniformsiv(uint, int, uint*, uint, int*) public static extern void glGetActiveUniformsiv(uint program, int uniformCount, uint* uniformIndices, uint pname, int* @params) Parameters program uint uniformCount int uniformIndices uint* pname uint params int* glGetActiveVaryingNV(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetActiveVaryingNV(uint program, uint index, int bufSize, int* length, int* size, uint* type, StringBuilder name) Parameters program uint index uint bufSize int length int* size int* type uint* name StringBuilder glGetArrayObjectfvATI(uint, uint, float*) public static extern void glGetArrayObjectfvATI(uint array, uint pname, float* @params) Parameters array uint pname uint params float* glGetArrayObjectivATI(uint, uint, int*) public static extern void glGetArrayObjectivATI(uint array, uint pname, int* @params) Parameters array uint pname uint params int* glGetAttachedObjectsARB(uint, int, int*, uint*) public static extern void glGetAttachedObjectsARB(uint containerObj, int maxCount, int* count, uint* obj) Parameters containerObj uint maxCount int count int* obj uint* glGetAttachedShaders(uint, int, int*, uint*) public static extern void glGetAttachedShaders(uint program, int maxCount, int* count, uint* obj) Parameters program uint maxCount int count int* obj uint* glGetAttribLocation(uint, string) public static extern int glGetAttribLocation(uint program, string name) Parameters program uint name string Returns int glGetAttribLocationARB(uint, string) public static extern int glGetAttribLocationARB(uint programObj, string name) Parameters programObj uint name string Returns int glGetBooleanIndexedvEXT(uint, uint, bool*) public static extern void glGetBooleanIndexedvEXT(uint target, uint index, bool* data) Parameters target uint index uint data bool* glGetBooleani_v(uint, uint, bool*) public static extern void glGetBooleani_v(uint target, uint index, bool* data) Parameters target uint index uint data bool* glGetBooleanv(uint, bool*) public static extern void glGetBooleanv(uint pname, bool* @params) Parameters pname uint params bool* glGetBufferParameteri64v(uint, uint, long*) public static extern void glGetBufferParameteri64v(uint target, uint pname, long* @params) Parameters target uint pname uint params long* glGetBufferParameteriv(uint, uint, int*) public static extern void glGetBufferParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetBufferParameterivARB(uint, uint, int*) public static extern void glGetBufferParameterivARB(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetBufferParameterui64vNV(uint, uint, ulong*) public static extern void glGetBufferParameterui64vNV(uint target, uint pname, ulong* @params) Parameters target uint pname uint params ulong* glGetBufferPointerv(uint, uint, nint) public static extern void glGetBufferPointerv(uint target, uint pname, nint @params) Parameters target uint pname uint params nint glGetBufferPointervARB(uint, uint, nint) public static extern void glGetBufferPointervARB(uint target, uint pname, nint @params) Parameters target uint pname uint params nint glGetBufferSubData(uint, nint, nint, nint) public static extern void glGetBufferSubData(uint target, nint offset, nint size, nint data) Parameters target uint offset nint size nint data nint glGetBufferSubDataARB(uint, nint, nint, nint) public static extern void glGetBufferSubDataARB(uint target, nint offset, nint size, nint data) Parameters target uint offset nint size nint data nint glGetClipPlane(uint, double*) public static extern void glGetClipPlane(uint plane, double* equation) Parameters plane uint equation double* glGetColorTable(uint, uint, uint, nint) public static extern void glGetColorTable(uint target, uint format, uint type, nint table) Parameters target uint format uint type uint table nint glGetColorTableEXT(uint, uint, uint, nint) public static extern void glGetColorTableEXT(uint target, uint format, uint type, nint data) Parameters target uint format uint type uint data nint glGetColorTableParameterfv(uint, uint, float*) public static extern void glGetColorTableParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetColorTableParameterfvEXT(uint, uint, float*) public static extern void glGetColorTableParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetColorTableParameterfvSGI(uint, uint, float*) public static extern void glGetColorTableParameterfvSGI(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetColorTableParameteriv(uint, uint, int*) public static extern void glGetColorTableParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetColorTableParameterivEXT(uint, uint, int*) public static extern void glGetColorTableParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetColorTableParameterivSGI(uint, uint, int*) public static extern void glGetColorTableParameterivSGI(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetColorTableSGI(uint, uint, uint, nint) public static extern void glGetColorTableSGI(uint target, uint format, uint type, nint table) Parameters target uint format uint type uint table nint glGetCombinerInputParameterfvNV(uint, uint, uint, uint, float*) public static extern void glGetCombinerInputParameterfvNV(uint stage, uint portion, uint variable, uint pname, float* @params) Parameters stage uint portion uint variable uint pname uint params float* glGetCombinerInputParameterivNV(uint, uint, uint, uint, int*) public static extern void glGetCombinerInputParameterivNV(uint stage, uint portion, uint variable, uint pname, int* @params) Parameters stage uint portion uint variable uint pname uint params int* glGetCombinerOutputParameterfvNV(uint, uint, uint, float*) public static extern void glGetCombinerOutputParameterfvNV(uint stage, uint portion, uint pname, float* @params) Parameters stage uint portion uint pname uint params float* glGetCombinerOutputParameterivNV(uint, uint, uint, int*) public static extern void glGetCombinerOutputParameterivNV(uint stage, uint portion, uint pname, int* @params) Parameters stage uint portion uint pname uint params int* glGetCombinerStageParameterfvNV(uint, uint, float*) public static extern void glGetCombinerStageParameterfvNV(uint stage, uint pname, float* @params) Parameters stage uint pname uint params float* glGetCompressedMultiTexImageEXT(uint, uint, int, nint) public static extern void glGetCompressedMultiTexImageEXT(uint texunit, uint target, int lod, nint img) Parameters texunit uint target uint lod int img nint glGetCompressedTexImage(uint, int, nint) public static extern void glGetCompressedTexImage(uint target, int level, nint img) Parameters target uint level int img nint glGetCompressedTexImageARB(uint, int, nint) public static extern void glGetCompressedTexImageARB(uint target, int level, nint img) Parameters target uint level int img nint glGetCompressedTextureImageEXT(uint, uint, int, nint) public static extern void glGetCompressedTextureImageEXT(uint texture, uint target, int lod, nint img) Parameters texture uint target uint lod int img nint glGetConvolutionFilter(uint, uint, uint, nint) public static extern void glGetConvolutionFilter(uint target, uint format, uint type, nint image) Parameters target uint format uint type uint image nint glGetConvolutionFilterEXT(uint, uint, uint, nint) public static extern void glGetConvolutionFilterEXT(uint target, uint format, uint type, nint image) Parameters target uint format uint type uint image nint glGetConvolutionParameterfv(uint, uint, float*) public static extern void glGetConvolutionParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetConvolutionParameterfvEXT(uint, uint, float*) public static extern void glGetConvolutionParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetConvolutionParameteriv(uint, uint, int*) public static extern void glGetConvolutionParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetConvolutionParameterivEXT(uint, uint, int*) public static extern void glGetConvolutionParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetDebugMessageLogAMD(uint, int, uint*, uint*, uint*, int*, StringBuilder) public static extern int glGetDebugMessageLogAMD(uint count, int bufsize, uint* categories, uint* severities, uint* ids, int* lengths, StringBuilder message) Parameters count uint bufsize int categories uint* severities uint* ids uint* lengths int* message StringBuilder Returns int glGetDebugMessageLogARB(uint, int, uint*, uint*, uint*, uint*, int*, StringBuilder) public static extern int glGetDebugMessageLogARB(uint count, int bufsize, uint* sources, uint* types, uint* ids, uint* severities, int* lengths, StringBuilder messageLog) Parameters count uint bufsize int sources uint* types uint* ids uint* severities uint* lengths int* messageLog StringBuilder Returns int glGetDetailTexFuncSGIS(uint, float*) public static extern void glGetDetailTexFuncSGIS(uint target, float* points) Parameters target uint points float* glGetError() public static extern uint glGetError() Returns uint glGetFenceivNV(uint, uint, int*) public static extern void glGetFenceivNV(uint fence, uint pname, int* @params) Parameters fence uint pname uint params int* glGetFinalCombinerInputParameterfvNV(uint, uint, float*) public static extern void glGetFinalCombinerInputParameterfvNV(uint variable, uint pname, float* @params) Parameters variable uint pname uint params float* glGetFinalCombinerInputParameterivNV(uint, uint, int*) public static extern void glGetFinalCombinerInputParameterivNV(uint variable, uint pname, int* @params) Parameters variable uint pname uint params int* glGetFloatIndexedvEXT(uint, uint, float*) public static extern void glGetFloatIndexedvEXT(uint target, uint index, float* data) Parameters target uint index uint data float* glGetFloati_v(uint, uint, float*) public static extern void glGetFloati_v(uint target, uint index, float* data) Parameters target uint index uint data float* glGetFloatv(uint, float*) public static extern void glGetFloatv(uint pname, float* @params) Parameters pname uint params float* glGetFogFuncSGIS(float*) public static extern void glGetFogFuncSGIS(float* points) Parameters points float* glGetFragDataIndex(uint, string) public static extern int glGetFragDataIndex(uint program, string name) Parameters program uint name string Returns int glGetFragDataLocation(uint, string) public static extern int glGetFragDataLocation(uint program, string name) Parameters program uint name string Returns int glGetFragDataLocationEXT(uint, string) public static extern int glGetFragDataLocationEXT(uint program, string name) Parameters program uint name string Returns int glGetFragmentLightfvSGIX(uint, uint, float*) public static extern void glGetFragmentLightfvSGIX(uint light, uint pname, float* @params) Parameters light uint pname uint params float* glGetFragmentLightivSGIX(uint, uint, int*) public static extern void glGetFragmentLightivSGIX(uint light, uint pname, int* @params) Parameters light uint pname uint params int* glGetFragmentMaterialfvSGIX(uint, uint, float*) public static extern void glGetFragmentMaterialfvSGIX(uint face, uint pname, float* @params) Parameters face uint pname uint params float* glGetFragmentMaterialivSGIX(uint, uint, int*) public static extern void glGetFragmentMaterialivSGIX(uint face, uint pname, int* @params) Parameters face uint pname uint params int* glGetFramebufferAttachmentParameteriv(uint, uint, uint, int*) public static extern void glGetFramebufferAttachmentParameteriv(uint target, uint attachment, uint pname, int* @params) Parameters target uint attachment uint pname uint params int* glGetFramebufferAttachmentParameterivEXT(uint, uint, uint, int*) public static extern void glGetFramebufferAttachmentParameterivEXT(uint target, uint attachment, uint pname, int* @params) Parameters target uint attachment uint pname uint params int* glGetFramebufferParameterivEXT(uint, uint, int*) public static extern void glGetFramebufferParameterivEXT(uint framebuffer, uint pname, int* @params) Parameters framebuffer uint pname uint params int* glGetGraphicsResetStatusARB() public static extern uint glGetGraphicsResetStatusARB() Returns uint glGetHandleARB(uint) public static extern int glGetHandleARB(uint pname) Parameters pname uint Returns int glGetHistogram(uint, bool, uint, uint, nint) public static extern void glGetHistogram(uint target, bool reset, uint format, uint type, nint values) Parameters target uint reset bool format uint type uint values nint glGetHistogramEXT(uint, bool, uint, uint, nint) public static extern void glGetHistogramEXT(uint target, bool reset, uint format, uint type, nint values) Parameters target uint reset bool format uint type uint values nint glGetHistogramParameterfv(uint, uint, float*) public static extern void glGetHistogramParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetHistogramParameterfvEXT(uint, uint, float*) public static extern void glGetHistogramParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetHistogramParameteriv(uint, uint, int*) public static extern void glGetHistogramParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetHistogramParameterivEXT(uint, uint, int*) public static extern void glGetHistogramParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetImageTransformParameterfvHP(uint, uint, float*) public static extern void glGetImageTransformParameterfvHP(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetImageTransformParameterivHP(uint, uint, int*) public static extern void glGetImageTransformParameterivHP(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetInfoLogARB(uint, int, int*, StringBuilder) public static extern void glGetInfoLogARB(uint obj, int maxLength, int* length, StringBuilder infoLog) Parameters obj uint maxLength int length int* infoLog StringBuilder glGetInstrumentsSGIX() public static extern int glGetInstrumentsSGIX() Returns int glGetInteger64i_v(uint, uint, long*) public static extern void glGetInteger64i_v(uint target, uint index, long* data) Parameters target uint index uint data long* glGetInteger64v(uint, long*) public static extern void glGetInteger64v(uint pname, long* @params) Parameters pname uint params long* glGetIntegerIndexedvEXT(uint, uint, int*) public static extern void glGetIntegerIndexedvEXT(uint target, uint index, int* data) Parameters target uint index uint data int* glGetIntegeri_v(uint, uint, int*) public static extern void glGetIntegeri_v(uint target, uint index, int* data) Parameters target uint index uint data int* glGetIntegerui64i_vNV(uint, uint, ulong*) public static extern void glGetIntegerui64i_vNV(uint value, uint index, ulong* result) Parameters value uint index uint result ulong* glGetIntegerui64vNV(uint, ulong*) public static extern void glGetIntegerui64vNV(uint value, ulong* result) Parameters value uint result ulong* glGetIntegerv(uint, int*) public static extern void glGetIntegerv(uint pname, int* @params) Parameters pname uint params int* glGetInvariantBooleanvEXT(uint, uint, bool*) public static extern void glGetInvariantBooleanvEXT(uint id, uint value, bool* data) Parameters id uint value uint data bool* glGetInvariantFloatvEXT(uint, uint, float*) public static extern void glGetInvariantFloatvEXT(uint id, uint value, float* data) Parameters id uint value uint data float* glGetInvariantIntegervEXT(uint, uint, int*) public static extern void glGetInvariantIntegervEXT(uint id, uint value, int* data) Parameters id uint value uint data int* glGetLightfv(uint, uint, float*) public static extern void glGetLightfv(uint light, uint pname, float* @params) Parameters light uint pname uint params float* glGetLightiv(uint, uint, int*) public static extern void glGetLightiv(uint light, uint pname, int* @params) Parameters light uint pname uint params int* glGetListParameterfvSGIX(uint, uint, float*) public static extern void glGetListParameterfvSGIX(uint list, uint pname, float* @params) Parameters list uint pname uint params float* glGetListParameterivSGIX(uint, uint, int*) public static extern void glGetListParameterivSGIX(uint list, uint pname, int* @params) Parameters list uint pname uint params int* glGetLocalConstantBooleanvEXT(uint, uint, bool*) public static extern void glGetLocalConstantBooleanvEXT(uint id, uint value, bool* data) Parameters id uint value uint data bool* glGetLocalConstantFloatvEXT(uint, uint, float*) public static extern void glGetLocalConstantFloatvEXT(uint id, uint value, float* data) Parameters id uint value uint data float* glGetLocalConstantIntegervEXT(uint, uint, int*) public static extern void glGetLocalConstantIntegervEXT(uint id, uint value, int* data) Parameters id uint value uint data int* glGetMapAttribParameterfvNV(uint, uint, uint, float*) public static extern void glGetMapAttribParameterfvNV(uint target, uint index, uint pname, float* @params) Parameters target uint index uint pname uint params float* glGetMapAttribParameterivNV(uint, uint, uint, int*) public static extern void glGetMapAttribParameterivNV(uint target, uint index, uint pname, int* @params) Parameters target uint index uint pname uint params int* glGetMapControlPointsNV(uint, uint, uint, int, int, bool, nint) public static extern void glGetMapControlPointsNV(uint target, uint index, uint type, int ustride, int vstride, bool packed, nint points) Parameters target uint index uint type uint ustride int vstride int packed bool points nint glGetMapParameterfvNV(uint, uint, float*) public static extern void glGetMapParameterfvNV(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetMapParameterivNV(uint, uint, int*) public static extern void glGetMapParameterivNV(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetMapdv(uint, uint, double*) public static extern void glGetMapdv(uint target, uint query, double* v) Parameters target uint query uint v double* glGetMapfv(uint, uint, float*) public static extern void glGetMapfv(uint target, uint query, float* v) Parameters target uint query uint v float* glGetMapiv(uint, uint, int*) public static extern void glGetMapiv(uint target, uint query, int* v) Parameters target uint query uint v int* glGetMaterialfv(uint, uint, float*) public static extern void glGetMaterialfv(uint face, uint pname, float* @params) Parameters face uint pname uint params float* glGetMaterialiv(uint, uint, int*) public static extern void glGetMaterialiv(uint face, uint pname, int* @params) Parameters face uint pname uint params int* glGetMinmax(uint, bool, uint, uint, nint) public static extern void glGetMinmax(uint target, bool reset, uint format, uint type, nint values) Parameters target uint reset bool format uint type uint values nint glGetMinmaxEXT(uint, bool, uint, uint, nint) public static extern void glGetMinmaxEXT(uint target, bool reset, uint format, uint type, nint values) Parameters target uint reset bool format uint type uint values nint glGetMinmaxParameterfv(uint, uint, float*) public static extern void glGetMinmaxParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetMinmaxParameterfvEXT(uint, uint, float*) public static extern void glGetMinmaxParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetMinmaxParameteriv(uint, uint, int*) public static extern void glGetMinmaxParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetMinmaxParameterivEXT(uint, uint, int*) public static extern void glGetMinmaxParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetMultiTexEnvfvEXT(uint, uint, uint, float*) public static extern void glGetMultiTexEnvfvEXT(uint texunit, uint target, uint pname, float* @params) Parameters texunit uint target uint pname uint params float* glGetMultiTexEnvivEXT(uint, uint, uint, int*) public static extern void glGetMultiTexEnvivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glGetMultiTexGendvEXT(uint, uint, uint, double*) public static extern void glGetMultiTexGendvEXT(uint texunit, uint coord, uint pname, double* @params) Parameters texunit uint coord uint pname uint params double* glGetMultiTexGenfvEXT(uint, uint, uint, float*) public static extern void glGetMultiTexGenfvEXT(uint texunit, uint coord, uint pname, float* @params) Parameters texunit uint coord uint pname uint params float* glGetMultiTexGenivEXT(uint, uint, uint, int*) public static extern void glGetMultiTexGenivEXT(uint texunit, uint coord, uint pname, int* @params) Parameters texunit uint coord uint pname uint params int* glGetMultiTexImageEXT(uint, uint, int, uint, uint, nint) public static extern void glGetMultiTexImageEXT(uint texunit, uint target, int level, uint format, uint type, nint pixels) Parameters texunit uint target uint level int format uint type uint pixels nint glGetMultiTexLevelParameterfvEXT(uint, uint, int, uint, float*) public static extern void glGetMultiTexLevelParameterfvEXT(uint texunit, uint target, int level, uint pname, float* @params) Parameters texunit uint target uint level int pname uint params float* glGetMultiTexLevelParameterivEXT(uint, uint, int, uint, int*) public static extern void glGetMultiTexLevelParameterivEXT(uint texunit, uint target, int level, uint pname, int* @params) Parameters texunit uint target uint level int pname uint params int* glGetMultiTexParameterIivEXT(uint, uint, uint, int*) public static extern void glGetMultiTexParameterIivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glGetMultiTexParameterIuivEXT(uint, uint, uint, uint*) public static extern void glGetMultiTexParameterIuivEXT(uint texunit, uint target, uint pname, uint* @params) Parameters texunit uint target uint pname uint params uint* glGetMultiTexParameterfvEXT(uint, uint, uint, float*) public static extern void glGetMultiTexParameterfvEXT(uint texunit, uint target, uint pname, float* @params) Parameters texunit uint target uint pname uint params float* glGetMultiTexParameterivEXT(uint, uint, uint, int*) public static extern void glGetMultiTexParameterivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glGetMultisamplefv(uint, uint, float*) public static extern void glGetMultisamplefv(uint pname, uint index, float* val) Parameters pname uint index uint val float* glGetMultisamplefvNV(uint, uint, float*) public static extern void glGetMultisamplefvNV(uint pname, uint index, float* val) Parameters pname uint index uint val float* glGetNamedBufferParameterivEXT(uint, uint, int*) public static extern void glGetNamedBufferParameterivEXT(uint buffer, uint pname, int* @params) Parameters buffer uint pname uint params int* glGetNamedBufferParameterui64vNV(uint, uint, ulong*) public static extern void glGetNamedBufferParameterui64vNV(uint buffer, uint pname, ulong* @params) Parameters buffer uint pname uint params ulong* glGetNamedBufferPointervEXT(uint, uint, nint) public static extern void glGetNamedBufferPointervEXT(uint buffer, uint pname, nint @params) Parameters buffer uint pname uint params nint glGetNamedBufferSubDataEXT(uint, nint, nint, nint) public static extern void glGetNamedBufferSubDataEXT(uint buffer, nint offset, nint size, nint data) Parameters buffer uint offset nint size nint data nint glGetNamedFramebufferAttachmentParameterivEXT(uint, uint, uint, int*) public static extern void glGetNamedFramebufferAttachmentParameterivEXT(uint framebuffer, uint attachment, uint pname, int* @params) Parameters framebuffer uint attachment uint pname uint params int* glGetNamedProgramLocalParameterIivEXT(uint, uint, uint, int*) public static extern void glGetNamedProgramLocalParameterIivEXT(uint program, uint target, uint index, int* @params) Parameters program uint target uint index uint params int* glGetNamedProgramLocalParameterIuivEXT(uint, uint, uint, uint*) public static extern void glGetNamedProgramLocalParameterIuivEXT(uint program, uint target, uint index, uint* @params) Parameters program uint target uint index uint params uint* glGetNamedProgramLocalParameterdvEXT(uint, uint, uint, double*) public static extern void glGetNamedProgramLocalParameterdvEXT(uint program, uint target, uint index, double* @params) Parameters program uint target uint index uint params double* glGetNamedProgramLocalParameterfvEXT(uint, uint, uint, float*) public static extern void glGetNamedProgramLocalParameterfvEXT(uint program, uint target, uint index, float* @params) Parameters program uint target uint index uint params float* glGetNamedProgramStringEXT(uint, uint, uint, nint) public static extern void glGetNamedProgramStringEXT(uint program, uint target, uint pname, nint @string) Parameters program uint target uint pname uint string nint glGetNamedProgramivEXT(uint, uint, uint, int*) public static extern void glGetNamedProgramivEXT(uint program, uint target, uint pname, int* @params) Parameters program uint target uint pname uint params int* glGetNamedRenderbufferParameterivEXT(uint, uint, int*) public static extern void glGetNamedRenderbufferParameterivEXT(uint renderbuffer, uint pname, int* @params) Parameters renderbuffer uint pname uint params int* glGetNamedStringARB(int, string, int, int*, StringBuilder) public static extern void glGetNamedStringARB(int namelen, string name, int bufSize, int* stringlen, StringBuilder @string) Parameters namelen int name string bufSize int stringlen int* string StringBuilder glGetNamedStringivARB(int, string, uint, int*) public static extern void glGetNamedStringivARB(int namelen, string name, uint pname, int* @params) Parameters namelen int name string pname uint params int* glGetObjectBufferfvATI(uint, uint, float*) public static extern void glGetObjectBufferfvATI(uint buffer, uint pname, float* @params) Parameters buffer uint pname uint params float* glGetObjectBufferivATI(uint, uint, int*) public static extern void glGetObjectBufferivATI(uint buffer, uint pname, int* @params) Parameters buffer uint pname uint params int* glGetObjectParameterfvARB(uint, uint, float*) public static extern void glGetObjectParameterfvARB(uint obj, uint pname, float* @params) Parameters obj uint pname uint params float* glGetObjectParameterivAPPLE(uint, uint, uint, int*) public static extern void glGetObjectParameterivAPPLE(uint objectType, uint name, uint pname, int* @params) Parameters objectType uint name uint pname uint params int* glGetObjectParameterivARB(uint, uint, int*) public static extern void glGetObjectParameterivARB(uint obj, uint pname, int* @params) Parameters obj uint pname uint params int* glGetOcclusionQueryivNV(uint, uint, int*) public static extern void glGetOcclusionQueryivNV(uint id, uint pname, int* @params) Parameters id uint pname uint params int* glGetOcclusionQueryuivNV(uint, uint, uint*) public static extern void glGetOcclusionQueryuivNV(uint id, uint pname, uint* @params) Parameters id uint pname uint params uint* glGetPerfMonitorCounterDataAMD(uint, uint, int, uint*, int*) public static extern void glGetPerfMonitorCounterDataAMD(uint monitor, uint pname, int dataSize, uint* data, int* bytesWritten) Parameters monitor uint pname uint dataSize int data uint* bytesWritten int* glGetPerfMonitorCounterInfoAMD(uint, uint, uint, nint) public static extern void glGetPerfMonitorCounterInfoAMD(uint group, uint counter, uint pname, nint data) Parameters group uint counter uint pname uint data nint glGetPerfMonitorCounterStringAMD(uint, uint, int, int*, StringBuilder) public static extern void glGetPerfMonitorCounterStringAMD(uint group, uint counter, int bufSize, int* length, StringBuilder counterString) Parameters group uint counter uint bufSize int length int* counterString StringBuilder glGetPerfMonitorCountersAMD(uint, int*, int*, int, uint*) public static extern void glGetPerfMonitorCountersAMD(uint group, int* numCounters, int* maxActiveCounters, int counterSize, uint* counters) Parameters group uint numCounters int* maxActiveCounters int* counterSize int counters uint* glGetPerfMonitorGroupStringAMD(uint, int, int*, StringBuilder) public static extern void glGetPerfMonitorGroupStringAMD(uint group, int bufSize, int* length, StringBuilder groupString) Parameters group uint bufSize int length int* groupString StringBuilder glGetPerfMonitorGroupsAMD(int*, int, uint*) public static extern void glGetPerfMonitorGroupsAMD(int* numGroups, int groupsSize, uint* groups) Parameters numGroups int* groupsSize int groups uint* glGetPixelMapfv(uint, float*) public static extern void glGetPixelMapfv(uint map, float* values) Parameters map uint values float* glGetPixelMapuiv(uint, uint*) public static extern void glGetPixelMapuiv(uint map, uint* values) Parameters map uint values uint* glGetPixelMapusv(uint, ushort*) public static extern void glGetPixelMapusv(uint map, ushort* values) Parameters map uint values ushort* glGetPixelTexGenParameterfvSGIS(uint, float*) public static extern void glGetPixelTexGenParameterfvSGIS(uint pname, float* @params) Parameters pname uint params float* glGetPixelTexGenParameterivSGIS(uint, int*) public static extern void glGetPixelTexGenParameterivSGIS(uint pname, int* @params) Parameters pname uint params int* glGetPointerIndexedvEXT(uint, uint, nint) public static extern void glGetPointerIndexedvEXT(uint target, uint index, nint data) Parameters target uint index uint data nint glGetPointerv(uint, nint) public static extern void glGetPointerv(uint pname, nint @params) Parameters pname uint params nint glGetPointervEXT(uint, nint) public static extern void glGetPointervEXT(uint pname, nint @params) Parameters pname uint params nint glGetPolygonStipple(byte*) public static extern void glGetPolygonStipple(byte* mask) Parameters mask byte* glGetProgramBinary(uint, int, int*, uint*, nint) public static extern void glGetProgramBinary(uint program, int bufSize, int* length, uint* binaryFormat, nint binary) Parameters program uint bufSize int length int* binaryFormat uint* binary nint glGetProgramEnvParameterIivNV(uint, uint, int*) public static extern void glGetProgramEnvParameterIivNV(uint target, uint index, int* @params) Parameters target uint index uint params int* glGetProgramEnvParameterIuivNV(uint, uint, uint*) public static extern void glGetProgramEnvParameterIuivNV(uint target, uint index, uint* @params) Parameters target uint index uint params uint* glGetProgramEnvParameterdvARB(uint, uint, double*) public static extern void glGetProgramEnvParameterdvARB(uint target, uint index, double* @params) Parameters target uint index uint params double* glGetProgramEnvParameterfvARB(uint, uint, float*) public static extern void glGetProgramEnvParameterfvARB(uint target, uint index, float* @params) Parameters target uint index uint params float* glGetProgramInfoLog(uint, int, int*, StringBuilder) public static extern void glGetProgramInfoLog(uint program, int bufSize, int* length, StringBuilder infoLog) Parameters program uint bufSize int length int* infoLog StringBuilder glGetProgramLocalParameterIivNV(uint, uint, int*) public static extern void glGetProgramLocalParameterIivNV(uint target, uint index, int* @params) Parameters target uint index uint params int* glGetProgramLocalParameterIuivNV(uint, uint, uint*) public static extern void glGetProgramLocalParameterIuivNV(uint target, uint index, uint* @params) Parameters target uint index uint params uint* glGetProgramLocalParameterdvARB(uint, uint, double*) public static extern void glGetProgramLocalParameterdvARB(uint target, uint index, double* @params) Parameters target uint index uint params double* glGetProgramLocalParameterfvARB(uint, uint, float*) public static extern void glGetProgramLocalParameterfvARB(uint target, uint index, float* @params) Parameters target uint index uint params float* glGetProgramNamedParameterdvNV(uint, int, byte*, double*) public static extern void glGetProgramNamedParameterdvNV(uint id, int len, byte* name, double* @params) Parameters id uint len int name byte* params double* glGetProgramNamedParameterfvNV(uint, int, byte*, float*) public static extern void glGetProgramNamedParameterfvNV(uint id, int len, byte* name, float* @params) Parameters id uint len int name byte* params float* glGetProgramParameterdvNV(uint, uint, uint, double*) public static extern void glGetProgramParameterdvNV(uint target, uint index, uint pname, double* @params) Parameters target uint index uint pname uint params double* glGetProgramParameterfvNV(uint, uint, uint, float*) public static extern void glGetProgramParameterfvNV(uint target, uint index, uint pname, float* @params) Parameters target uint index uint pname uint params float* glGetProgramPipelineInfoLog(uint, int, int*, StringBuilder) public static extern void glGetProgramPipelineInfoLog(uint pipeline, int bufSize, int* length, StringBuilder infoLog) Parameters pipeline uint bufSize int length int* infoLog StringBuilder glGetProgramPipelineiv(uint, uint, int*) public static extern void glGetProgramPipelineiv(uint pipeline, uint pname, int* @params) Parameters pipeline uint pname uint params int* glGetProgramStageiv(uint, uint, uint, int*) public static extern void glGetProgramStageiv(uint program, uint shadertype, uint pname, int* values) Parameters program uint shadertype uint pname uint values int* glGetProgramStringARB(uint, uint, nint) public static extern void glGetProgramStringARB(uint target, uint pname, nint @string) Parameters target uint pname uint string nint glGetProgramStringNV(uint, uint, byte*) public static extern void glGetProgramStringNV(uint id, uint pname, byte* program) Parameters id uint pname uint program byte* glGetProgramSubroutineParameteruivNV(uint, uint, uint*) public static extern void glGetProgramSubroutineParameteruivNV(uint target, uint index, uint* param) Parameters target uint index uint param uint* glGetProgramiv(uint, uint, int*) public static extern void glGetProgramiv(uint program, uint pname, int* @params) Parameters program uint pname uint params int* glGetProgramivARB(uint, uint, int*) public static extern void glGetProgramivARB(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetProgramivNV(uint, uint, int*) public static extern void glGetProgramivNV(uint id, uint pname, int* @params) Parameters id uint pname uint params int* glGetQueryIndexediv(uint, uint, uint, int*) public static extern void glGetQueryIndexediv(uint target, uint index, uint pname, int* @params) Parameters target uint index uint pname uint params int* glGetQueryObjecti64v(uint, uint, long*) public static extern void glGetQueryObjecti64v(uint id, uint pname, long* @params) Parameters id uint pname uint params long* glGetQueryObjecti64vEXT(uint, uint, long*) public static extern void glGetQueryObjecti64vEXT(uint id, uint pname, long* @params) Parameters id uint pname uint params long* glGetQueryObjectiv(uint, uint, int*) public static extern void glGetQueryObjectiv(uint id, uint pname, int* @params) Parameters id uint pname uint params int* glGetQueryObjectivARB(uint, uint, int*) public static extern void glGetQueryObjectivARB(uint id, uint pname, int* @params) Parameters id uint pname uint params int* glGetQueryObjectui64v(uint, uint, ulong*) public static extern void glGetQueryObjectui64v(uint id, uint pname, ulong* @params) Parameters id uint pname uint params ulong* glGetQueryObjectui64vEXT(uint, uint, ulong*) public static extern void glGetQueryObjectui64vEXT(uint id, uint pname, ulong* @params) Parameters id uint pname uint params ulong* glGetQueryObjectuiv(uint, uint, uint*) public static extern void glGetQueryObjectuiv(uint id, uint pname, uint* @params) Parameters id uint pname uint params uint* glGetQueryObjectuivARB(uint, uint, uint*) public static extern void glGetQueryObjectuivARB(uint id, uint pname, uint* @params) Parameters id uint pname uint params uint* glGetQueryiv(uint, uint, int*) public static extern void glGetQueryiv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetQueryivARB(uint, uint, int*) public static extern void glGetQueryivARB(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetRenderbufferParameteriv(uint, uint, int*) public static extern void glGetRenderbufferParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetRenderbufferParameterivEXT(uint, uint, int*) public static extern void glGetRenderbufferParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetSamplerParameterIiv(uint, uint, int*) public static extern void glGetSamplerParameterIiv(uint sampler, uint pname, int* @params) Parameters sampler uint pname uint params int* glGetSamplerParameterIuiv(uint, uint, uint*) public static extern void glGetSamplerParameterIuiv(uint sampler, uint pname, uint* @params) Parameters sampler uint pname uint params uint* glGetSamplerParameterfv(uint, uint, float*) public static extern void glGetSamplerParameterfv(uint sampler, uint pname, float* @params) Parameters sampler uint pname uint params float* glGetSamplerParameteriv(uint, uint, int*) public static extern void glGetSamplerParameteriv(uint sampler, uint pname, int* @params) Parameters sampler uint pname uint params int* glGetSeparableFilter(uint, uint, uint, nint, nint, nint) public static extern void glGetSeparableFilter(uint target, uint format, uint type, nint row, nint column, nint span) Parameters target uint format uint type uint row nint column nint span nint glGetSeparableFilterEXT(uint, uint, uint, nint, nint, nint) public static extern void glGetSeparableFilterEXT(uint target, uint format, uint type, nint row, nint column, nint span) Parameters target uint format uint type uint row nint column nint span nint glGetShaderInfoLog(uint, int, int*, StringBuilder) public static extern void glGetShaderInfoLog(uint shader, int bufSize, int* length, StringBuilder infoLog) Parameters shader uint bufSize int length int* infoLog StringBuilder glGetShaderPrecisionFormat(uint, uint, int*, int*) public static extern void glGetShaderPrecisionFormat(uint shadertype, uint precisiontype, int* range, int* precision) Parameters shadertype uint precisiontype uint range int* precision int* glGetShaderSource(uint, int, int*, StringBuilder) public static extern void glGetShaderSource(uint shader, int bufSize, int* length, StringBuilder source) Parameters shader uint bufSize int length int* source StringBuilder glGetShaderSourceARB(uint, int, int*, StringBuilder) public static extern void glGetShaderSourceARB(uint obj, int maxLength, int* length, StringBuilder source) Parameters obj uint maxLength int length int* source StringBuilder glGetShaderiv(uint, uint, int*) public static extern void glGetShaderiv(uint shader, uint pname, int* @params) Parameters shader uint pname uint params int* glGetSharpenTexFuncSGIS(uint, float*) public static extern void glGetSharpenTexFuncSGIS(uint target, float* points) Parameters target uint points float* glGetString(uint) public static extern nint glGetString(uint name) Parameters name uint Returns nint glGetStringi(uint, uint) public static extern nint glGetStringi(uint name, uint index) Parameters name uint index uint Returns nint glGetSubroutineIndex(uint, uint, string) public static extern int glGetSubroutineIndex(uint program, uint shadertype, string name) Parameters program uint shadertype uint name string Returns int glGetSubroutineUniformLocation(uint, uint, string) public static extern int glGetSubroutineUniformLocation(uint program, uint shadertype, string name) Parameters program uint shadertype uint name string Returns int glGetSynciv(nint, uint, int, int*, int*) public static extern void glGetSynciv(nint sync, uint pname, int bufSize, int* length, int* values) Parameters sync nint pname uint bufSize int length int* values int* glGetTexBumpParameterfvATI(uint, float*) public static extern void glGetTexBumpParameterfvATI(uint pname, float* param) Parameters pname uint param float* glGetTexBumpParameterivATI(uint, int*) public static extern void glGetTexBumpParameterivATI(uint pname, int* param) Parameters pname uint param int* glGetTexEnvfv(uint, uint, float*) public static extern void glGetTexEnvfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetTexEnviv(uint, uint, int*) public static extern void glGetTexEnviv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetTexFilterFuncSGIS(uint, uint, float*) public static extern void glGetTexFilterFuncSGIS(uint target, uint filter, float* weights) Parameters target uint filter uint weights float* glGetTexGendv(uint, uint, double*) public static extern void glGetTexGendv(uint coord, uint pname, double* @params) Parameters coord uint pname uint params double* glGetTexGenfv(uint, uint, float*) public static extern void glGetTexGenfv(uint coord, uint pname, float* @params) Parameters coord uint pname uint params float* glGetTexGeniv(uint, uint, int*) public static extern void glGetTexGeniv(uint coord, uint pname, int* @params) Parameters coord uint pname uint params int* glGetTexImage(uint, int, uint, uint, nint) public static extern void glGetTexImage(uint target, int level, uint format, uint type, nint pixels) Parameters target uint level int format uint type uint pixels nint glGetTexLevelParameterfv(uint, int, uint, float*) public static extern void glGetTexLevelParameterfv(uint target, int level, uint pname, float* @params) Parameters target uint level int pname uint params float* glGetTexLevelParameteriv(uint, int, uint, int*) public static extern void glGetTexLevelParameteriv(uint target, int level, uint pname, int* @params) Parameters target uint level int pname uint params int* glGetTexParameterIiv(uint, uint, int*) public static extern void glGetTexParameterIiv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetTexParameterIivEXT(uint, uint, int*) public static extern void glGetTexParameterIivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetTexParameterIuiv(uint, uint, uint*) public static extern void glGetTexParameterIuiv(uint target, uint pname, uint* @params) Parameters target uint pname uint params uint* glGetTexParameterIuivEXT(uint, uint, uint*) public static extern void glGetTexParameterIuivEXT(uint target, uint pname, uint* @params) Parameters target uint pname uint params uint* glGetTexParameterPointervAPPLE(uint, uint, nint) public static extern void glGetTexParameterPointervAPPLE(uint target, uint pname, nint @params) Parameters target uint pname uint params nint glGetTexParameterfv(uint, uint, float*) public static extern void glGetTexParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glGetTexParameteriv(uint, uint, int*) public static extern void glGetTexParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glGetTextureImageEXT(uint, uint, int, uint, uint, nint) public static extern void glGetTextureImageEXT(uint texture, uint target, int level, uint format, uint type, nint pixels) Parameters texture uint target uint level int format uint type uint pixels nint glGetTextureLevelParameterfvEXT(uint, uint, int, uint, float*) public static extern void glGetTextureLevelParameterfvEXT(uint texture, uint target, int level, uint pname, float* @params) Parameters texture uint target uint level int pname uint params float* glGetTextureLevelParameterivEXT(uint, uint, int, uint, int*) public static extern void glGetTextureLevelParameterivEXT(uint texture, uint target, int level, uint pname, int* @params) Parameters texture uint target uint level int pname uint params int* glGetTextureParameterIivEXT(uint, uint, uint, int*) public static extern void glGetTextureParameterIivEXT(uint texture, uint target, uint pname, int* @params) Parameters texture uint target uint pname uint params int* glGetTextureParameterIuivEXT(uint, uint, uint, uint*) public static extern void glGetTextureParameterIuivEXT(uint texture, uint target, uint pname, uint* @params) Parameters texture uint target uint pname uint params uint* glGetTextureParameterfvEXT(uint, uint, uint, float*) public static extern void glGetTextureParameterfvEXT(uint texture, uint target, uint pname, float* @params) Parameters texture uint target uint pname uint params float* glGetTextureParameterivEXT(uint, uint, uint, int*) public static extern void glGetTextureParameterivEXT(uint texture, uint target, uint pname, int* @params) Parameters texture uint target uint pname uint params int* glGetTrackMatrixivNV(uint, uint, uint, int*) public static extern void glGetTrackMatrixivNV(uint target, uint address, uint pname, int* @params) Parameters target uint address uint pname uint params int* glGetTransformFeedbackVarying(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetTransformFeedbackVarying(uint program, uint index, int bufSize, int* length, int* size, uint* type, StringBuilder name) Parameters program uint index uint bufSize int length int* size int* type uint* name StringBuilder glGetTransformFeedbackVaryingEXT(uint, uint, int, int*, int*, uint*, StringBuilder) public static extern void glGetTransformFeedbackVaryingEXT(uint program, uint index, int bufSize, int* length, int* size, uint* type, StringBuilder name) Parameters program uint index uint bufSize int length int* size int* type uint* name StringBuilder glGetTransformFeedbackVaryingNV(uint, uint, int*) public static extern void glGetTransformFeedbackVaryingNV(uint program, uint index, int* location) Parameters program uint index uint location int* glGetUniformBlockIndex(uint, string) public static extern int glGetUniformBlockIndex(uint program, string uniformBlockName) Parameters program uint uniformBlockName string Returns int glGetUniformBufferSizeEXT(uint, int) public static extern int glGetUniformBufferSizeEXT(uint program, int location) Parameters program uint location int Returns int glGetUniformIndices(uint, int, string[], uint*) public static extern void glGetUniformIndices(uint program, int uniformCount, string[] uniformNames, uint* uniformIndices) Parameters program uint uniformCount int uniformNames string[] uniformIndices uint* glGetUniformLocation(uint, string) public static extern int glGetUniformLocation(uint program, string name) Parameters program uint name string Returns int glGetUniformLocationARB(uint, string) public static extern int glGetUniformLocationARB(uint programObj, string name) Parameters programObj uint name string Returns int glGetUniformOffsetEXT(uint, int) public static extern nint glGetUniformOffsetEXT(uint program, int location) Parameters program uint location int Returns nint glGetUniformSubroutineuiv(uint, int, uint*) public static extern void glGetUniformSubroutineuiv(uint shadertype, int location, uint* @params) Parameters shadertype uint location int params uint* glGetUniformdv(uint, int, double*) public static extern void glGetUniformdv(uint program, int location, double* @params) Parameters program uint location int params double* glGetUniformfv(uint, int, float*) public static extern void glGetUniformfv(uint program, int location, float* @params) Parameters program uint location int params float* glGetUniformfvARB(uint, int, float*) public static extern void glGetUniformfvARB(uint programObj, int location, float* @params) Parameters programObj uint location int params float* glGetUniformi64vNV(uint, int, long*) public static extern void glGetUniformi64vNV(uint program, int location, long* @params) Parameters program uint location int params long* glGetUniformiv(uint, int, int*) public static extern void glGetUniformiv(uint program, int location, int* @params) Parameters program uint location int params int* glGetUniformivARB(uint, int, int*) public static extern void glGetUniformivARB(uint programObj, int location, int* @params) Parameters programObj uint location int params int* glGetUniformui64vNV(uint, int, ulong*) public static extern void glGetUniformui64vNV(uint program, int location, ulong* @params) Parameters program uint location int params ulong* glGetUniformuiv(uint, int, uint*) public static extern void glGetUniformuiv(uint program, int location, uint* @params) Parameters program uint location int params uint* glGetUniformuivEXT(uint, int, uint*) public static extern void glGetUniformuivEXT(uint program, int location, uint* @params) Parameters program uint location int params uint* glGetVariantArrayObjectfvATI(uint, uint, float*) public static extern void glGetVariantArrayObjectfvATI(uint id, uint pname, float* @params) Parameters id uint pname uint params float* glGetVariantArrayObjectivATI(uint, uint, int*) public static extern void glGetVariantArrayObjectivATI(uint id, uint pname, int* @params) Parameters id uint pname uint params int* glGetVariantBooleanvEXT(uint, uint, bool*) public static extern void glGetVariantBooleanvEXT(uint id, uint value, bool* data) Parameters id uint value uint data bool* glGetVariantFloatvEXT(uint, uint, float*) public static extern void glGetVariantFloatvEXT(uint id, uint value, float* data) Parameters id uint value uint data float* glGetVariantIntegervEXT(uint, uint, int*) public static extern void glGetVariantIntegervEXT(uint id, uint value, int* data) Parameters id uint value uint data int* glGetVariantPointervEXT(uint, uint, nint) public static extern void glGetVariantPointervEXT(uint id, uint value, nint data) Parameters id uint value uint data nint glGetVaryingLocationNV(uint, string) public static extern int glGetVaryingLocationNV(uint program, string name) Parameters program uint name string Returns int glGetVertexAttribArrayObjectfvATI(uint, uint, float*) public static extern void glGetVertexAttribArrayObjectfvATI(uint index, uint pname, float* @params) Parameters index uint pname uint params float* glGetVertexAttribArrayObjectivATI(uint, uint, int*) public static extern void glGetVertexAttribArrayObjectivATI(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVertexAttribIiv(uint, uint, int*) public static extern void glGetVertexAttribIiv(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVertexAttribIivEXT(uint, uint, int*) public static extern void glGetVertexAttribIivEXT(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVertexAttribIuiv(uint, uint, uint*) public static extern void glGetVertexAttribIuiv(uint index, uint pname, uint* @params) Parameters index uint pname uint params uint* glGetVertexAttribIuivEXT(uint, uint, uint*) public static extern void glGetVertexAttribIuivEXT(uint index, uint pname, uint* @params) Parameters index uint pname uint params uint* glGetVertexAttribLdv(uint, uint, double*) public static extern void glGetVertexAttribLdv(uint index, uint pname, double* @params) Parameters index uint pname uint params double* glGetVertexAttribLdvEXT(uint, uint, double*) public static extern void glGetVertexAttribLdvEXT(uint index, uint pname, double* @params) Parameters index uint pname uint params double* glGetVertexAttribLi64vNV(uint, uint, long*) public static extern void glGetVertexAttribLi64vNV(uint index, uint pname, long* @params) Parameters index uint pname uint params long* glGetVertexAttribLui64vNV(uint, uint, ulong*) public static extern void glGetVertexAttribLui64vNV(uint index, uint pname, ulong* @params) Parameters index uint pname uint params ulong* glGetVertexAttribPointerv(uint, uint, nint) public static extern void glGetVertexAttribPointerv(uint index, uint pname, nint pointer) Parameters index uint pname uint pointer nint glGetVertexAttribPointervARB(uint, uint, nint) public static extern void glGetVertexAttribPointervARB(uint index, uint pname, nint pointer) Parameters index uint pname uint pointer nint glGetVertexAttribPointervNV(uint, uint, nint) public static extern void glGetVertexAttribPointervNV(uint index, uint pname, nint pointer) Parameters index uint pname uint pointer nint glGetVertexAttribdv(uint, uint, double*) public static extern void glGetVertexAttribdv(uint index, uint pname, double* @params) Parameters index uint pname uint params double* glGetVertexAttribdvARB(uint, uint, double*) public static extern void glGetVertexAttribdvARB(uint index, uint pname, double* @params) Parameters index uint pname uint params double* glGetVertexAttribdvNV(uint, uint, double*) public static extern void glGetVertexAttribdvNV(uint index, uint pname, double* @params) Parameters index uint pname uint params double* glGetVertexAttribfv(uint, uint, float*) public static extern void glGetVertexAttribfv(uint index, uint pname, float* @params) Parameters index uint pname uint params float* glGetVertexAttribfvARB(uint, uint, float*) public static extern void glGetVertexAttribfvARB(uint index, uint pname, float* @params) Parameters index uint pname uint params float* glGetVertexAttribfvNV(uint, uint, float*) public static extern void glGetVertexAttribfvNV(uint index, uint pname, float* @params) Parameters index uint pname uint params float* glGetVertexAttribiv(uint, uint, int*) public static extern void glGetVertexAttribiv(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVertexAttribivARB(uint, uint, int*) public static extern void glGetVertexAttribivARB(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVertexAttribivNV(uint, uint, int*) public static extern void glGetVertexAttribivNV(uint index, uint pname, int* @params) Parameters index uint pname uint params int* glGetVideoCaptureStreamdvNV(uint, uint, uint, double*) public static extern void glGetVideoCaptureStreamdvNV(uint video_capture_slot, uint stream, uint pname, double* @params) Parameters video_capture_slot uint stream uint pname uint params double* glGetVideoCaptureStreamfvNV(uint, uint, uint, float*) public static extern void glGetVideoCaptureStreamfvNV(uint video_capture_slot, uint stream, uint pname, float* @params) Parameters video_capture_slot uint stream uint pname uint params float* glGetVideoCaptureStreamivNV(uint, uint, uint, int*) public static extern void glGetVideoCaptureStreamivNV(uint video_capture_slot, uint stream, uint pname, int* @params) Parameters video_capture_slot uint stream uint pname uint params int* glGetVideoCaptureivNV(uint, uint, int*) public static extern void glGetVideoCaptureivNV(uint video_capture_slot, uint pname, int* @params) Parameters video_capture_slot uint pname uint params int* glGetVideoi64vNV(uint, uint, long*) public static extern void glGetVideoi64vNV(uint video_slot, uint pname, long* @params) Parameters video_slot uint pname uint params long* glGetVideoivNV(uint, uint, int*) public static extern void glGetVideoivNV(uint video_slot, uint pname, int* @params) Parameters video_slot uint pname uint params int* glGetVideoui64vNV(uint, uint, ulong*) public static extern void glGetVideoui64vNV(uint video_slot, uint pname, ulong* @params) Parameters video_slot uint pname uint params ulong* glGetVideouivNV(uint, uint, uint*) public static extern void glGetVideouivNV(uint video_slot, uint pname, uint* @params) Parameters video_slot uint pname uint params uint* glGetnColorTableARB(uint, uint, uint, int, nint) public static extern void glGetnColorTableARB(uint target, uint format, uint type, int bufSize, nint table) Parameters target uint format uint type uint bufSize int table nint glGetnCompressedTexImageARB(uint, int, int, nint) public static extern void glGetnCompressedTexImageARB(uint target, int lod, int bufSize, nint img) Parameters target uint lod int bufSize int img nint glGetnConvolutionFilterARB(uint, uint, uint, int, nint) public static extern void glGetnConvolutionFilterARB(uint target, uint format, uint type, int bufSize, nint image) Parameters target uint format uint type uint bufSize int image nint glGetnHistogramARB(uint, bool, uint, uint, int, nint) public static extern void glGetnHistogramARB(uint target, bool reset, uint format, uint type, int bufSize, nint values) Parameters target uint reset bool format uint type uint bufSize int values nint glGetnMapdvARB(uint, uint, int, double*) public static extern void glGetnMapdvARB(uint target, uint query, int bufSize, double* v) Parameters target uint query uint bufSize int v double* glGetnMapfvARB(uint, uint, int, float*) public static extern void glGetnMapfvARB(uint target, uint query, int bufSize, float* v) Parameters target uint query uint bufSize int v float* glGetnMapivARB(uint, uint, int, int*) public static extern void glGetnMapivARB(uint target, uint query, int bufSize, int* v) Parameters target uint query uint bufSize int v int* glGetnMinmaxARB(uint, bool, uint, uint, int, nint) public static extern void glGetnMinmaxARB(uint target, bool reset, uint format, uint type, int bufSize, nint values) Parameters target uint reset bool format uint type uint bufSize int values nint glGetnPixelMapfvARB(uint, int, float*) public static extern void glGetnPixelMapfvARB(uint map, int bufSize, float* values) Parameters map uint bufSize int values float* glGetnPixelMapuivARB(uint, int, uint*) public static extern void glGetnPixelMapuivARB(uint map, int bufSize, uint* values) Parameters map uint bufSize int values uint* glGetnPixelMapusvARB(uint, int, ushort*) public static extern void glGetnPixelMapusvARB(uint map, int bufSize, ushort* values) Parameters map uint bufSize int values ushort* glGetnPolygonStippleARB(int, byte*) public static extern void glGetnPolygonStippleARB(int bufSize, byte* pattern) Parameters bufSize int pattern byte* glGetnSeparableFilterARB(uint, uint, uint, int, nint, int, nint, nint) public static extern void glGetnSeparableFilterARB(uint target, uint format, uint type, int rowBufSize, nint row, int columnBufSize, nint column, nint span) Parameters target uint format uint type uint rowBufSize int row nint columnBufSize int column nint span nint glGetnTexImageARB(uint, int, uint, uint, int, nint) public static extern void glGetnTexImageARB(uint target, int level, uint format, uint type, int bufSize, nint img) Parameters target uint level int format uint type uint bufSize int img nint glGetnUniformdvARB(uint, int, int, double*) public static extern void glGetnUniformdvARB(uint program, int location, int bufSize, double* @params) Parameters program uint location int bufSize int params double* glGetnUniformfvARB(uint, int, int, float*) public static extern void glGetnUniformfvARB(uint program, int location, int bufSize, float* @params) Parameters program uint location int bufSize int params float* glGetnUniformivARB(uint, int, int, int*) public static extern void glGetnUniformivARB(uint program, int location, int bufSize, int* @params) Parameters program uint location int bufSize int params int* glGetnUniformuivARB(uint, int, int, uint*) public static extern void glGetnUniformuivARB(uint program, int location, int bufSize, uint* @params) Parameters program uint location int bufSize int params uint* glGlobalAlphaFactorbSUN(sbyte) public static extern void glGlobalAlphaFactorbSUN(sbyte factor) Parameters factor sbyte glGlobalAlphaFactordSUN(double) public static extern void glGlobalAlphaFactordSUN(double factor) Parameters factor double glGlobalAlphaFactorfSUN(float) public static extern void glGlobalAlphaFactorfSUN(float factor) Parameters factor float glGlobalAlphaFactoriSUN(int) public static extern void glGlobalAlphaFactoriSUN(int factor) Parameters factor int glGlobalAlphaFactorsSUN(short) public static extern void glGlobalAlphaFactorsSUN(short factor) Parameters factor short glGlobalAlphaFactorubSUN(byte) public static extern void glGlobalAlphaFactorubSUN(byte factor) Parameters factor byte glGlobalAlphaFactoruiSUN(uint) public static extern void glGlobalAlphaFactoruiSUN(uint factor) Parameters factor uint glGlobalAlphaFactorusSUN(ushort) public static extern void glGlobalAlphaFactorusSUN(ushort factor) Parameters factor ushort glHint(uint, uint) public static extern void glHint(uint target, uint mode) Parameters target uint mode uint glHintPGI(uint, int) public static extern void glHintPGI(uint target, int mode) Parameters target uint mode int glHistogram(uint, int, uint, bool) public static extern void glHistogram(uint target, int width, uint internalformat, bool sink) Parameters target uint width int internalformat uint sink bool glHistogramEXT(uint, int, uint, bool) public static extern void glHistogramEXT(uint target, int width, uint internalformat, bool sink) Parameters target uint width int internalformat uint sink bool glImageTransformParameterfHP(uint, uint, float) public static extern void glImageTransformParameterfHP(uint target, uint pname, float param) Parameters target uint pname uint param float glImageTransformParameterfvHP(uint, uint, float*) public static extern void glImageTransformParameterfvHP(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glImageTransformParameteriHP(uint, uint, int) public static extern void glImageTransformParameteriHP(uint target, uint pname, int param) Parameters target uint pname uint param int glImageTransformParameterivHP(uint, uint, int*) public static extern void glImageTransformParameterivHP(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glImportSyncEXT(uint, nint, uint) public static extern nint glImportSyncEXT(uint external_sync_type, nint external_sync, uint flags) Parameters external_sync_type uint external_sync nint flags uint Returns nint glIndexFormatNV(uint, int) public static extern void glIndexFormatNV(uint type, int stride) Parameters type uint stride int glIndexFuncEXT(uint, float) public static extern void glIndexFuncEXT(uint func, float @ref) Parameters func uint ref float glIndexMask(uint) public static extern void glIndexMask(uint mask) Parameters mask uint glIndexMaterialEXT(uint, uint) public static extern void glIndexMaterialEXT(uint face, uint mode) Parameters face uint mode uint glIndexPointer(uint, int, nint) public static extern void glIndexPointer(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glIndexPointerEXT(uint, int, int, nint) public static extern void glIndexPointerEXT(uint type, int stride, int count, nint pointer) Parameters type uint stride int count int pointer nint glIndexPointerListIBM(uint, int, nint, int) public static extern void glIndexPointerListIBM(uint type, int stride, nint pointer, int ptrstride) Parameters type uint stride int pointer nint ptrstride int glIndexd(double) public static extern void glIndexd(double c) Parameters c double glIndexdv(double*) public static extern void glIndexdv(double* c) Parameters c double* glIndexf(float) public static extern void glIndexf(float c) Parameters c float glIndexfv(float*) public static extern void glIndexfv(float* c) Parameters c float* glIndexi(int) public static extern void glIndexi(int c) Parameters c int glIndexiv(int*) public static extern void glIndexiv(int* c) Parameters c int* glIndexs(short) public static extern void glIndexs(short c) Parameters c short glIndexsv(short*) public static extern void glIndexsv(short* c) Parameters c short* glIndexub(byte) public static extern void glIndexub(byte c) Parameters c byte glIndexubv(byte*) public static extern void glIndexubv(byte* c) Parameters c byte* glInitNames() public static extern void glInitNames() glInsertComponentEXT(uint, uint, uint) public static extern void glInsertComponentEXT(uint res, uint src, uint num) Parameters res uint src uint num uint glInstrumentsBufferSGIX(int, int*) public static extern void glInstrumentsBufferSGIX(int size, int* buffer) Parameters size int buffer int* glInterleavedArrays(uint, int, nint) public static extern void glInterleavedArrays(uint format, int stride, nint pointer) Parameters format uint stride int pointer nint glIsAsyncMarkerSGIX(uint) public static extern int glIsAsyncMarkerSGIX(uint marker) Parameters marker uint Returns int glIsBuffer(uint) public static extern int glIsBuffer(uint buffer) Parameters buffer uint Returns int glIsBufferARB(uint) public static extern int glIsBufferARB(uint buffer) Parameters buffer uint Returns int glIsBufferResidentNV(uint) public static extern int glIsBufferResidentNV(uint target) Parameters target uint Returns int glIsEnabled(uint) public static extern int glIsEnabled(uint cap) Parameters cap uint Returns int glIsEnabledIndexedEXT(uint, uint) public static extern int glIsEnabledIndexedEXT(uint target, uint index) Parameters target uint index uint Returns int glIsEnabledi(uint, uint) public static extern int glIsEnabledi(uint target, uint index) Parameters target uint index uint Returns int glIsFenceAPPLE(uint) public static extern int glIsFenceAPPLE(uint fence) Parameters fence uint Returns int glIsFenceNV(uint) public static extern int glIsFenceNV(uint fence) Parameters fence uint Returns int glIsFramebuffer(uint) public static extern int glIsFramebuffer(uint framebuffer) Parameters framebuffer uint Returns int glIsFramebufferEXT(uint) public static extern int glIsFramebufferEXT(uint framebuffer) Parameters framebuffer uint Returns int glIsList(uint) public static extern int glIsList(uint list) Parameters list uint Returns int glIsNameAMD(uint, uint) public static extern int glIsNameAMD(uint identifier, uint name) Parameters identifier uint name uint Returns int glIsNamedBufferResidentNV(uint) public static extern int glIsNamedBufferResidentNV(uint buffer) Parameters buffer uint Returns int glIsNamedStringARB(int, string) public static extern int glIsNamedStringARB(int namelen, string name) Parameters namelen int name string Returns int glIsObjectBufferATI(uint) public static extern int glIsObjectBufferATI(uint buffer) Parameters buffer uint Returns int glIsOcclusionQueryNV(uint) public static extern int glIsOcclusionQueryNV(uint id) Parameters id uint Returns int glIsProgram(uint) public static extern int glIsProgram(uint program) Parameters program uint Returns int glIsProgramARB(uint) public static extern int glIsProgramARB(uint program) Parameters program uint Returns int glIsProgramNV(uint) public static extern int glIsProgramNV(uint id) Parameters id uint Returns int glIsProgramPipeline(uint) public static extern int glIsProgramPipeline(uint pipeline) Parameters pipeline uint Returns int glIsQuery(uint) public static extern int glIsQuery(uint id) Parameters id uint Returns int glIsQueryARB(uint) public static extern int glIsQueryARB(uint id) Parameters id uint Returns int glIsRenderbuffer(uint) public static extern int glIsRenderbuffer(uint renderbuffer) Parameters renderbuffer uint Returns int glIsRenderbufferEXT(uint) public static extern int glIsRenderbufferEXT(uint renderbuffer) Parameters renderbuffer uint Returns int glIsSampler(uint) public static extern int glIsSampler(uint sampler) Parameters sampler uint Returns int glIsShader(uint) public static extern int glIsShader(uint shader) Parameters shader uint Returns int glIsSync(nint) public static extern int glIsSync(nint sync) Parameters sync nint Returns int glIsTexture(uint) public static extern int glIsTexture(uint texture) Parameters texture uint Returns int glIsTextureEXT(uint) public static extern int glIsTextureEXT(uint texture) Parameters texture uint Returns int glIsTransformFeedback(uint) public static extern int glIsTransformFeedback(uint id) Parameters id uint Returns int glIsTransformFeedbackNV(uint) public static extern int glIsTransformFeedbackNV(uint id) Parameters id uint Returns int glIsVariantEnabledEXT(uint, uint) public static extern int glIsVariantEnabledEXT(uint id, uint cap) Parameters id uint cap uint Returns int glIsVertexArray(uint) public static extern int glIsVertexArray(uint array) Parameters array uint Returns int glIsVertexArrayAPPLE(uint) public static extern int glIsVertexArrayAPPLE(uint array) Parameters array uint Returns int glIsVertexAttribEnabledAPPLE(uint, uint) public static extern int glIsVertexAttribEnabledAPPLE(uint index, uint pname) Parameters index uint pname uint Returns int glLightEnviSGIX(uint, int) public static extern void glLightEnviSGIX(uint pname, int param) Parameters pname uint param int glLightModelf(uint, float) public static extern void glLightModelf(uint pname, float param) Parameters pname uint param float glLightModelfv(uint, float*) public static extern void glLightModelfv(uint pname, float* @params) Parameters pname uint params float* glLightModeli(uint, int) public static extern void glLightModeli(uint pname, int param) Parameters pname uint param int glLightModeliv(uint, int*) public static extern void glLightModeliv(uint pname, int* @params) Parameters pname uint params int* glLightf(uint, uint, float) public static extern void glLightf(uint light, uint pname, float param) Parameters light uint pname uint param float glLightfv(uint, uint, float*) public static extern void glLightfv(uint light, uint pname, float* @params) Parameters light uint pname uint params float* glLighti(uint, uint, int) public static extern void glLighti(uint light, uint pname, int param) Parameters light uint pname uint param int glLightiv(uint, uint, int*) public static extern void glLightiv(uint light, uint pname, int* @params) Parameters light uint pname uint params int* glLineStipple(int, ushort) public static extern void glLineStipple(int factor, ushort pattern) Parameters factor int pattern ushort glLineWidth(float) public static extern void glLineWidth(float width) Parameters width float glLinkProgram(uint) public static extern void glLinkProgram(uint program) Parameters program uint glLinkProgramARB(uint) public static extern void glLinkProgramARB(uint programObj) Parameters programObj uint glListBase(uint) public static extern void glListBase(uint @base) Parameters base uint glListParameterfSGIX(uint, uint, float) public static extern void glListParameterfSGIX(uint list, uint pname, float param) Parameters list uint pname uint param float glListParameterfvSGIX(uint, uint, float*) public static extern void glListParameterfvSGIX(uint list, uint pname, float* @params) Parameters list uint pname uint params float* glListParameteriSGIX(uint, uint, int) public static extern void glListParameteriSGIX(uint list, uint pname, int param) Parameters list uint pname uint param int glListParameterivSGIX(uint, uint, int*) public static extern void glListParameterivSGIX(uint list, uint pname, int* @params) Parameters list uint pname uint params int* glLoadIdentity() public static extern void glLoadIdentity() glLoadIdentityDeformationMapSGIX(uint) public static extern void glLoadIdentityDeformationMapSGIX(uint mask) Parameters mask uint glLoadMatrixd(double*) public static extern void glLoadMatrixd(double* m) Parameters m double* glLoadMatrixf(float*) public static extern void glLoadMatrixf(float* m) Parameters m float* glLoadName(uint) public static extern void glLoadName(uint name) Parameters name uint glLoadProgramNV(uint, uint, int, byte*) public static extern void glLoadProgramNV(uint target, uint id, int len, byte* program) Parameters target uint id uint len int program byte* glLoadTransposeMatrixd(double*) public static extern void glLoadTransposeMatrixd(double* m) Parameters m double* glLoadTransposeMatrixdARB(double*) public static extern void glLoadTransposeMatrixdARB(double* m) Parameters m double* glLoadTransposeMatrixf(float*) public static extern void glLoadTransposeMatrixf(float* m) Parameters m float* glLoadTransposeMatrixfARB(float*) public static extern void glLoadTransposeMatrixfARB(float* m) Parameters m float* glLockArraysEXT(int, int) public static extern void glLockArraysEXT(int first, int count) Parameters first int count int glLogicOp(uint) public static extern void glLogicOp(uint opcode) Parameters opcode uint glMakeBufferNonResidentNV(uint) public static extern void glMakeBufferNonResidentNV(uint target) Parameters target uint glMakeBufferResidentNV(uint, uint) public static extern void glMakeBufferResidentNV(uint target, uint access) Parameters target uint access uint glMakeNamedBufferNonResidentNV(uint) public static extern void glMakeNamedBufferNonResidentNV(uint buffer) Parameters buffer uint glMakeNamedBufferResidentNV(uint, uint) public static extern void glMakeNamedBufferResidentNV(uint buffer, uint access) Parameters buffer uint access uint glMap1d(uint, double, double, int, int, double*) public static extern void glMap1d(uint target, double u1, double u2, int stride, int order, double* points) Parameters target uint u1 double u2 double stride int order int points double* glMap1f(uint, float, float, int, int, float*) public static extern void glMap1f(uint target, float u1, float u2, int stride, int order, float* points) Parameters target uint u1 float u2 float stride int order int points float* glMap2d(uint, double, double, int, int, double, double, int, int, double*) public static extern void glMap2d(uint target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double* points) Parameters target uint u1 double u2 double ustride int uorder int v1 double v2 double vstride int vorder int points double* glMap2f(uint, float, float, int, int, float, float, int, int, float*) public static extern void glMap2f(uint target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float* points) Parameters target uint u1 float u2 float ustride int uorder int v1 float v2 float vstride int vorder int points float* glMapBuffer(uint, uint) public static extern nint glMapBuffer(uint target, uint access) Parameters target uint access uint Returns nint glMapBufferARB(uint, uint) public static extern nint glMapBufferARB(uint target, uint access) Parameters target uint access uint Returns nint glMapBufferRange(uint, nint, nint, uint) public static extern nint glMapBufferRange(uint target, nint offset, nint length, uint access) Parameters target uint offset nint length nint access uint Returns nint glMapControlPointsNV(uint, uint, uint, int, int, int, int, bool, nint) public static extern void glMapControlPointsNV(uint target, uint index, uint type, int ustride, int vstride, int uorder, int vorder, bool packed, nint points) Parameters target uint index uint type uint ustride int vstride int uorder int vorder int packed bool points nint glMapGrid1d(int, double, double) public static extern void glMapGrid1d(int un, double u1, double u2) Parameters un int u1 double u2 double glMapGrid1f(int, float, float) public static extern void glMapGrid1f(int un, float u1, float u2) Parameters un int u1 float u2 float glMapGrid2d(int, double, double, int, double, double) public static extern void glMapGrid2d(int un, double u1, double u2, int vn, double v1, double v2) Parameters un int u1 double u2 double vn int v1 double v2 double glMapGrid2f(int, float, float, int, float, float) public static extern void glMapGrid2f(int un, float u1, float u2, int vn, float v1, float v2) Parameters un int u1 float u2 float vn int v1 float v2 float glMapNamedBufferEXT(uint, uint) public static extern nint glMapNamedBufferEXT(uint buffer, uint access) Parameters buffer uint access uint Returns nint glMapNamedBufferRangeEXT(uint, nint, nint, uint) public static extern nint glMapNamedBufferRangeEXT(uint buffer, nint offset, nint length, uint access) Parameters buffer uint offset nint length nint access uint Returns nint glMapObjectBufferATI(uint) public static extern nint glMapObjectBufferATI(uint buffer) Parameters buffer uint Returns nint glMapParameterfvNV(uint, uint, float*) public static extern void glMapParameterfvNV(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glMapParameterivNV(uint, uint, int*) public static extern void glMapParameterivNV(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glMapVertexAttrib1dAPPLE(uint, uint, double, double, int, int, double*) public static extern void glMapVertexAttrib1dAPPLE(uint index, uint size, double u1, double u2, int stride, int order, double* points) Parameters index uint size uint u1 double u2 double stride int order int points double* glMapVertexAttrib1fAPPLE(uint, uint, float, float, int, int, float*) public static extern void glMapVertexAttrib1fAPPLE(uint index, uint size, float u1, float u2, int stride, int order, float* points) Parameters index uint size uint u1 float u2 float stride int order int points float* glMapVertexAttrib2dAPPLE(uint, uint, double, double, int, int, double, double, int, int, double*) public static extern void glMapVertexAttrib2dAPPLE(uint index, uint size, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double* points) Parameters index uint size uint u1 double u2 double ustride int uorder int v1 double v2 double vstride int vorder int points double* glMapVertexAttrib2fAPPLE(uint, uint, float, float, int, int, float, float, int, int, float*) public static extern void glMapVertexAttrib2fAPPLE(uint index, uint size, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float* points) Parameters index uint size uint u1 float u2 float ustride int uorder int v1 float v2 float vstride int vorder int points float* glMaterialf(uint, uint, float) public static extern void glMaterialf(uint face, uint pname, float param) Parameters face uint pname uint param float glMaterialfv(uint, uint, float*) public static extern void glMaterialfv(uint face, uint pname, float* @params) Parameters face uint pname uint params float* glMateriali(uint, uint, int) public static extern void glMateriali(uint face, uint pname, int param) Parameters face uint pname uint param int glMaterialiv(uint, uint, int*) public static extern void glMaterialiv(uint face, uint pname, int* @params) Parameters face uint pname uint params int* glMatrixFrustumEXT(uint, double, double, double, double, double, double) public static extern void glMatrixFrustumEXT(uint mode, double left, double right, double bottom, double top, double zNear, double zFar) Parameters mode uint left double right double bottom double top double zNear double zFar double glMatrixIndexPointerARB(int, uint, int, nint) public static extern void glMatrixIndexPointerARB(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glMatrixIndexubvARB(int, byte*) public static extern void glMatrixIndexubvARB(int size, byte* indices) Parameters size int indices byte* glMatrixIndexuivARB(int, uint*) public static extern void glMatrixIndexuivARB(int size, uint* indices) Parameters size int indices uint* glMatrixIndexusvARB(int, ushort*) public static extern void glMatrixIndexusvARB(int size, ushort* indices) Parameters size int indices ushort* glMatrixLoadIdentityEXT(uint) public static extern void glMatrixLoadIdentityEXT(uint mode) Parameters mode uint glMatrixLoadTransposedEXT(uint, double*) public static extern void glMatrixLoadTransposedEXT(uint mode, double* m) Parameters mode uint m double* glMatrixLoadTransposefEXT(uint, float*) public static extern void glMatrixLoadTransposefEXT(uint mode, float* m) Parameters mode uint m float* glMatrixLoaddEXT(uint, double*) public static extern void glMatrixLoaddEXT(uint mode, double* m) Parameters mode uint m double* glMatrixLoadfEXT(uint, float*) public static extern void glMatrixLoadfEXT(uint mode, float* m) Parameters mode uint m float* glMatrixMode(uint) public static extern void glMatrixMode(uint mode) Parameters mode uint glMatrixMultTransposedEXT(uint, double*) public static extern void glMatrixMultTransposedEXT(uint mode, double* m) Parameters mode uint m double* glMatrixMultTransposefEXT(uint, float*) public static extern void glMatrixMultTransposefEXT(uint mode, float* m) Parameters mode uint m float* glMatrixMultdEXT(uint, double*) public static extern void glMatrixMultdEXT(uint mode, double* m) Parameters mode uint m double* glMatrixMultfEXT(uint, float*) public static extern void glMatrixMultfEXT(uint mode, float* m) Parameters mode uint m float* glMatrixOrthoEXT(uint, double, double, double, double, double, double) public static extern void glMatrixOrthoEXT(uint mode, double left, double right, double bottom, double top, double zNear, double zFar) Parameters mode uint left double right double bottom double top double zNear double zFar double glMatrixPopEXT(uint) public static extern void glMatrixPopEXT(uint mode) Parameters mode uint glMatrixPushEXT(uint) public static extern void glMatrixPushEXT(uint mode) Parameters mode uint glMatrixRotatedEXT(uint, double, double, double, double) public static extern void glMatrixRotatedEXT(uint mode, double angle, double x, double y, double z) Parameters mode uint angle double x double y double z double glMatrixRotatefEXT(uint, float, float, float, float) public static extern void glMatrixRotatefEXT(uint mode, float angle, float x, float y, float z) Parameters mode uint angle float x float y float z float glMatrixScaledEXT(uint, double, double, double) public static extern void glMatrixScaledEXT(uint mode, double x, double y, double z) Parameters mode uint x double y double z double glMatrixScalefEXT(uint, float, float, float) public static extern void glMatrixScalefEXT(uint mode, float x, float y, float z) Parameters mode uint x float y float z float glMatrixTranslatedEXT(uint, double, double, double) public static extern void glMatrixTranslatedEXT(uint mode, double x, double y, double z) Parameters mode uint x double y double z double glMatrixTranslatefEXT(uint, float, float, float) public static extern void glMatrixTranslatefEXT(uint mode, float x, float y, float z) Parameters mode uint x float y float z float glMemoryBarrierEXT(uint) public static extern void glMemoryBarrierEXT(uint barriers) Parameters barriers uint glMinSampleShading(float) public static extern void glMinSampleShading(float value) Parameters value float glMinSampleShadingARB(float) public static extern void glMinSampleShadingARB(float value) Parameters value float glMinmax(uint, uint, bool) public static extern void glMinmax(uint target, uint internalformat, bool sink) Parameters target uint internalformat uint sink bool glMinmaxEXT(uint, uint, bool) public static extern void glMinmaxEXT(uint target, uint internalformat, bool sink) Parameters target uint internalformat uint sink bool glMultMatrixd(double*) public static extern void glMultMatrixd(double* m) Parameters m double* glMultMatrixf(float*) public static extern void glMultMatrixf(float* m) Parameters m float* glMultTransposeMatrixd(double*) public static extern void glMultTransposeMatrixd(double* m) Parameters m double* glMultTransposeMatrixdARB(double*) public static extern void glMultTransposeMatrixdARB(double* m) Parameters m double* glMultTransposeMatrixf(float*) public static extern void glMultTransposeMatrixf(float* m) Parameters m float* glMultTransposeMatrixfARB(float*) public static extern void glMultTransposeMatrixfARB(float* m) Parameters m float* glMultiDrawArrays(uint, int*, int*, int) public static extern void glMultiDrawArrays(uint mode, int* first, int* count, int primcount) Parameters mode uint first int* count int* primcount int glMultiDrawArraysEXT(uint, int*, int*, int) public static extern void glMultiDrawArraysEXT(uint mode, int* first, int* count, int primcount) Parameters mode uint first int* count int* primcount int glMultiDrawArraysIndirectAMD(uint, nint, int, int) public static extern void glMultiDrawArraysIndirectAMD(uint mode, nint indirect, int primcount, int stride) Parameters mode uint indirect nint primcount int stride int glMultiDrawElementArrayAPPLE(uint, int*, int*, int) public static extern void glMultiDrawElementArrayAPPLE(uint mode, int* first, int* count, int primcount) Parameters mode uint first int* count int* primcount int glMultiDrawElements(uint, int*, uint, nint, int) public static extern void glMultiDrawElements(uint mode, int* count, uint type, nint indices, int primcount) Parameters mode uint count int* type uint indices nint primcount int glMultiDrawElementsBaseVertex(uint, int*, uint, nint, int, int*) public static extern void glMultiDrawElementsBaseVertex(uint mode, int* count, uint type, nint indices, int primcount, int* basevertex) Parameters mode uint count int* type uint indices nint primcount int basevertex int* glMultiDrawElementsEXT(uint, int*, uint, nint, int) public static extern void glMultiDrawElementsEXT(uint mode, int* count, uint type, nint indices, int primcount) Parameters mode uint count int* type uint indices nint primcount int glMultiDrawElementsIndirectAMD(uint, uint, nint, int, int) public static extern void glMultiDrawElementsIndirectAMD(uint mode, uint type, nint indirect, int primcount, int stride) Parameters mode uint type uint indirect nint primcount int stride int glMultiDrawRangeElementArrayAPPLE(uint, uint, uint, int*, int*, int) public static extern void glMultiDrawRangeElementArrayAPPLE(uint mode, uint start, uint end, int* first, int* count, int primcount) Parameters mode uint start uint end uint first int* count int* primcount int glMultiModeDrawArraysIBM(uint*, int*, int*, int, int) public static extern void glMultiModeDrawArraysIBM(uint* mode, int* first, int* count, int primcount, int modestride) Parameters mode uint* first int* count int* primcount int modestride int glMultiModeDrawElementsIBM(uint*, int*, uint, nint, int, int) public static extern void glMultiModeDrawElementsIBM(uint* mode, int* count, uint type, nint indices, int primcount, int modestride) Parameters mode uint* count int* type uint indices nint primcount int modestride int glMultiTexBufferEXT(uint, uint, uint, uint) public static extern void glMultiTexBufferEXT(uint texunit, uint target, uint internalformat, uint buffer) Parameters texunit uint target uint internalformat uint buffer uint glMultiTexCoord1d(uint, double) public static extern void glMultiTexCoord1d(uint target, double s) Parameters target uint s double glMultiTexCoord1dARB(uint, double) public static extern void glMultiTexCoord1dARB(uint target, double s) Parameters target uint s double glMultiTexCoord1dv(uint, double*) public static extern void glMultiTexCoord1dv(uint target, double* v) Parameters target uint v double* glMultiTexCoord1dvARB(uint, double*) public static extern void glMultiTexCoord1dvARB(uint target, double* v) Parameters target uint v double* glMultiTexCoord1f(uint, float) public static extern void glMultiTexCoord1f(uint target, float s) Parameters target uint s float glMultiTexCoord1fARB(uint, float) public static extern void glMultiTexCoord1fARB(uint target, float s) Parameters target uint s float glMultiTexCoord1fv(uint, float*) public static extern void glMultiTexCoord1fv(uint target, float* v) Parameters target uint v float* glMultiTexCoord1fvARB(uint, float*) public static extern void glMultiTexCoord1fvARB(uint target, float* v) Parameters target uint v float* glMultiTexCoord1hNV(uint, ushort) public static extern void glMultiTexCoord1hNV(uint target, ushort s) Parameters target uint s ushort glMultiTexCoord1hvNV(uint, ushort*) public static extern void glMultiTexCoord1hvNV(uint target, ushort* v) Parameters target uint v ushort* glMultiTexCoord1i(uint, int) public static extern void glMultiTexCoord1i(uint target, int s) Parameters target uint s int glMultiTexCoord1iARB(uint, int) public static extern void glMultiTexCoord1iARB(uint target, int s) Parameters target uint s int glMultiTexCoord1iv(uint, int*) public static extern void glMultiTexCoord1iv(uint target, int* v) Parameters target uint v int* glMultiTexCoord1ivARB(uint, int*) public static extern void glMultiTexCoord1ivARB(uint target, int* v) Parameters target uint v int* glMultiTexCoord1s(uint, short) public static extern void glMultiTexCoord1s(uint target, short s) Parameters target uint s short glMultiTexCoord1sARB(uint, short) public static extern void glMultiTexCoord1sARB(uint target, short s) Parameters target uint s short glMultiTexCoord1sv(uint, short*) public static extern void glMultiTexCoord1sv(uint target, short* v) Parameters target uint v short* glMultiTexCoord1svARB(uint, short*) public static extern void glMultiTexCoord1svARB(uint target, short* v) Parameters target uint v short* glMultiTexCoord2d(uint, double, double) public static extern void glMultiTexCoord2d(uint target, double s, double t) Parameters target uint s double t double glMultiTexCoord2dARB(uint, double, double) public static extern void glMultiTexCoord2dARB(uint target, double s, double t) Parameters target uint s double t double glMultiTexCoord2dv(uint, double*) public static extern void glMultiTexCoord2dv(uint target, double* v) Parameters target uint v double* glMultiTexCoord2dvARB(uint, double*) public static extern void glMultiTexCoord2dvARB(uint target, double* v) Parameters target uint v double* glMultiTexCoord2f(uint, float, float) public static extern void glMultiTexCoord2f(uint target, float s, float t) Parameters target uint s float t float glMultiTexCoord2fARB(uint, float, float) public static extern void glMultiTexCoord2fARB(uint target, float s, float t) Parameters target uint s float t float glMultiTexCoord2fv(uint, float*) public static extern void glMultiTexCoord2fv(uint target, float* v) Parameters target uint v float* glMultiTexCoord2fvARB(uint, float*) public static extern void glMultiTexCoord2fvARB(uint target, float* v) Parameters target uint v float* glMultiTexCoord2hNV(uint, ushort, ushort) public static extern void glMultiTexCoord2hNV(uint target, ushort s, ushort t) Parameters target uint s ushort t ushort glMultiTexCoord2hvNV(uint, ushort*) public static extern void glMultiTexCoord2hvNV(uint target, ushort* v) Parameters target uint v ushort* glMultiTexCoord2i(uint, int, int) public static extern void glMultiTexCoord2i(uint target, int s, int t) Parameters target uint s int t int glMultiTexCoord2iARB(uint, int, int) public static extern void glMultiTexCoord2iARB(uint target, int s, int t) Parameters target uint s int t int glMultiTexCoord2iv(uint, int*) public static extern void glMultiTexCoord2iv(uint target, int* v) Parameters target uint v int* glMultiTexCoord2ivARB(uint, int*) public static extern void glMultiTexCoord2ivARB(uint target, int* v) Parameters target uint v int* glMultiTexCoord2s(uint, short, short) public static extern void glMultiTexCoord2s(uint target, short s, short t) Parameters target uint s short t short glMultiTexCoord2sARB(uint, short, short) public static extern void glMultiTexCoord2sARB(uint target, short s, short t) Parameters target uint s short t short glMultiTexCoord2sv(uint, short*) public static extern void glMultiTexCoord2sv(uint target, short* v) Parameters target uint v short* glMultiTexCoord2svARB(uint, short*) public static extern void glMultiTexCoord2svARB(uint target, short* v) Parameters target uint v short* glMultiTexCoord3d(uint, double, double, double) public static extern void glMultiTexCoord3d(uint target, double s, double t, double r) Parameters target uint s double t double r double glMultiTexCoord3dARB(uint, double, double, double) public static extern void glMultiTexCoord3dARB(uint target, double s, double t, double r) Parameters target uint s double t double r double glMultiTexCoord3dv(uint, double*) public static extern void glMultiTexCoord3dv(uint target, double* v) Parameters target uint v double* glMultiTexCoord3dvARB(uint, double*) public static extern void glMultiTexCoord3dvARB(uint target, double* v) Parameters target uint v double* glMultiTexCoord3f(uint, float, float, float) public static extern void glMultiTexCoord3f(uint target, float s, float t, float r) Parameters target uint s float t float r float glMultiTexCoord3fARB(uint, float, float, float) public static extern void glMultiTexCoord3fARB(uint target, float s, float t, float r) Parameters target uint s float t float r float glMultiTexCoord3fv(uint, float*) public static extern void glMultiTexCoord3fv(uint target, float* v) Parameters target uint v float* glMultiTexCoord3fvARB(uint, float*) public static extern void glMultiTexCoord3fvARB(uint target, float* v) Parameters target uint v float* glMultiTexCoord3hNV(uint, ushort, ushort, ushort) public static extern void glMultiTexCoord3hNV(uint target, ushort s, ushort t, ushort r) Parameters target uint s ushort t ushort r ushort glMultiTexCoord3hvNV(uint, ushort*) public static extern void glMultiTexCoord3hvNV(uint target, ushort* v) Parameters target uint v ushort* glMultiTexCoord3i(uint, int, int, int) public static extern void glMultiTexCoord3i(uint target, int s, int t, int r) Parameters target uint s int t int r int glMultiTexCoord3iARB(uint, int, int, int) public static extern void glMultiTexCoord3iARB(uint target, int s, int t, int r) Parameters target uint s int t int r int glMultiTexCoord3iv(uint, int*) public static extern void glMultiTexCoord3iv(uint target, int* v) Parameters target uint v int* glMultiTexCoord3ivARB(uint, int*) public static extern void glMultiTexCoord3ivARB(uint target, int* v) Parameters target uint v int* glMultiTexCoord3s(uint, short, short, short) public static extern void glMultiTexCoord3s(uint target, short s, short t, short r) Parameters target uint s short t short r short glMultiTexCoord3sARB(uint, short, short, short) public static extern void glMultiTexCoord3sARB(uint target, short s, short t, short r) Parameters target uint s short t short r short glMultiTexCoord3sv(uint, short*) public static extern void glMultiTexCoord3sv(uint target, short* v) Parameters target uint v short* glMultiTexCoord3svARB(uint, short*) public static extern void glMultiTexCoord3svARB(uint target, short* v) Parameters target uint v short* glMultiTexCoord4d(uint, double, double, double, double) public static extern void glMultiTexCoord4d(uint target, double s, double t, double r, double q) Parameters target uint s double t double r double q double glMultiTexCoord4dARB(uint, double, double, double, double) public static extern void glMultiTexCoord4dARB(uint target, double s, double t, double r, double q) Parameters target uint s double t double r double q double glMultiTexCoord4dv(uint, double*) public static extern void glMultiTexCoord4dv(uint target, double* v) Parameters target uint v double* glMultiTexCoord4dvARB(uint, double*) public static extern void glMultiTexCoord4dvARB(uint target, double* v) Parameters target uint v double* glMultiTexCoord4f(uint, float, float, float, float) public static extern void glMultiTexCoord4f(uint target, float s, float t, float r, float q) Parameters target uint s float t float r float q float glMultiTexCoord4fARB(uint, float, float, float, float) public static extern void glMultiTexCoord4fARB(uint target, float s, float t, float r, float q) Parameters target uint s float t float r float q float glMultiTexCoord4fv(uint, float*) public static extern void glMultiTexCoord4fv(uint target, float* v) Parameters target uint v float* glMultiTexCoord4fvARB(uint, float*) public static extern void glMultiTexCoord4fvARB(uint target, float* v) Parameters target uint v float* glMultiTexCoord4hNV(uint, ushort, ushort, ushort, ushort) public static extern void glMultiTexCoord4hNV(uint target, ushort s, ushort t, ushort r, ushort q) Parameters target uint s ushort t ushort r ushort q ushort glMultiTexCoord4hvNV(uint, ushort*) public static extern void glMultiTexCoord4hvNV(uint target, ushort* v) Parameters target uint v ushort* glMultiTexCoord4i(uint, int, int, int, int) public static extern void glMultiTexCoord4i(uint target, int s, int t, int r, int q) Parameters target uint s int t int r int q int glMultiTexCoord4iARB(uint, int, int, int, int) public static extern void glMultiTexCoord4iARB(uint target, int s, int t, int r, int q) Parameters target uint s int t int r int q int glMultiTexCoord4iv(uint, int*) public static extern void glMultiTexCoord4iv(uint target, int* v) Parameters target uint v int* glMultiTexCoord4ivARB(uint, int*) public static extern void glMultiTexCoord4ivARB(uint target, int* v) Parameters target uint v int* glMultiTexCoord4s(uint, short, short, short, short) public static extern void glMultiTexCoord4s(uint target, short s, short t, short r, short q) Parameters target uint s short t short r short q short glMultiTexCoord4sARB(uint, short, short, short, short) public static extern void glMultiTexCoord4sARB(uint target, short s, short t, short r, short q) Parameters target uint s short t short r short q short glMultiTexCoord4sv(uint, short*) public static extern void glMultiTexCoord4sv(uint target, short* v) Parameters target uint v short* glMultiTexCoord4svARB(uint, short*) public static extern void glMultiTexCoord4svARB(uint target, short* v) Parameters target uint v short* glMultiTexCoordP1ui(uint, uint, uint) public static extern void glMultiTexCoordP1ui(uint texture, uint type, uint coords) Parameters texture uint type uint coords uint glMultiTexCoordP1uiv(uint, uint, uint*) public static extern void glMultiTexCoordP1uiv(uint texture, uint type, uint* coords) Parameters texture uint type uint coords uint* glMultiTexCoordP2ui(uint, uint, uint) public static extern void glMultiTexCoordP2ui(uint texture, uint type, uint coords) Parameters texture uint type uint coords uint glMultiTexCoordP2uiv(uint, uint, uint*) public static extern void glMultiTexCoordP2uiv(uint texture, uint type, uint* coords) Parameters texture uint type uint coords uint* glMultiTexCoordP3ui(uint, uint, uint) public static extern void glMultiTexCoordP3ui(uint texture, uint type, uint coords) Parameters texture uint type uint coords uint glMultiTexCoordP3uiv(uint, uint, uint*) public static extern void glMultiTexCoordP3uiv(uint texture, uint type, uint* coords) Parameters texture uint type uint coords uint* glMultiTexCoordP4ui(uint, uint, uint) public static extern void glMultiTexCoordP4ui(uint texture, uint type, uint coords) Parameters texture uint type uint coords uint glMultiTexCoordP4uiv(uint, uint, uint*) public static extern void glMultiTexCoordP4uiv(uint texture, uint type, uint* coords) Parameters texture uint type uint coords uint* glMultiTexCoordPointerEXT(uint, int, uint, int, nint) public static extern void glMultiTexCoordPointerEXT(uint texunit, int size, uint type, int stride, nint pointer) Parameters texunit uint size int type uint stride int pointer nint glMultiTexEnvfEXT(uint, uint, uint, float) public static extern void glMultiTexEnvfEXT(uint texunit, uint target, uint pname, float param) Parameters texunit uint target uint pname uint param float glMultiTexEnvfvEXT(uint, uint, uint, float*) public static extern void glMultiTexEnvfvEXT(uint texunit, uint target, uint pname, float* @params) Parameters texunit uint target uint pname uint params float* glMultiTexEnviEXT(uint, uint, uint, int) public static extern void glMultiTexEnviEXT(uint texunit, uint target, uint pname, int param) Parameters texunit uint target uint pname uint param int glMultiTexEnvivEXT(uint, uint, uint, int*) public static extern void glMultiTexEnvivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glMultiTexGendEXT(uint, uint, uint, double) public static extern void glMultiTexGendEXT(uint texunit, uint coord, uint pname, double param) Parameters texunit uint coord uint pname uint param double glMultiTexGendvEXT(uint, uint, uint, double*) public static extern void glMultiTexGendvEXT(uint texunit, uint coord, uint pname, double* @params) Parameters texunit uint coord uint pname uint params double* glMultiTexGenfEXT(uint, uint, uint, float) public static extern void glMultiTexGenfEXT(uint texunit, uint coord, uint pname, float param) Parameters texunit uint coord uint pname uint param float glMultiTexGenfvEXT(uint, uint, uint, float*) public static extern void glMultiTexGenfvEXT(uint texunit, uint coord, uint pname, float* @params) Parameters texunit uint coord uint pname uint params float* glMultiTexGeniEXT(uint, uint, uint, int) public static extern void glMultiTexGeniEXT(uint texunit, uint coord, uint pname, int param) Parameters texunit uint coord uint pname uint param int glMultiTexGenivEXT(uint, uint, uint, int*) public static extern void glMultiTexGenivEXT(uint texunit, uint coord, uint pname, int* @params) Parameters texunit uint coord uint pname uint params int* glMultiTexImage1DEXT(uint, uint, int, uint, int, int, uint, uint, nint) public static extern void glMultiTexImage1DEXT(uint texunit, uint target, int level, uint internalformat, int width, int border, uint format, uint type, nint pixels) Parameters texunit uint target uint level int internalformat uint width int border int format uint type uint pixels nint glMultiTexImage2DEXT(uint, uint, int, uint, int, int, int, uint, uint, nint) public static extern void glMultiTexImage2DEXT(uint texunit, uint target, int level, uint internalformat, int width, int height, int border, uint format, uint type, nint pixels) Parameters texunit uint target uint level int internalformat uint width int height int border int format uint type uint pixels nint glMultiTexImage3DEXT(uint, uint, int, uint, int, int, int, int, uint, uint, nint) public static extern void glMultiTexImage3DEXT(uint texunit, uint target, int level, uint internalformat, int width, int height, int depth, int border, uint format, uint type, nint pixels) Parameters texunit uint target uint level int internalformat uint width int height int depth int border int format uint type uint pixels nint glMultiTexParameterIivEXT(uint, uint, uint, int*) public static extern void glMultiTexParameterIivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glMultiTexParameterIuivEXT(uint, uint, uint, uint*) public static extern void glMultiTexParameterIuivEXT(uint texunit, uint target, uint pname, uint* @params) Parameters texunit uint target uint pname uint params uint* glMultiTexParameterfEXT(uint, uint, uint, float) public static extern void glMultiTexParameterfEXT(uint texunit, uint target, uint pname, float param) Parameters texunit uint target uint pname uint param float glMultiTexParameterfvEXT(uint, uint, uint, float*) public static extern void glMultiTexParameterfvEXT(uint texunit, uint target, uint pname, float* @params) Parameters texunit uint target uint pname uint params float* glMultiTexParameteriEXT(uint, uint, uint, int) public static extern void glMultiTexParameteriEXT(uint texunit, uint target, uint pname, int param) Parameters texunit uint target uint pname uint param int glMultiTexParameterivEXT(uint, uint, uint, int*) public static extern void glMultiTexParameterivEXT(uint texunit, uint target, uint pname, int* @params) Parameters texunit uint target uint pname uint params int* glMultiTexRenderbufferEXT(uint, uint, uint) public static extern void glMultiTexRenderbufferEXT(uint texunit, uint target, uint renderbuffer) Parameters texunit uint target uint renderbuffer uint glMultiTexSubImage1DEXT(uint, uint, int, int, int, uint, uint, nint) public static extern void glMultiTexSubImage1DEXT(uint texunit, uint target, int level, int xoffset, int width, uint format, uint type, nint pixels) Parameters texunit uint target uint level int xoffset int width int format uint type uint pixels nint glMultiTexSubImage2DEXT(uint, uint, int, int, int, int, int, uint, uint, nint) public static extern void glMultiTexSubImage2DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, nint pixels) Parameters texunit uint target uint level int xoffset int yoffset int width int height int format uint type uint pixels nint glMultiTexSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, uint, uint, nint) public static extern void glMultiTexSubImage3DEXT(uint texunit, uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, nint pixels) Parameters texunit uint target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint type uint pixels nint glNamedBufferDataEXT(uint, nint, nint, uint) public static extern void glNamedBufferDataEXT(uint buffer, nint size, nint data, uint usage) Parameters buffer uint size nint data nint usage uint glNamedBufferSubDataEXT(uint, nint, nint, nint) public static extern void glNamedBufferSubDataEXT(uint buffer, nint offset, nint size, nint data) Parameters buffer uint offset nint size nint data nint glNamedCopyBufferSubDataEXT(uint, uint, nint, nint, nint) public static extern void glNamedCopyBufferSubDataEXT(uint readBuffer, uint writeBuffer, nint readOffset, nint writeOffset, nint size) Parameters readBuffer uint writeBuffer uint readOffset nint writeOffset nint size nint glNamedFramebufferRenderbufferEXT(uint, uint, uint, uint) public static extern void glNamedFramebufferRenderbufferEXT(uint framebuffer, uint attachment, uint renderbuffertarget, uint renderbuffer) Parameters framebuffer uint attachment uint renderbuffertarget uint renderbuffer uint glNamedFramebufferTexture1DEXT(uint, uint, uint, uint, int) public static extern void glNamedFramebufferTexture1DEXT(uint framebuffer, uint attachment, uint textarget, uint texture, int level) Parameters framebuffer uint attachment uint textarget uint texture uint level int glNamedFramebufferTexture2DEXT(uint, uint, uint, uint, int) public static extern void glNamedFramebufferTexture2DEXT(uint framebuffer, uint attachment, uint textarget, uint texture, int level) Parameters framebuffer uint attachment uint textarget uint texture uint level int glNamedFramebufferTexture3DEXT(uint, uint, uint, uint, int, int) public static extern void glNamedFramebufferTexture3DEXT(uint framebuffer, uint attachment, uint textarget, uint texture, int level, int zoffset) Parameters framebuffer uint attachment uint textarget uint texture uint level int zoffset int glNamedFramebufferTextureEXT(uint, uint, uint, int) public static extern void glNamedFramebufferTextureEXT(uint framebuffer, uint attachment, uint texture, int level) Parameters framebuffer uint attachment uint texture uint level int glNamedFramebufferTextureFaceEXT(uint, uint, uint, int, uint) public static extern void glNamedFramebufferTextureFaceEXT(uint framebuffer, uint attachment, uint texture, int level, uint face) Parameters framebuffer uint attachment uint texture uint level int face uint glNamedFramebufferTextureLayerEXT(uint, uint, uint, int, int) public static extern void glNamedFramebufferTextureLayerEXT(uint framebuffer, uint attachment, uint texture, int level, int layer) Parameters framebuffer uint attachment uint texture uint level int layer int glNamedProgramLocalParameter4dEXT(uint, uint, uint, double, double, double, double) public static extern void glNamedProgramLocalParameter4dEXT(uint program, uint target, uint index, double x, double y, double z, double w) Parameters program uint target uint index uint x double y double z double w double glNamedProgramLocalParameter4dvEXT(uint, uint, uint, double*) public static extern void glNamedProgramLocalParameter4dvEXT(uint program, uint target, uint index, double* @params) Parameters program uint target uint index uint params double* glNamedProgramLocalParameter4fEXT(uint, uint, uint, float, float, float, float) public static extern void glNamedProgramLocalParameter4fEXT(uint program, uint target, uint index, float x, float y, float z, float w) Parameters program uint target uint index uint x float y float z float w float glNamedProgramLocalParameter4fvEXT(uint, uint, uint, float*) public static extern void glNamedProgramLocalParameter4fvEXT(uint program, uint target, uint index, float* @params) Parameters program uint target uint index uint params float* glNamedProgramLocalParameterI4iEXT(uint, uint, uint, int, int, int, int) public static extern void glNamedProgramLocalParameterI4iEXT(uint program, uint target, uint index, int x, int y, int z, int w) Parameters program uint target uint index uint x int y int z int w int glNamedProgramLocalParameterI4ivEXT(uint, uint, uint, int*) public static extern void glNamedProgramLocalParameterI4ivEXT(uint program, uint target, uint index, int* @params) Parameters program uint target uint index uint params int* glNamedProgramLocalParameterI4uiEXT(uint, uint, uint, uint, uint, uint, uint) public static extern void glNamedProgramLocalParameterI4uiEXT(uint program, uint target, uint index, uint x, uint y, uint z, uint w) Parameters program uint target uint index uint x uint y uint z uint w uint glNamedProgramLocalParameterI4uivEXT(uint, uint, uint, uint*) public static extern void glNamedProgramLocalParameterI4uivEXT(uint program, uint target, uint index, uint* @params) Parameters program uint target uint index uint params uint* glNamedProgramLocalParameters4fvEXT(uint, uint, uint, int, float*) public static extern void glNamedProgramLocalParameters4fvEXT(uint program, uint target, uint index, int count, float* @params) Parameters program uint target uint index uint count int params float* glNamedProgramLocalParametersI4ivEXT(uint, uint, uint, int, int*) public static extern void glNamedProgramLocalParametersI4ivEXT(uint program, uint target, uint index, int count, int* @params) Parameters program uint target uint index uint count int params int* glNamedProgramLocalParametersI4uivEXT(uint, uint, uint, int, uint*) public static extern void glNamedProgramLocalParametersI4uivEXT(uint program, uint target, uint index, int count, uint* @params) Parameters program uint target uint index uint count int params uint* glNamedProgramStringEXT(uint, uint, uint, int, nint) public static extern void glNamedProgramStringEXT(uint program, uint target, uint format, int len, nint @string) Parameters program uint target uint format uint len int string nint glNamedRenderbufferStorageEXT(uint, uint, int, int) public static extern void glNamedRenderbufferStorageEXT(uint renderbuffer, uint internalformat, int width, int height) Parameters renderbuffer uint internalformat uint width int height int glNamedRenderbufferStorageMultisampleCoverageEXT(uint, int, int, uint, int, int) public static extern void glNamedRenderbufferStorageMultisampleCoverageEXT(uint renderbuffer, int coverageSamples, int colorSamples, uint internalformat, int width, int height) Parameters renderbuffer uint coverageSamples int colorSamples int internalformat uint width int height int glNamedRenderbufferStorageMultisampleEXT(uint, int, uint, int, int) public static extern void glNamedRenderbufferStorageMultisampleEXT(uint renderbuffer, int samples, uint internalformat, int width, int height) Parameters renderbuffer uint samples int internalformat uint width int height int glNamedStringARB(uint, int, string, int, string) public static extern void glNamedStringARB(uint type, int namelen, string name, int stringlen, string @string) Parameters type uint namelen int name string stringlen int string string glNewList(uint, uint) public static extern void glNewList(uint list, uint mode) Parameters list uint mode uint glNewObjectBufferATI(int, nint, uint) public static extern int glNewObjectBufferATI(int size, nint pointer, uint usage) Parameters size int pointer nint usage uint Returns int glNormal3b(sbyte, sbyte, sbyte) public static extern void glNormal3b(sbyte nx, sbyte ny, sbyte nz) Parameters nx sbyte ny sbyte nz sbyte glNormal3bv(sbyte*) public static extern void glNormal3bv(sbyte* v) Parameters v sbyte* glNormal3d(double, double, double) public static extern void glNormal3d(double nx, double ny, double nz) Parameters nx double ny double nz double glNormal3dv(double*) public static extern void glNormal3dv(double* v) Parameters v double* glNormal3f(float, float, float) public static extern void glNormal3f(float nx, float ny, float nz) Parameters nx float ny float nz float glNormal3fVertex3fSUN(float, float, float, float, float, float) public static extern void glNormal3fVertex3fSUN(float nx, float ny, float nz, float x, float y, float z) Parameters nx float ny float nz float x float y float z float glNormal3fVertex3fvSUN(float*, float*) public static extern void glNormal3fVertex3fvSUN(float* n, float* v) Parameters n float* v float* glNormal3fv(float*) public static extern void glNormal3fv(float* v) Parameters v float* glNormal3hNV(ushort, ushort, ushort) public static extern void glNormal3hNV(ushort nx, ushort ny, ushort nz) Parameters nx ushort ny ushort nz ushort glNormal3hvNV(ushort*) public static extern void glNormal3hvNV(ushort* v) Parameters v ushort* glNormal3i(int, int, int) public static extern void glNormal3i(int nx, int ny, int nz) Parameters nx int ny int nz int glNormal3iv(int*) public static extern void glNormal3iv(int* v) Parameters v int* glNormal3s(short, short, short) public static extern void glNormal3s(short nx, short ny, short nz) Parameters nx short ny short nz short glNormal3sv(short*) public static extern void glNormal3sv(short* v) Parameters v short* glNormalFormatNV(uint, int) public static extern void glNormalFormatNV(uint type, int stride) Parameters type uint stride int glNormalP3ui(uint, uint) public static extern void glNormalP3ui(uint type, uint coords) Parameters type uint coords uint glNormalP3uiv(uint, uint*) public static extern void glNormalP3uiv(uint type, uint* coords) Parameters type uint coords uint* glNormalPointer(uint, int, nint) public static extern void glNormalPointer(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glNormalPointerEXT(uint, int, int, nint) public static extern void glNormalPointerEXT(uint type, int stride, int count, nint pointer) Parameters type uint stride int count int pointer nint glNormalPointerListIBM(uint, int, nint, int) public static extern void glNormalPointerListIBM(uint type, int stride, nint pointer, int ptrstride) Parameters type uint stride int pointer nint ptrstride int glNormalPointervINTEL(uint, nint) public static extern void glNormalPointervINTEL(uint type, nint pointer) Parameters type uint pointer nint glNormalStream3bATI(uint, sbyte, sbyte, sbyte) public static extern void glNormalStream3bATI(uint stream, sbyte nx, sbyte ny, sbyte nz) Parameters stream uint nx sbyte ny sbyte nz sbyte glNormalStream3bvATI(uint, sbyte*) public static extern void glNormalStream3bvATI(uint stream, sbyte* coords) Parameters stream uint coords sbyte* glNormalStream3dATI(uint, double, double, double) public static extern void glNormalStream3dATI(uint stream, double nx, double ny, double nz) Parameters stream uint nx double ny double nz double glNormalStream3dvATI(uint, double*) public static extern void glNormalStream3dvATI(uint stream, double* coords) Parameters stream uint coords double* glNormalStream3fATI(uint, float, float, float) public static extern void glNormalStream3fATI(uint stream, float nx, float ny, float nz) Parameters stream uint nx float ny float nz float glNormalStream3fvATI(uint, float*) public static extern void glNormalStream3fvATI(uint stream, float* coords) Parameters stream uint coords float* glNormalStream3iATI(uint, int, int, int) public static extern void glNormalStream3iATI(uint stream, int nx, int ny, int nz) Parameters stream uint nx int ny int nz int glNormalStream3ivATI(uint, int*) public static extern void glNormalStream3ivATI(uint stream, int* coords) Parameters stream uint coords int* glNormalStream3sATI(uint, short, short, short) public static extern void glNormalStream3sATI(uint stream, short nx, short ny, short nz) Parameters stream uint nx short ny short nz short glNormalStream3svATI(uint, short*) public static extern void glNormalStream3svATI(uint stream, short* coords) Parameters stream uint coords short* glObjectPurgeableAPPLE(uint, uint, uint) public static extern uint glObjectPurgeableAPPLE(uint objectType, uint name, uint option) Parameters objectType uint name uint option uint Returns uint glObjectUnpurgeableAPPLE(uint, uint, uint) public static extern uint glObjectUnpurgeableAPPLE(uint objectType, uint name, uint option) Parameters objectType uint name uint option uint Returns uint glOrtho(double, double, double, double, double, double) public static extern void glOrtho(double left, double right, double bottom, double top, double zNear, double zFar) Parameters left double right double bottom double top double zNear double zFar double glPassTexCoordATI(uint, uint, uint) public static extern void glPassTexCoordATI(uint dst, uint coord, uint swizzle) Parameters dst uint coord uint swizzle uint glPassThrough(float) public static extern void glPassThrough(float token) Parameters token float glPatchParameterfv(uint, float*) public static extern void glPatchParameterfv(uint pname, float* values) Parameters pname uint values float* glPatchParameteri(uint, int) public static extern void glPatchParameteri(uint pname, int value) Parameters pname uint value int glPauseTransformFeedback() public static extern void glPauseTransformFeedback() glPauseTransformFeedbackNV() public static extern void glPauseTransformFeedbackNV() glPixelDataRangeNV(uint, int, nint) public static extern void glPixelDataRangeNV(uint target, int length, nint pointer) Parameters target uint length int pointer nint glPixelMapfv(uint, int, float*) public static extern void glPixelMapfv(uint map, int mapsize, float* values) Parameters map uint mapsize int values float* glPixelMapuiv(uint, int, uint*) public static extern void glPixelMapuiv(uint map, int mapsize, uint* values) Parameters map uint mapsize int values uint* glPixelMapusv(uint, int, ushort*) public static extern void glPixelMapusv(uint map, int mapsize, ushort* values) Parameters map uint mapsize int values ushort* glPixelStoref(uint, float) public static extern void glPixelStoref(uint pname, float param) Parameters pname uint param float glPixelStorei(uint, int) public static extern void glPixelStorei(uint pname, int param) Parameters pname uint param int glPixelTexGenParameterfSGIS(uint, float) public static extern void glPixelTexGenParameterfSGIS(uint pname, float param) Parameters pname uint param float glPixelTexGenParameterfvSGIS(uint, float*) public static extern void glPixelTexGenParameterfvSGIS(uint pname, float* @params) Parameters pname uint params float* glPixelTexGenParameteriSGIS(uint, int) public static extern void glPixelTexGenParameteriSGIS(uint pname, int param) Parameters pname uint param int glPixelTexGenParameterivSGIS(uint, int*) public static extern void glPixelTexGenParameterivSGIS(uint pname, int* @params) Parameters pname uint params int* glPixelTexGenSGIX(uint) public static extern void glPixelTexGenSGIX(uint mode) Parameters mode uint glPixelTransferf(uint, float) public static extern void glPixelTransferf(uint pname, float param) Parameters pname uint param float glPixelTransferi(uint, int) public static extern void glPixelTransferi(uint pname, int param) Parameters pname uint param int glPixelTransformParameterfEXT(uint, uint, float) public static extern void glPixelTransformParameterfEXT(uint target, uint pname, float param) Parameters target uint pname uint param float glPixelTransformParameterfvEXT(uint, uint, float*) public static extern void glPixelTransformParameterfvEXT(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glPixelTransformParameteriEXT(uint, uint, int) public static extern void glPixelTransformParameteriEXT(uint target, uint pname, int param) Parameters target uint pname uint param int glPixelTransformParameterivEXT(uint, uint, int*) public static extern void glPixelTransformParameterivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glPixelZoom(float, float) public static extern void glPixelZoom(float xfactor, float yfactor) Parameters xfactor float yfactor float glPointParameterf(uint, float) public static extern void glPointParameterf(uint pname, float param) Parameters pname uint param float glPointParameterfARB(uint, float) public static extern void glPointParameterfARB(uint pname, float param) Parameters pname uint param float glPointParameterfEXT(uint, float) public static extern void glPointParameterfEXT(uint pname, float param) Parameters pname uint param float glPointParameterfSGIS(uint, float) public static extern void glPointParameterfSGIS(uint pname, float param) Parameters pname uint param float glPointParameterfv(uint, float*) public static extern void glPointParameterfv(uint pname, float* @params) Parameters pname uint params float* glPointParameterfvARB(uint, float*) public static extern void glPointParameterfvARB(uint pname, float* @params) Parameters pname uint params float* glPointParameterfvEXT(uint, float*) public static extern void glPointParameterfvEXT(uint pname, float* @params) Parameters pname uint params float* glPointParameterfvSGIS(uint, float*) public static extern void glPointParameterfvSGIS(uint pname, float* @params) Parameters pname uint params float* glPointParameteri(uint, int) public static extern void glPointParameteri(uint pname, int param) Parameters pname uint param int glPointParameteriNV(uint, int) public static extern void glPointParameteriNV(uint pname, int param) Parameters pname uint param int glPointParameteriv(uint, int*) public static extern void glPointParameteriv(uint pname, int* @params) Parameters pname uint params int* glPointParameterivNV(uint, int*) public static extern void glPointParameterivNV(uint pname, int* @params) Parameters pname uint params int* glPointSize(float) public static extern void glPointSize(float size) Parameters size float glPollAsyncSGIX(uint*) public static extern int glPollAsyncSGIX(uint* markerp) Parameters markerp uint* Returns int glPollInstrumentsSGIX(int*) public static extern int glPollInstrumentsSGIX(int* marker_p) Parameters marker_p int* Returns int glPolygonMode(uint, uint) public static extern void glPolygonMode(uint face, uint mode) Parameters face uint mode uint glPolygonOffset(float, float) public static extern void glPolygonOffset(float factor, float units) Parameters factor float units float glPolygonOffsetEXT(float, float) public static extern void glPolygonOffsetEXT(float factor, float bias) Parameters factor float bias float glPolygonStipple(byte*) public static extern void glPolygonStipple(byte* mask) Parameters mask byte* glPopAttrib() public static extern void glPopAttrib() glPopClientAttrib() public static extern void glPopClientAttrib() glPopMatrix() public static extern void glPopMatrix() glPopName() public static extern void glPopName() glPresentFrameDualFillNV(uint, ulong, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glPresentFrameDualFillNV(uint video_slot, ulong minPresentTime, uint beginPresentTimeId, uint presentDurationId, uint type, uint target0, uint fill0, uint target1, uint fill1, uint target2, uint fill2, uint target3, uint fill3) Parameters video_slot uint minPresentTime ulong beginPresentTimeId uint presentDurationId uint type uint target0 uint fill0 uint target1 uint fill1 uint target2 uint fill2 uint target3 uint fill3 uint glPresentFrameKeyedNV(uint, ulong, uint, uint, uint, uint, uint, uint, uint, uint, uint) public static extern void glPresentFrameKeyedNV(uint video_slot, ulong minPresentTime, uint beginPresentTimeId, uint presentDurationId, uint type, uint target0, uint fill0, uint key0, uint target1, uint fill1, uint key1) Parameters video_slot uint minPresentTime ulong beginPresentTimeId uint presentDurationId uint type uint target0 uint fill0 uint key0 uint target1 uint fill1 uint key1 uint glPrimitiveRestartIndex(uint) public static extern void glPrimitiveRestartIndex(uint index) Parameters index uint glPrimitiveRestartIndexNV(uint) public static extern void glPrimitiveRestartIndexNV(uint index) Parameters index uint glPrimitiveRestartNV() public static extern void glPrimitiveRestartNV() glPrioritizeTextures(int, uint*, float*) public static extern void glPrioritizeTextures(int n, uint* textures, float* priorities) Parameters n int textures uint* priorities float* glPrioritizeTexturesEXT(int, uint*, float*) public static extern void glPrioritizeTexturesEXT(int n, uint* textures, float* priorities) Parameters n int textures uint* priorities float* glProgramBinary(uint, uint, nint, int) public static extern void glProgramBinary(uint program, uint binaryFormat, nint binary, int length) Parameters program uint binaryFormat uint binary nint length int glProgramBufferParametersIivNV(uint, uint, uint, int, int*) public static extern void glProgramBufferParametersIivNV(uint target, uint buffer, uint index, int count, int* @params) Parameters target uint buffer uint index uint count int params int* glProgramBufferParametersIuivNV(uint, uint, uint, int, uint*) public static extern void glProgramBufferParametersIuivNV(uint target, uint buffer, uint index, int count, uint* @params) Parameters target uint buffer uint index uint count int params uint* glProgramBufferParametersfvNV(uint, uint, uint, int, float*) public static extern void glProgramBufferParametersfvNV(uint target, uint buffer, uint index, int count, float* @params) Parameters target uint buffer uint index uint count int params float* glProgramEnvParameter4dARB(uint, uint, double, double, double, double) public static extern void glProgramEnvParameter4dARB(uint target, uint index, double x, double y, double z, double w) Parameters target uint index uint x double y double z double w double glProgramEnvParameter4dvARB(uint, uint, double*) public static extern void glProgramEnvParameter4dvARB(uint target, uint index, double* @params) Parameters target uint index uint params double* glProgramEnvParameter4fARB(uint, uint, float, float, float, float) public static extern void glProgramEnvParameter4fARB(uint target, uint index, float x, float y, float z, float w) Parameters target uint index uint x float y float z float w float glProgramEnvParameter4fvARB(uint, uint, float*) public static extern void glProgramEnvParameter4fvARB(uint target, uint index, float* @params) Parameters target uint index uint params float* glProgramEnvParameterI4iNV(uint, uint, int, int, int, int) public static extern void glProgramEnvParameterI4iNV(uint target, uint index, int x, int y, int z, int w) Parameters target uint index uint x int y int z int w int glProgramEnvParameterI4ivNV(uint, uint, int*) public static extern void glProgramEnvParameterI4ivNV(uint target, uint index, int* @params) Parameters target uint index uint params int* glProgramEnvParameterI4uiNV(uint, uint, uint, uint, uint, uint) public static extern void glProgramEnvParameterI4uiNV(uint target, uint index, uint x, uint y, uint z, uint w) Parameters target uint index uint x uint y uint z uint w uint glProgramEnvParameterI4uivNV(uint, uint, uint*) public static extern void glProgramEnvParameterI4uivNV(uint target, uint index, uint* @params) Parameters target uint index uint params uint* glProgramEnvParameters4fvEXT(uint, uint, int, float*) public static extern void glProgramEnvParameters4fvEXT(uint target, uint index, int count, float* @params) Parameters target uint index uint count int params float* glProgramEnvParametersI4ivNV(uint, uint, int, int*) public static extern void glProgramEnvParametersI4ivNV(uint target, uint index, int count, int* @params) Parameters target uint index uint count int params int* glProgramEnvParametersI4uivNV(uint, uint, int, uint*) public static extern void glProgramEnvParametersI4uivNV(uint target, uint index, int count, uint* @params) Parameters target uint index uint count int params uint* glProgramLocalParameter4dARB(uint, uint, double, double, double, double) public static extern void glProgramLocalParameter4dARB(uint target, uint index, double x, double y, double z, double w) Parameters target uint index uint x double y double z double w double glProgramLocalParameter4dvARB(uint, uint, double*) public static extern void glProgramLocalParameter4dvARB(uint target, uint index, double* @params) Parameters target uint index uint params double* glProgramLocalParameter4fARB(uint, uint, float, float, float, float) public static extern void glProgramLocalParameter4fARB(uint target, uint index, float x, float y, float z, float w) Parameters target uint index uint x float y float z float w float glProgramLocalParameter4fvARB(uint, uint, float*) public static extern void glProgramLocalParameter4fvARB(uint target, uint index, float* @params) Parameters target uint index uint params float* glProgramLocalParameterI4iNV(uint, uint, int, int, int, int) public static extern void glProgramLocalParameterI4iNV(uint target, uint index, int x, int y, int z, int w) Parameters target uint index uint x int y int z int w int glProgramLocalParameterI4ivNV(uint, uint, int*) public static extern void glProgramLocalParameterI4ivNV(uint target, uint index, int* @params) Parameters target uint index uint params int* glProgramLocalParameterI4uiNV(uint, uint, uint, uint, uint, uint) public static extern void glProgramLocalParameterI4uiNV(uint target, uint index, uint x, uint y, uint z, uint w) Parameters target uint index uint x uint y uint z uint w uint glProgramLocalParameterI4uivNV(uint, uint, uint*) public static extern void glProgramLocalParameterI4uivNV(uint target, uint index, uint* @params) Parameters target uint index uint params uint* glProgramLocalParameters4fvEXT(uint, uint, int, float*) public static extern void glProgramLocalParameters4fvEXT(uint target, uint index, int count, float* @params) Parameters target uint index uint count int params float* glProgramLocalParametersI4ivNV(uint, uint, int, int*) public static extern void glProgramLocalParametersI4ivNV(uint target, uint index, int count, int* @params) Parameters target uint index uint count int params int* glProgramLocalParametersI4uivNV(uint, uint, int, uint*) public static extern void glProgramLocalParametersI4uivNV(uint target, uint index, int count, uint* @params) Parameters target uint index uint count int params uint* glProgramNamedParameter4dNV(uint, int, byte*, double, double, double, double) public static extern void glProgramNamedParameter4dNV(uint id, int len, byte* name, double x, double y, double z, double w) Parameters id uint len int name byte* x double y double z double w double glProgramNamedParameter4dvNV(uint, int, byte*, double*) public static extern void glProgramNamedParameter4dvNV(uint id, int len, byte* name, double* v) Parameters id uint len int name byte* v double* glProgramNamedParameter4fNV(uint, int, byte*, float, float, float, float) public static extern void glProgramNamedParameter4fNV(uint id, int len, byte* name, float x, float y, float z, float w) Parameters id uint len int name byte* x float y float z float w float glProgramNamedParameter4fvNV(uint, int, byte*, float*) public static extern void glProgramNamedParameter4fvNV(uint id, int len, byte* name, float* v) Parameters id uint len int name byte* v float* glProgramParameter4dNV(uint, uint, double, double, double, double) public static extern void glProgramParameter4dNV(uint target, uint index, double x, double y, double z, double w) Parameters target uint index uint x double y double z double w double glProgramParameter4dvNV(uint, uint, double*) public static extern void glProgramParameter4dvNV(uint target, uint index, double* v) Parameters target uint index uint v double* glProgramParameter4fNV(uint, uint, float, float, float, float) public static extern void glProgramParameter4fNV(uint target, uint index, float x, float y, float z, float w) Parameters target uint index uint x float y float z float w float glProgramParameter4fvNV(uint, uint, float*) public static extern void glProgramParameter4fvNV(uint target, uint index, float* v) Parameters target uint index uint v float* glProgramParameteri(uint, uint, int) public static extern void glProgramParameteri(uint program, uint pname, int value) Parameters program uint pname uint value int glProgramParameteriARB(uint, uint, int) public static extern void glProgramParameteriARB(uint program, uint pname, int value) Parameters program uint pname uint value int glProgramParameteriEXT(uint, uint, int) public static extern void glProgramParameteriEXT(uint program, uint pname, int value) Parameters program uint pname uint value int glProgramParameters4dvNV(uint, uint, int, double*) public static extern void glProgramParameters4dvNV(uint target, uint index, int count, double* v) Parameters target uint index uint count int v double* glProgramParameters4fvNV(uint, uint, int, float*) public static extern void glProgramParameters4fvNV(uint target, uint index, int count, float* v) Parameters target uint index uint count int v float* glProgramStringARB(uint, uint, int, nint) public static extern void glProgramStringARB(uint target, uint format, int len, nint @string) Parameters target uint format uint len int string nint glProgramSubroutineParametersuivNV(uint, int, uint*) public static extern void glProgramSubroutineParametersuivNV(uint target, int count, uint* @params) Parameters target uint count int params uint* glProgramUniform1d(uint, int, double) public static extern void glProgramUniform1d(uint program, int location, double v0) Parameters program uint location int v0 double glProgramUniform1dEXT(uint, int, double) public static extern void glProgramUniform1dEXT(uint program, int location, double x) Parameters program uint location int x double glProgramUniform1dv(uint, int, int, double*) public static extern void glProgramUniform1dv(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform1dvEXT(uint, int, int, double*) public static extern void glProgramUniform1dvEXT(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform1f(uint, int, float) public static extern void glProgramUniform1f(uint program, int location, float v0) Parameters program uint location int v0 float glProgramUniform1fEXT(uint, int, float) public static extern void glProgramUniform1fEXT(uint program, int location, float v0) Parameters program uint location int v0 float glProgramUniform1fv(uint, int, int, float*) public static extern void glProgramUniform1fv(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform1fvEXT(uint, int, int, float*) public static extern void glProgramUniform1fvEXT(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform1i(uint, int, int) public static extern void glProgramUniform1i(uint program, int location, int v0) Parameters program uint location int v0 int glProgramUniform1i64NV(uint, int, long) public static extern void glProgramUniform1i64NV(uint program, int location, long x) Parameters program uint location int x long glProgramUniform1i64vNV(uint, int, int, long*) public static extern void glProgramUniform1i64vNV(uint program, int location, int count, long* value) Parameters program uint location int count int value long* glProgramUniform1iEXT(uint, int, int) public static extern void glProgramUniform1iEXT(uint program, int location, int v0) Parameters program uint location int v0 int glProgramUniform1iv(uint, int, int, int*) public static extern void glProgramUniform1iv(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform1ivEXT(uint, int, int, int*) public static extern void glProgramUniform1ivEXT(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform1ui(uint, int, uint) public static extern void glProgramUniform1ui(uint program, int location, uint v0) Parameters program uint location int v0 uint glProgramUniform1ui64NV(uint, int, ulong) public static extern void glProgramUniform1ui64NV(uint program, int location, ulong x) Parameters program uint location int x ulong glProgramUniform1ui64vNV(uint, int, int, ulong*) public static extern void glProgramUniform1ui64vNV(uint program, int location, int count, ulong* value) Parameters program uint location int count int value ulong* glProgramUniform1uiEXT(uint, int, uint) public static extern void glProgramUniform1uiEXT(uint program, int location, uint v0) Parameters program uint location int v0 uint glProgramUniform1uiv(uint, int, int, uint*) public static extern void glProgramUniform1uiv(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform1uivEXT(uint, int, int, uint*) public static extern void glProgramUniform1uivEXT(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform2d(uint, int, double, double) public static extern void glProgramUniform2d(uint program, int location, double v0, double v1) Parameters program uint location int v0 double v1 double glProgramUniform2dEXT(uint, int, double, double) public static extern void glProgramUniform2dEXT(uint program, int location, double x, double y) Parameters program uint location int x double y double glProgramUniform2dv(uint, int, int, double*) public static extern void glProgramUniform2dv(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform2dvEXT(uint, int, int, double*) public static extern void glProgramUniform2dvEXT(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform2f(uint, int, float, float) public static extern void glProgramUniform2f(uint program, int location, float v0, float v1) Parameters program uint location int v0 float v1 float glProgramUniform2fEXT(uint, int, float, float) public static extern void glProgramUniform2fEXT(uint program, int location, float v0, float v1) Parameters program uint location int v0 float v1 float glProgramUniform2fv(uint, int, int, float*) public static extern void glProgramUniform2fv(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform2fvEXT(uint, int, int, float*) public static extern void glProgramUniform2fvEXT(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform2i(uint, int, int, int) public static extern void glProgramUniform2i(uint program, int location, int v0, int v1) Parameters program uint location int v0 int v1 int glProgramUniform2i64NV(uint, int, long, long) public static extern void glProgramUniform2i64NV(uint program, int location, long x, long y) Parameters program uint location int x long y long glProgramUniform2i64vNV(uint, int, int, long*) public static extern void glProgramUniform2i64vNV(uint program, int location, int count, long* value) Parameters program uint location int count int value long* glProgramUniform2iEXT(uint, int, int, int) public static extern void glProgramUniform2iEXT(uint program, int location, int v0, int v1) Parameters program uint location int v0 int v1 int glProgramUniform2iv(uint, int, int, int*) public static extern void glProgramUniform2iv(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform2ivEXT(uint, int, int, int*) public static extern void glProgramUniform2ivEXT(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform2ui(uint, int, uint, uint) public static extern void glProgramUniform2ui(uint program, int location, uint v0, uint v1) Parameters program uint location int v0 uint v1 uint glProgramUniform2ui64NV(uint, int, ulong, ulong) public static extern void glProgramUniform2ui64NV(uint program, int location, ulong x, ulong y) Parameters program uint location int x ulong y ulong glProgramUniform2ui64vNV(uint, int, int, ulong*) public static extern void glProgramUniform2ui64vNV(uint program, int location, int count, ulong* value) Parameters program uint location int count int value ulong* glProgramUniform2uiEXT(uint, int, uint, uint) public static extern void glProgramUniform2uiEXT(uint program, int location, uint v0, uint v1) Parameters program uint location int v0 uint v1 uint glProgramUniform2uiv(uint, int, int, uint*) public static extern void glProgramUniform2uiv(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform2uivEXT(uint, int, int, uint*) public static extern void glProgramUniform2uivEXT(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform3d(uint, int, double, double, double) public static extern void glProgramUniform3d(uint program, int location, double v0, double v1, double v2) Parameters program uint location int v0 double v1 double v2 double glProgramUniform3dEXT(uint, int, double, double, double) public static extern void glProgramUniform3dEXT(uint program, int location, double x, double y, double z) Parameters program uint location int x double y double z double glProgramUniform3dv(uint, int, int, double*) public static extern void glProgramUniform3dv(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform3dvEXT(uint, int, int, double*) public static extern void glProgramUniform3dvEXT(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform3f(uint, int, float, float, float) public static extern void glProgramUniform3f(uint program, int location, float v0, float v1, float v2) Parameters program uint location int v0 float v1 float v2 float glProgramUniform3fEXT(uint, int, float, float, float) public static extern void glProgramUniform3fEXT(uint program, int location, float v0, float v1, float v2) Parameters program uint location int v0 float v1 float v2 float glProgramUniform3fv(uint, int, int, float*) public static extern void glProgramUniform3fv(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform3fvEXT(uint, int, int, float*) public static extern void glProgramUniform3fvEXT(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform3i(uint, int, int, int, int) public static extern void glProgramUniform3i(uint program, int location, int v0, int v1, int v2) Parameters program uint location int v0 int v1 int v2 int glProgramUniform3i64NV(uint, int, long, long, long) public static extern void glProgramUniform3i64NV(uint program, int location, long x, long y, long z) Parameters program uint location int x long y long z long glProgramUniform3i64vNV(uint, int, int, long*) public static extern void glProgramUniform3i64vNV(uint program, int location, int count, long* value) Parameters program uint location int count int value long* glProgramUniform3iEXT(uint, int, int, int, int) public static extern void glProgramUniform3iEXT(uint program, int location, int v0, int v1, int v2) Parameters program uint location int v0 int v1 int v2 int glProgramUniform3iv(uint, int, int, int*) public static extern void glProgramUniform3iv(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform3ivEXT(uint, int, int, int*) public static extern void glProgramUniform3ivEXT(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform3ui(uint, int, uint, uint, uint) public static extern void glProgramUniform3ui(uint program, int location, uint v0, uint v1, uint v2) Parameters program uint location int v0 uint v1 uint v2 uint glProgramUniform3ui64NV(uint, int, ulong, ulong, ulong) public static extern void glProgramUniform3ui64NV(uint program, int location, ulong x, ulong y, ulong z) Parameters program uint location int x ulong y ulong z ulong glProgramUniform3ui64vNV(uint, int, int, ulong*) public static extern void glProgramUniform3ui64vNV(uint program, int location, int count, ulong* value) Parameters program uint location int count int value ulong* glProgramUniform3uiEXT(uint, int, uint, uint, uint) public static extern void glProgramUniform3uiEXT(uint program, int location, uint v0, uint v1, uint v2) Parameters program uint location int v0 uint v1 uint v2 uint glProgramUniform3uiv(uint, int, int, uint*) public static extern void glProgramUniform3uiv(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform3uivEXT(uint, int, int, uint*) public static extern void glProgramUniform3uivEXT(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform4d(uint, int, double, double, double, double) public static extern void glProgramUniform4d(uint program, int location, double v0, double v1, double v2, double v3) Parameters program uint location int v0 double v1 double v2 double v3 double glProgramUniform4dEXT(uint, int, double, double, double, double) public static extern void glProgramUniform4dEXT(uint program, int location, double x, double y, double z, double w) Parameters program uint location int x double y double z double w double glProgramUniform4dv(uint, int, int, double*) public static extern void glProgramUniform4dv(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform4dvEXT(uint, int, int, double*) public static extern void glProgramUniform4dvEXT(uint program, int location, int count, double* value) Parameters program uint location int count int value double* glProgramUniform4f(uint, int, float, float, float, float) public static extern void glProgramUniform4f(uint program, int location, float v0, float v1, float v2, float v3) Parameters program uint location int v0 float v1 float v2 float v3 float glProgramUniform4fEXT(uint, int, float, float, float, float) public static extern void glProgramUniform4fEXT(uint program, int location, float v0, float v1, float v2, float v3) Parameters program uint location int v0 float v1 float v2 float v3 float glProgramUniform4fv(uint, int, int, float*) public static extern void glProgramUniform4fv(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform4fvEXT(uint, int, int, float*) public static extern void glProgramUniform4fvEXT(uint program, int location, int count, float* value) Parameters program uint location int count int value float* glProgramUniform4i(uint, int, int, int, int, int) public static extern void glProgramUniform4i(uint program, int location, int v0, int v1, int v2, int v3) Parameters program uint location int v0 int v1 int v2 int v3 int glProgramUniform4i64NV(uint, int, long, long, long, long) public static extern void glProgramUniform4i64NV(uint program, int location, long x, long y, long z, long w) Parameters program uint location int x long y long z long w long glProgramUniform4i64vNV(uint, int, int, long*) public static extern void glProgramUniform4i64vNV(uint program, int location, int count, long* value) Parameters program uint location int count int value long* glProgramUniform4iEXT(uint, int, int, int, int, int) public static extern void glProgramUniform4iEXT(uint program, int location, int v0, int v1, int v2, int v3) Parameters program uint location int v0 int v1 int v2 int v3 int glProgramUniform4iv(uint, int, int, int*) public static extern void glProgramUniform4iv(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform4ivEXT(uint, int, int, int*) public static extern void glProgramUniform4ivEXT(uint program, int location, int count, int* value) Parameters program uint location int count int value int* glProgramUniform4ui(uint, int, uint, uint, uint, uint) public static extern void glProgramUniform4ui(uint program, int location, uint v0, uint v1, uint v2, uint v3) Parameters program uint location int v0 uint v1 uint v2 uint v3 uint glProgramUniform4ui64NV(uint, int, ulong, ulong, ulong, ulong) public static extern void glProgramUniform4ui64NV(uint program, int location, ulong x, ulong y, ulong z, ulong w) Parameters program uint location int x ulong y ulong z ulong w ulong glProgramUniform4ui64vNV(uint, int, int, ulong*) public static extern void glProgramUniform4ui64vNV(uint program, int location, int count, ulong* value) Parameters program uint location int count int value ulong* glProgramUniform4uiEXT(uint, int, uint, uint, uint, uint) public static extern void glProgramUniform4uiEXT(uint program, int location, uint v0, uint v1, uint v2, uint v3) Parameters program uint location int v0 uint v1 uint v2 uint v3 uint glProgramUniform4uiv(uint, int, int, uint*) public static extern void glProgramUniform4uiv(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniform4uivEXT(uint, int, int, uint*) public static extern void glProgramUniform4uivEXT(uint program, int location, int count, uint* value) Parameters program uint location int count int value uint* glProgramUniformMatrix2dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix2fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix2x3dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2x3dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2x3dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2x3dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2x3fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2x3fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix2x3fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2x3fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix2x4dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2x4dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2x4dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix2x4dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix2x4fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2x4fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix2x4fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix2x4fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3x2dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3x2dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3x2dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3x2dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3x2fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3x2fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3x2fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3x2fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3x4dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3x4dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3x4dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix3x4dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix3x4fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3x4fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix3x4fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix3x4fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4x2dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4x2dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4x2dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4x2dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4x2fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4x2fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4x2fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4x2fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4x3dv(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4x3dv(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4x3dvEXT(uint, int, int, bool, double*) public static extern void glProgramUniformMatrix4x3dvEXT(uint program, int location, int count, bool transpose, double* value) Parameters program uint location int count int transpose bool value double* glProgramUniformMatrix4x3fv(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4x3fv(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformMatrix4x3fvEXT(uint, int, int, bool, float*) public static extern void glProgramUniformMatrix4x3fvEXT(uint program, int location, int count, bool transpose, float* value) Parameters program uint location int count int transpose bool value float* glProgramUniformui64NV(uint, int, ulong) public static extern void glProgramUniformui64NV(uint program, int location, ulong value) Parameters program uint location int value ulong glProgramUniformui64vNV(uint, int, int, ulong*) public static extern void glProgramUniformui64vNV(uint program, int location, int count, ulong* value) Parameters program uint location int count int value ulong* glProgramVertexLimitNV(uint, int) public static extern void glProgramVertexLimitNV(uint target, int limit) Parameters target uint limit int glProvokingVertex(uint) public static extern void glProvokingVertex(uint mode) Parameters mode uint glProvokingVertexEXT(uint) public static extern void glProvokingVertexEXT(uint mode) Parameters mode uint glPushAttrib(uint) public static extern void glPushAttrib(uint mask) Parameters mask uint glPushClientAttrib(uint) public static extern void glPushClientAttrib(uint mask) Parameters mask uint glPushClientAttribDefaultEXT(uint) public static extern void glPushClientAttribDefaultEXT(uint mask) Parameters mask uint glPushMatrix() public static extern void glPushMatrix() glPushName(uint) public static extern void glPushName(uint name) Parameters name uint glQueryCounter(uint, uint) public static extern void glQueryCounter(uint id, uint target) Parameters id uint target uint glRasterPos2d(double, double) public static extern void glRasterPos2d(double x, double y) Parameters x double y double glRasterPos2dv(double*) public static extern void glRasterPos2dv(double* v) Parameters v double* glRasterPos2f(float, float) public static extern void glRasterPos2f(float x, float y) Parameters x float y float glRasterPos2fv(float*) public static extern void glRasterPos2fv(float* v) Parameters v float* glRasterPos2i(int, int) public static extern void glRasterPos2i(int x, int y) Parameters x int y int glRasterPos2iv(int*) public static extern void glRasterPos2iv(int* v) Parameters v int* glRasterPos2s(short, short) public static extern void glRasterPos2s(short x, short y) Parameters x short y short glRasterPos2sv(short*) public static extern void glRasterPos2sv(short* v) Parameters v short* glRasterPos3d(double, double, double) public static extern void glRasterPos3d(double x, double y, double z) Parameters x double y double z double glRasterPos3dv(double*) public static extern void glRasterPos3dv(double* v) Parameters v double* glRasterPos3f(float, float, float) public static extern void glRasterPos3f(float x, float y, float z) Parameters x float y float z float glRasterPos3fv(float*) public static extern void glRasterPos3fv(float* v) Parameters v float* glRasterPos3i(int, int, int) public static extern void glRasterPos3i(int x, int y, int z) Parameters x int y int z int glRasterPos3iv(int*) public static extern void glRasterPos3iv(int* v) Parameters v int* glRasterPos3s(short, short, short) public static extern void glRasterPos3s(short x, short y, short z) Parameters x short y short z short glRasterPos3sv(short*) public static extern void glRasterPos3sv(short* v) Parameters v short* glRasterPos4d(double, double, double, double) public static extern void glRasterPos4d(double x, double y, double z, double w) Parameters x double y double z double w double glRasterPos4dv(double*) public static extern void glRasterPos4dv(double* v) Parameters v double* glRasterPos4f(float, float, float, float) public static extern void glRasterPos4f(float x, float y, float z, float w) Parameters x float y float z float w float glRasterPos4fv(float*) public static extern void glRasterPos4fv(float* v) Parameters v float* glRasterPos4i(int, int, int, int) public static extern void glRasterPos4i(int x, int y, int z, int w) Parameters x int y int z int w int glRasterPos4iv(int*) public static extern void glRasterPos4iv(int* v) Parameters v int* glRasterPos4s(short, short, short, short) public static extern void glRasterPos4s(short x, short y, short z, short w) Parameters x short y short z short w short glRasterPos4sv(short*) public static extern void glRasterPos4sv(short* v) Parameters v short* glReadBuffer(uint) public static extern void glReadBuffer(uint mode) Parameters mode uint glReadInstrumentsSGIX(int) public static extern void glReadInstrumentsSGIX(int marker) Parameters marker int glReadPixels(int, int, int, int, uint, uint, nint) public static extern void glReadPixels(int x, int y, int width, int height, uint format, uint type, nint pixels) Parameters x int y int width int height int format uint type uint pixels nint glReadnPixelsARB(int, int, int, int, uint, uint, int, nint) public static extern void glReadnPixelsARB(int x, int y, int width, int height, uint format, uint type, int bufSize, nint data) Parameters x int y int width int height int format uint type uint bufSize int data nint glRectd(double, double, double, double) public static extern void glRectd(double x1, double y1, double x2, double y2) Parameters x1 double y1 double x2 double y2 double glRectdv(double*, double*) public static extern void glRectdv(double* v1, double* v2) Parameters v1 double* v2 double* glRectf(float, float, float, float) public static extern void glRectf(float x1, float y1, float x2, float y2) Parameters x1 float y1 float x2 float y2 float glRectfv(float*, float*) public static extern void glRectfv(float* v1, float* v2) Parameters v1 float* v2 float* glRecti(int, int, int, int) public static extern void glRecti(int x1, int y1, int x2, int y2) Parameters x1 int y1 int x2 int y2 int glRectiv(int*, int*) public static extern void glRectiv(int* v1, int* v2) Parameters v1 int* v2 int* glRects(short, short, short, short) public static extern void glRects(short x1, short y1, short x2, short y2) Parameters x1 short y1 short x2 short y2 short glRectsv(short*, short*) public static extern void glRectsv(short* v1, short* v2) Parameters v1 short* v2 short* glReferencePlaneSGIX(double*) public static extern void glReferencePlaneSGIX(double* equation) Parameters equation double* glReleaseShaderCompiler() public static extern void glReleaseShaderCompiler() glRenderMode(uint) public static extern int glRenderMode(uint mode) Parameters mode uint Returns int glRenderbufferStorage(uint, uint, int, int) public static extern void glRenderbufferStorage(uint target, uint internalformat, int width, int height) Parameters target uint internalformat uint width int height int glRenderbufferStorageEXT(uint, uint, int, int) public static extern void glRenderbufferStorageEXT(uint target, uint internalformat, int width, int height) Parameters target uint internalformat uint width int height int glRenderbufferStorageMultisample(uint, int, uint, int, int) public static extern void glRenderbufferStorageMultisample(uint target, int samples, uint internalformat, int width, int height) Parameters target uint samples int internalformat uint width int height int glRenderbufferStorageMultisampleCoverageNV(uint, int, int, uint, int, int) public static extern void glRenderbufferStorageMultisampleCoverageNV(uint target, int coverageSamples, int colorSamples, uint internalformat, int width, int height) Parameters target uint coverageSamples int colorSamples int internalformat uint width int height int glRenderbufferStorageMultisampleEXT(uint, int, uint, int, int) public static extern void glRenderbufferStorageMultisampleEXT(uint target, int samples, uint internalformat, int width, int height) Parameters target uint samples int internalformat uint width int height int glReplacementCodePointerSUN(uint, int, nint) public static extern void glReplacementCodePointerSUN(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glReplacementCodeubSUN(byte) public static extern void glReplacementCodeubSUN(byte code) Parameters code byte glReplacementCodeubvSUN(byte*) public static extern void glReplacementCodeubvSUN(byte* code) Parameters code byte* glReplacementCodeuiColor3fVertex3fSUN(uint, float, float, float, float, float, float) public static extern void glReplacementCodeuiColor3fVertex3fSUN(uint rc, float r, float g, float b, float x, float y, float z) Parameters rc uint r float g float b float x float y float z float glReplacementCodeuiColor3fVertex3fvSUN(uint*, float*, float*) public static extern void glReplacementCodeuiColor3fVertex3fvSUN(uint* rc, float* c, float* v) Parameters rc uint* c float* v float* glReplacementCodeuiColor4fNormal3fVertex3fSUN(uint, float, float, float, float, float, float, float, float, float, float) public static extern void glReplacementCodeuiColor4fNormal3fVertex3fSUN(uint rc, float r, float g, float b, float a, float nx, float ny, float nz, float x, float y, float z) Parameters rc uint r float g float b float a float nx float ny float nz float x float y float z float glReplacementCodeuiColor4fNormal3fVertex3fvSUN(uint*, float*, float*, float*) public static extern void glReplacementCodeuiColor4fNormal3fVertex3fvSUN(uint* rc, float* c, float* n, float* v) Parameters rc uint* c float* n float* v float* glReplacementCodeuiColor4ubVertex3fSUN(uint, byte, byte, byte, byte, float, float, float) public static extern void glReplacementCodeuiColor4ubVertex3fSUN(uint rc, byte r, byte g, byte b, byte a, float x, float y, float z) Parameters rc uint r byte g byte b byte a byte x float y float z float glReplacementCodeuiColor4ubVertex3fvSUN(uint*, byte*, float*) public static extern void glReplacementCodeuiColor4ubVertex3fvSUN(uint* rc, byte* c, float* v) Parameters rc uint* c byte* v float* glReplacementCodeuiNormal3fVertex3fSUN(uint, float, float, float, float, float, float) public static extern void glReplacementCodeuiNormal3fVertex3fSUN(uint rc, float nx, float ny, float nz, float x, float y, float z) Parameters rc uint nx float ny float nz float x float y float z float glReplacementCodeuiNormal3fVertex3fvSUN(uint*, float*, float*) public static extern void glReplacementCodeuiNormal3fVertex3fvSUN(uint* rc, float* n, float* v) Parameters rc uint* n float* v float* glReplacementCodeuiSUN(uint) public static extern void glReplacementCodeuiSUN(uint code) Parameters code uint glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint, float, float, float, float, float, float, float, float, float, float, float, float) public static extern void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint rc, float s, float t, float r, float g, float b, float a, float nx, float ny, float nz, float x, float y, float z) Parameters rc uint s float t float r float g float b float a float nx float ny float nz float x float y float z float glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(uint*, float*, float*, float*, float*) public static extern void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(uint* rc, float* tc, float* c, float* n, float* v) Parameters rc uint* tc float* c float* n float* v float* glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint, float, float, float, float, float, float, float, float) public static extern void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint rc, float s, float t, float nx, float ny, float nz, float x, float y, float z) Parameters rc uint s float t float nx float ny float nz float x float y float z float glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(uint*, float*, float*, float*) public static extern void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(uint* rc, float* tc, float* n, float* v) Parameters rc uint* tc float* n float* v float* glReplacementCodeuiTexCoord2fVertex3fSUN(uint, float, float, float, float, float) public static extern void glReplacementCodeuiTexCoord2fVertex3fSUN(uint rc, float s, float t, float x, float y, float z) Parameters rc uint s float t float x float y float z float glReplacementCodeuiTexCoord2fVertex3fvSUN(uint*, float*, float*) public static extern void glReplacementCodeuiTexCoord2fVertex3fvSUN(uint* rc, float* tc, float* v) Parameters rc uint* tc float* v float* glReplacementCodeuiVertex3fSUN(uint, float, float, float) public static extern void glReplacementCodeuiVertex3fSUN(uint rc, float x, float y, float z) Parameters rc uint x float y float z float glReplacementCodeuiVertex3fvSUN(uint*, float*) public static extern void glReplacementCodeuiVertex3fvSUN(uint* rc, float* v) Parameters rc uint* v float* glReplacementCodeuivSUN(uint*) public static extern void glReplacementCodeuivSUN(uint* code) Parameters code uint* glReplacementCodeusSUN(ushort) public static extern void glReplacementCodeusSUN(ushort code) Parameters code ushort glReplacementCodeusvSUN(ushort*) public static extern void glReplacementCodeusvSUN(ushort* code) Parameters code ushort* glRequestResidentProgramsNV(int, uint*) public static extern void glRequestResidentProgramsNV(int n, uint* programs) Parameters n int programs uint* glResetHistogram(uint) public static extern void glResetHistogram(uint target) Parameters target uint glResetHistogramEXT(uint) public static extern void glResetHistogramEXT(uint target) Parameters target uint glResetMinmax(uint) public static extern void glResetMinmax(uint target) Parameters target uint glResetMinmaxEXT(uint) public static extern void glResetMinmaxEXT(uint target) Parameters target uint glResizeBuffersMESA() public static extern void glResizeBuffersMESA() glResumeTransformFeedback() public static extern void glResumeTransformFeedback() glResumeTransformFeedbackNV() public static extern void glResumeTransformFeedbackNV() glRotated(double, double, double, double) public static extern void glRotated(double angle, double x, double y, double z) Parameters angle double x double y double z double glRotatef(float, float, float, float) public static extern void glRotatef(float angle, float x, float y, float z) Parameters angle float x float y float z float glSampleCoverage(float, bool) public static extern void glSampleCoverage(float value, bool invert) Parameters value float invert bool glSampleCoverageARB(float, bool) public static extern void glSampleCoverageARB(float value, bool invert) Parameters value float invert bool glSampleMapATI(uint, uint, uint) public static extern void glSampleMapATI(uint dst, uint interp, uint swizzle) Parameters dst uint interp uint swizzle uint glSampleMaskEXT(float, bool) public static extern void glSampleMaskEXT(float value, bool invert) Parameters value float invert bool glSampleMaskIndexedNV(uint, uint) public static extern void glSampleMaskIndexedNV(uint index, uint mask) Parameters index uint mask uint glSampleMaskSGIS(float, bool) public static extern void glSampleMaskSGIS(float value, bool invert) Parameters value float invert bool glSampleMaski(uint, uint) public static extern void glSampleMaski(uint index, uint mask) Parameters index uint mask uint glSamplePatternEXT(uint) public static extern void glSamplePatternEXT(uint pattern) Parameters pattern uint glSamplePatternSGIS(uint) public static extern void glSamplePatternSGIS(uint pattern) Parameters pattern uint glSamplerParameterIiv(uint, uint, int*) public static extern void glSamplerParameterIiv(uint sampler, uint pname, int* param) Parameters sampler uint pname uint param int* glSamplerParameterIuiv(uint, uint, uint*) public static extern void glSamplerParameterIuiv(uint sampler, uint pname, uint* param) Parameters sampler uint pname uint param uint* glSamplerParameterf(uint, uint, float) public static extern void glSamplerParameterf(uint sampler, uint pname, float param) Parameters sampler uint pname uint param float glSamplerParameterfv(uint, uint, float*) public static extern void glSamplerParameterfv(uint sampler, uint pname, float* param) Parameters sampler uint pname uint param float* glSamplerParameteri(uint, uint, int) public static extern void glSamplerParameteri(uint sampler, uint pname, int param) Parameters sampler uint pname uint param int glSamplerParameteriv(uint, uint, int*) public static extern void glSamplerParameteriv(uint sampler, uint pname, int* param) Parameters sampler uint pname uint param int* glScaled(double, double, double) public static extern void glScaled(double x, double y, double z) Parameters x double y double z double glScalef(float, float, float) public static extern void glScalef(float x, float y, float z) Parameters x float y float z float glScissor(int, int, int, int) public static extern void glScissor(int x, int y, int width, int height) Parameters x int y int width int height int glScissorArrayv(uint, int, int*) public static extern void glScissorArrayv(uint first, int count, int* v) Parameters first uint count int v int* glScissorIndexed(uint, int, int, int, int) public static extern void glScissorIndexed(uint index, int left, int bottom, int width, int height) Parameters index uint left int bottom int width int height int glScissorIndexedv(uint, int*) public static extern void glScissorIndexedv(uint index, int* v) Parameters index uint v int* glSecondaryColor3b(sbyte, sbyte, sbyte) public static extern void glSecondaryColor3b(sbyte red, sbyte green, sbyte blue) Parameters red sbyte green sbyte blue sbyte glSecondaryColor3bEXT(sbyte, sbyte, sbyte) public static extern void glSecondaryColor3bEXT(sbyte red, sbyte green, sbyte blue) Parameters red sbyte green sbyte blue sbyte glSecondaryColor3bv(sbyte*) public static extern void glSecondaryColor3bv(sbyte* v) Parameters v sbyte* glSecondaryColor3bvEXT(sbyte*) public static extern void glSecondaryColor3bvEXT(sbyte* v) Parameters v sbyte* glSecondaryColor3d(double, double, double) public static extern void glSecondaryColor3d(double red, double green, double blue) Parameters red double green double blue double glSecondaryColor3dEXT(double, double, double) public static extern void glSecondaryColor3dEXT(double red, double green, double blue) Parameters red double green double blue double glSecondaryColor3dv(double*) public static extern void glSecondaryColor3dv(double* v) Parameters v double* glSecondaryColor3dvEXT(double*) public static extern void glSecondaryColor3dvEXT(double* v) Parameters v double* glSecondaryColor3f(float, float, float) public static extern void glSecondaryColor3f(float red, float green, float blue) Parameters red float green float blue float glSecondaryColor3fEXT(float, float, float) public static extern void glSecondaryColor3fEXT(float red, float green, float blue) Parameters red float green float blue float glSecondaryColor3fv(float*) public static extern void glSecondaryColor3fv(float* v) Parameters v float* glSecondaryColor3fvEXT(float*) public static extern void glSecondaryColor3fvEXT(float* v) Parameters v float* glSecondaryColor3hNV(ushort, ushort, ushort) public static extern void glSecondaryColor3hNV(ushort red, ushort green, ushort blue) Parameters red ushort green ushort blue ushort glSecondaryColor3hvNV(ushort*) public static extern void glSecondaryColor3hvNV(ushort* v) Parameters v ushort* glSecondaryColor3i(int, int, int) public static extern void glSecondaryColor3i(int red, int green, int blue) Parameters red int green int blue int glSecondaryColor3iEXT(int, int, int) public static extern void glSecondaryColor3iEXT(int red, int green, int blue) Parameters red int green int blue int glSecondaryColor3iv(int*) public static extern void glSecondaryColor3iv(int* v) Parameters v int* glSecondaryColor3ivEXT(int*) public static extern void glSecondaryColor3ivEXT(int* v) Parameters v int* glSecondaryColor3s(short, short, short) public static extern void glSecondaryColor3s(short red, short green, short blue) Parameters red short green short blue short glSecondaryColor3sEXT(short, short, short) public static extern void glSecondaryColor3sEXT(short red, short green, short blue) Parameters red short green short blue short glSecondaryColor3sv(short*) public static extern void glSecondaryColor3sv(short* v) Parameters v short* glSecondaryColor3svEXT(short*) public static extern void glSecondaryColor3svEXT(short* v) Parameters v short* glSecondaryColor3ub(byte, byte, byte) public static extern void glSecondaryColor3ub(byte red, byte green, byte blue) Parameters red byte green byte blue byte glSecondaryColor3ubEXT(byte, byte, byte) public static extern void glSecondaryColor3ubEXT(byte red, byte green, byte blue) Parameters red byte green byte blue byte glSecondaryColor3ubv(byte*) public static extern void glSecondaryColor3ubv(byte* v) Parameters v byte* glSecondaryColor3ubvEXT(byte*) public static extern void glSecondaryColor3ubvEXT(byte* v) Parameters v byte* glSecondaryColor3ui(uint, uint, uint) public static extern void glSecondaryColor3ui(uint red, uint green, uint blue) Parameters red uint green uint blue uint glSecondaryColor3uiEXT(uint, uint, uint) public static extern void glSecondaryColor3uiEXT(uint red, uint green, uint blue) Parameters red uint green uint blue uint glSecondaryColor3uiv(uint*) public static extern void glSecondaryColor3uiv(uint* v) Parameters v uint* glSecondaryColor3uivEXT(uint*) public static extern void glSecondaryColor3uivEXT(uint* v) Parameters v uint* glSecondaryColor3us(ushort, ushort, ushort) public static extern void glSecondaryColor3us(ushort red, ushort green, ushort blue) Parameters red ushort green ushort blue ushort glSecondaryColor3usEXT(ushort, ushort, ushort) public static extern void glSecondaryColor3usEXT(ushort red, ushort green, ushort blue) Parameters red ushort green ushort blue ushort glSecondaryColor3usv(ushort*) public static extern void glSecondaryColor3usv(ushort* v) Parameters v ushort* glSecondaryColor3usvEXT(ushort*) public static extern void glSecondaryColor3usvEXT(ushort* v) Parameters v ushort* glSecondaryColorFormatNV(int, uint, int) public static extern void glSecondaryColorFormatNV(int size, uint type, int stride) Parameters size int type uint stride int glSecondaryColorP3ui(uint, uint) public static extern void glSecondaryColorP3ui(uint type, uint color) Parameters type uint color uint glSecondaryColorP3uiv(uint, uint*) public static extern void glSecondaryColorP3uiv(uint type, uint* color) Parameters type uint color uint* glSecondaryColorPointer(int, uint, int, nint) public static extern void glSecondaryColorPointer(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glSecondaryColorPointerEXT(int, uint, int, nint) public static extern void glSecondaryColorPointerEXT(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glSecondaryColorPointerListIBM(int, uint, int, nint, int) public static extern void glSecondaryColorPointerListIBM(int size, uint type, int stride, nint pointer, int ptrstride) Parameters size int type uint stride int pointer nint ptrstride int glSelectBuffer(int, uint*) public static extern void glSelectBuffer(int size, uint* buffer) Parameters size int buffer uint* glSelectPerfMonitorCountersAMD(uint, bool, uint, int, uint*) public static extern void glSelectPerfMonitorCountersAMD(uint monitor, bool enable, uint group, int numCounters, uint* counterList) Parameters monitor uint enable bool group uint numCounters int counterList uint* glSeparableFilter2D(uint, uint, int, int, uint, uint, nint, nint) public static extern void glSeparableFilter2D(uint target, uint internalformat, int width, int height, uint format, uint type, nint row, nint column) Parameters target uint internalformat uint width int height int format uint type uint row nint column nint glSeparableFilter2DEXT(uint, uint, int, int, uint, uint, nint, nint) public static extern void glSeparableFilter2DEXT(uint target, uint internalformat, int width, int height, uint format, uint type, nint row, nint column) Parameters target uint internalformat uint width int height int format uint type uint row nint column nint glSetFenceAPPLE(uint) public static extern void glSetFenceAPPLE(uint fence) Parameters fence uint glSetFenceNV(uint, uint) public static extern void glSetFenceNV(uint fence, uint condition) Parameters fence uint condition uint glSetFragmentShaderConstantATI(uint, float*) public static extern void glSetFragmentShaderConstantATI(uint dst, float* value) Parameters dst uint value float* glSetInvariantEXT(uint, uint, nint) public static extern void glSetInvariantEXT(uint id, uint type, nint addr) Parameters id uint type uint addr nint glSetLocalConstantEXT(uint, uint, nint) public static extern void glSetLocalConstantEXT(uint id, uint type, nint addr) Parameters id uint type uint addr nint glSetMultisamplefvAMD(uint, uint, float*) public static extern void glSetMultisamplefvAMD(uint pname, uint index, float* val) Parameters pname uint index uint val float* glShadeModel(uint) public static extern void glShadeModel(uint mode) Parameters mode uint glShaderBinary(int, uint*, uint, nint, int) public static extern void glShaderBinary(int count, uint* shaders, uint binaryformat, nint binary, int length) Parameters count int shaders uint* binaryformat uint binary nint length int glShaderOp1EXT(uint, uint, uint) public static extern void glShaderOp1EXT(uint op, uint res, uint arg1) Parameters op uint res uint arg1 uint glShaderOp2EXT(uint, uint, uint, uint) public static extern void glShaderOp2EXT(uint op, uint res, uint arg1, uint arg2) Parameters op uint res uint arg1 uint arg2 uint glShaderOp3EXT(uint, uint, uint, uint, uint) public static extern void glShaderOp3EXT(uint op, uint res, uint arg1, uint arg2, uint arg3) Parameters op uint res uint arg1 uint arg2 uint arg3 uint glShaderSource(uint, int, string[], int*) public static extern void glShaderSource(uint shader, int count, string[] @string, int* length) Parameters shader uint count int string string[] length int* glShaderSourceARB(uint, int, string[], int*) public static extern void glShaderSourceARB(uint shaderObj, int count, string[] @string, int* length) Parameters shaderObj uint count int string string[] length int* glSharpenTexFuncSGIS(uint, int, float*) public static extern void glSharpenTexFuncSGIS(uint target, int n, float* points) Parameters target uint n int points float* glSpriteParameterfSGIX(uint, float) public static extern void glSpriteParameterfSGIX(uint pname, float param) Parameters pname uint param float glSpriteParameterfvSGIX(uint, float*) public static extern void glSpriteParameterfvSGIX(uint pname, float* @params) Parameters pname uint params float* glSpriteParameteriSGIX(uint, int) public static extern void glSpriteParameteriSGIX(uint pname, int param) Parameters pname uint param int glSpriteParameterivSGIX(uint, int*) public static extern void glSpriteParameterivSGIX(uint pname, int* @params) Parameters pname uint params int* glStartInstrumentsSGIX() public static extern void glStartInstrumentsSGIX() glStencilClearTagEXT(int, uint) public static extern void glStencilClearTagEXT(int stencilTagBits, uint stencilClearTag) Parameters stencilTagBits int stencilClearTag uint glStencilFunc(uint, int, uint) public static extern void glStencilFunc(uint func, int @ref, uint mask) Parameters func uint ref int mask uint glStencilFuncSeparate(uint, uint, int, uint) public static extern void glStencilFuncSeparate(uint face, uint func, int @ref, uint mask) Parameters face uint func uint ref int mask uint glStencilFuncSeparateATI(uint, uint, int, uint) public static extern void glStencilFuncSeparateATI(uint frontfunc, uint backfunc, int @ref, uint mask) Parameters frontfunc uint backfunc uint ref int mask uint glStencilMask(uint) public static extern void glStencilMask(uint mask) Parameters mask uint glStencilMaskSeparate(uint, uint) public static extern void glStencilMaskSeparate(uint face, uint mask) Parameters face uint mask uint glStencilOp(uint, uint, uint) public static extern void glStencilOp(uint fail, uint zfail, uint zpass) Parameters fail uint zfail uint zpass uint glStencilOpSeparate(uint, uint, uint, uint) public static extern void glStencilOpSeparate(uint face, uint sfail, uint dpfail, uint dppass) Parameters face uint sfail uint dpfail uint dppass uint glStencilOpSeparateATI(uint, uint, uint, uint) public static extern void glStencilOpSeparateATI(uint face, uint sfail, uint dpfail, uint dppass) Parameters face uint sfail uint dpfail uint dppass uint glStopInstrumentsSGIX(int) public static extern void glStopInstrumentsSGIX(int marker) Parameters marker int glStringMarkerGREMEDY(int, nint) public static extern void glStringMarkerGREMEDY(int len, nint @string) Parameters len int string nint glSwizzleEXT(uint, uint, uint, uint, uint, uint) public static extern void glSwizzleEXT(uint res, uint @in, uint outX, uint outY, uint outZ, uint outW) Parameters res uint in uint outX uint outY uint outZ uint outW uint glTagSampleBufferSGIX() public static extern void glTagSampleBufferSGIX() glTangent3bEXT(sbyte, sbyte, sbyte) public static extern void glTangent3bEXT(sbyte tx, sbyte ty, sbyte tz) Parameters tx sbyte ty sbyte tz sbyte glTangent3bvEXT(sbyte*) public static extern void glTangent3bvEXT(sbyte* v) Parameters v sbyte* glTangent3dEXT(double, double, double) public static extern void glTangent3dEXT(double tx, double ty, double tz) Parameters tx double ty double tz double glTangent3dvEXT(double*) public static extern void glTangent3dvEXT(double* v) Parameters v double* glTangent3fEXT(float, float, float) public static extern void glTangent3fEXT(float tx, float ty, float tz) Parameters tx float ty float tz float glTangent3fvEXT(float*) public static extern void glTangent3fvEXT(float* v) Parameters v float* glTangent3iEXT(int, int, int) public static extern void glTangent3iEXT(int tx, int ty, int tz) Parameters tx int ty int tz int glTangent3ivEXT(int*) public static extern void glTangent3ivEXT(int* v) Parameters v int* glTangent3sEXT(short, short, short) public static extern void glTangent3sEXT(short tx, short ty, short tz) Parameters tx short ty short tz short glTangent3svEXT(short*) public static extern void glTangent3svEXT(short* v) Parameters v short* glTangentPointerEXT(uint, int, nint) public static extern void glTangentPointerEXT(uint type, int stride, nint pointer) Parameters type uint stride int pointer nint glTbufferMask3DFX(uint) public static extern void glTbufferMask3DFX(uint mask) Parameters mask uint glTessellationFactorAMD(float) public static extern void glTessellationFactorAMD(float factor) Parameters factor float glTessellationModeAMD(uint) public static extern void glTessellationModeAMD(uint mode) Parameters mode uint glTestFenceAPPLE(uint) public static extern int glTestFenceAPPLE(uint fence) Parameters fence uint Returns int glTestFenceNV(uint) public static extern int glTestFenceNV(uint fence) Parameters fence uint Returns int glTestObjectAPPLE(uint, uint) public static extern int glTestObjectAPPLE(uint @object, uint name) Parameters object uint name uint Returns int glTexBuffer(uint, uint, uint) public static extern void glTexBuffer(uint target, uint internalformat, uint buffer) Parameters target uint internalformat uint buffer uint glTexBufferARB(uint, uint, uint) public static extern void glTexBufferARB(uint target, uint internalformat, uint buffer) Parameters target uint internalformat uint buffer uint glTexBufferEXT(uint, uint, uint) public static extern void glTexBufferEXT(uint target, uint internalformat, uint buffer) Parameters target uint internalformat uint buffer uint glTexBumpParameterfvATI(uint, float*) public static extern void glTexBumpParameterfvATI(uint pname, float* param) Parameters pname uint param float* glTexBumpParameterivATI(uint, int*) public static extern void glTexBumpParameterivATI(uint pname, int* param) Parameters pname uint param int* glTexCoord1d(double) public static extern void glTexCoord1d(double s) Parameters s double glTexCoord1dv(double*) public static extern void glTexCoord1dv(double* v) Parameters v double* glTexCoord1f(float) public static extern void glTexCoord1f(float s) Parameters s float glTexCoord1fv(float*) public static extern void glTexCoord1fv(float* v) Parameters v float* glTexCoord1hNV(ushort) public static extern void glTexCoord1hNV(ushort s) Parameters s ushort glTexCoord1hvNV(ushort*) public static extern void glTexCoord1hvNV(ushort* v) Parameters v ushort* glTexCoord1i(int) public static extern void glTexCoord1i(int s) Parameters s int glTexCoord1iv(int*) public static extern void glTexCoord1iv(int* v) Parameters v int* glTexCoord1s(short) public static extern void glTexCoord1s(short s) Parameters s short glTexCoord1sv(short*) public static extern void glTexCoord1sv(short* v) Parameters v short* glTexCoord2d(double, double) public static extern void glTexCoord2d(double s, double t) Parameters s double t double glTexCoord2dv(double*) public static extern void glTexCoord2dv(double* v) Parameters v double* glTexCoord2f(float, float) public static extern void glTexCoord2f(float s, float t) Parameters s float t float glTexCoord2fColor3fVertex3fSUN(float, float, float, float, float, float, float, float) public static extern void glTexCoord2fColor3fVertex3fSUN(float s, float t, float r, float g, float b, float x, float y, float z) Parameters s float t float r float g float b float x float y float z float glTexCoord2fColor3fVertex3fvSUN(float*, float*, float*) public static extern void glTexCoord2fColor3fVertex3fvSUN(float* tc, float* c, float* v) Parameters tc float* c float* v float* glTexCoord2fColor4fNormal3fVertex3fSUN(float, float, float, float, float, float, float, float, float, float, float, float) public static extern void glTexCoord2fColor4fNormal3fVertex3fSUN(float s, float t, float r, float g, float b, float a, float nx, float ny, float nz, float x, float y, float z) Parameters s float t float r float g float b float a float nx float ny float nz float x float y float z float glTexCoord2fColor4fNormal3fVertex3fvSUN(float*, float*, float*, float*) public static extern void glTexCoord2fColor4fNormal3fVertex3fvSUN(float* tc, float* c, float* n, float* v) Parameters tc float* c float* n float* v float* glTexCoord2fColor4ubVertex3fSUN(float, float, byte, byte, byte, byte, float, float, float) public static extern void glTexCoord2fColor4ubVertex3fSUN(float s, float t, byte r, byte g, byte b, byte a, float x, float y, float z) Parameters s float t float r byte g byte b byte a byte x float y float z float glTexCoord2fColor4ubVertex3fvSUN(float*, byte*, float*) public static extern void glTexCoord2fColor4ubVertex3fvSUN(float* tc, byte* c, float* v) Parameters tc float* c byte* v float* glTexCoord2fNormal3fVertex3fSUN(float, float, float, float, float, float, float, float) public static extern void glTexCoord2fNormal3fVertex3fSUN(float s, float t, float nx, float ny, float nz, float x, float y, float z) Parameters s float t float nx float ny float nz float x float y float z float glTexCoord2fNormal3fVertex3fvSUN(float*, float*, float*) public static extern void glTexCoord2fNormal3fVertex3fvSUN(float* tc, float* n, float* v) Parameters tc float* n float* v float* glTexCoord2fVertex3fSUN(float, float, float, float, float) public static extern void glTexCoord2fVertex3fSUN(float s, float t, float x, float y, float z) Parameters s float t float x float y float z float glTexCoord2fVertex3fvSUN(float*, float*) public static extern void glTexCoord2fVertex3fvSUN(float* tc, float* v) Parameters tc float* v float* glTexCoord2fv(float*) public static extern void glTexCoord2fv(float* v) Parameters v float* glTexCoord2hNV(ushort, ushort) public static extern void glTexCoord2hNV(ushort s, ushort t) Parameters s ushort t ushort glTexCoord2hvNV(ushort*) public static extern void glTexCoord2hvNV(ushort* v) Parameters v ushort* glTexCoord2i(int, int) public static extern void glTexCoord2i(int s, int t) Parameters s int t int glTexCoord2iv(int*) public static extern void glTexCoord2iv(int* v) Parameters v int* glTexCoord2s(short, short) public static extern void glTexCoord2s(short s, short t) Parameters s short t short glTexCoord2sv(short*) public static extern void glTexCoord2sv(short* v) Parameters v short* glTexCoord3d(double, double, double) public static extern void glTexCoord3d(double s, double t, double r) Parameters s double t double r double glTexCoord3dv(double*) public static extern void glTexCoord3dv(double* v) Parameters v double* glTexCoord3f(float, float, float) public static extern void glTexCoord3f(float s, float t, float r) Parameters s float t float r float glTexCoord3fv(float*) public static extern void glTexCoord3fv(float* v) Parameters v float* glTexCoord3hNV(ushort, ushort, ushort) public static extern void glTexCoord3hNV(ushort s, ushort t, ushort r) Parameters s ushort t ushort r ushort glTexCoord3hvNV(ushort*) public static extern void glTexCoord3hvNV(ushort* v) Parameters v ushort* glTexCoord3i(int, int, int) public static extern void glTexCoord3i(int s, int t, int r) Parameters s int t int r int glTexCoord3iv(int*) public static extern void glTexCoord3iv(int* v) Parameters v int* glTexCoord3s(short, short, short) public static extern void glTexCoord3s(short s, short t, short r) Parameters s short t short r short glTexCoord3sv(short*) public static extern void glTexCoord3sv(short* v) Parameters v short* glTexCoord4d(double, double, double, double) public static extern void glTexCoord4d(double s, double t, double r, double q) Parameters s double t double r double q double glTexCoord4dv(double*) public static extern void glTexCoord4dv(double* v) Parameters v double* glTexCoord4f(float, float, float, float) public static extern void glTexCoord4f(float s, float t, float r, float q) Parameters s float t float r float q float glTexCoord4fColor4fNormal3fVertex4fSUN(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float) public static extern void glTexCoord4fColor4fNormal3fVertex4fSUN(float s, float t, float p, float q, float r, float g, float b, float a, float nx, float ny, float nz, float x, float y, float z, float w) Parameters s float t float p float q float r float g float b float a float nx float ny float nz float x float y float z float w float glTexCoord4fColor4fNormal3fVertex4fvSUN(float*, float*, float*, float*) public static extern void glTexCoord4fColor4fNormal3fVertex4fvSUN(float* tc, float* c, float* n, float* v) Parameters tc float* c float* n float* v float* glTexCoord4fVertex4fSUN(float, float, float, float, float, float, float, float) public static extern void glTexCoord4fVertex4fSUN(float s, float t, float p, float q, float x, float y, float z, float w) Parameters s float t float p float q float x float y float z float w float glTexCoord4fVertex4fvSUN(float*, float*) public static extern void glTexCoord4fVertex4fvSUN(float* tc, float* v) Parameters tc float* v float* glTexCoord4fv(float*) public static extern void glTexCoord4fv(float* v) Parameters v float* glTexCoord4hNV(ushort, ushort, ushort, ushort) public static extern void glTexCoord4hNV(ushort s, ushort t, ushort r, ushort q) Parameters s ushort t ushort r ushort q ushort glTexCoord4hvNV(ushort*) public static extern void glTexCoord4hvNV(ushort* v) Parameters v ushort* glTexCoord4i(int, int, int, int) public static extern void glTexCoord4i(int s, int t, int r, int q) Parameters s int t int r int q int glTexCoord4iv(int*) public static extern void glTexCoord4iv(int* v) Parameters v int* glTexCoord4s(short, short, short, short) public static extern void glTexCoord4s(short s, short t, short r, short q) Parameters s short t short r short q short glTexCoord4sv(short*) public static extern void glTexCoord4sv(short* v) Parameters v short* glTexCoordFormatNV(int, uint, int) public static extern void glTexCoordFormatNV(int size, uint type, int stride) Parameters size int type uint stride int glTexCoordP1ui(uint, uint) public static extern void glTexCoordP1ui(uint type, uint coords) Parameters type uint coords uint glTexCoordP1uiv(uint, uint*) public static extern void glTexCoordP1uiv(uint type, uint* coords) Parameters type uint coords uint* glTexCoordP2ui(uint, uint) public static extern void glTexCoordP2ui(uint type, uint coords) Parameters type uint coords uint glTexCoordP2uiv(uint, uint*) public static extern void glTexCoordP2uiv(uint type, uint* coords) Parameters type uint coords uint* glTexCoordP3ui(uint, uint) public static extern void glTexCoordP3ui(uint type, uint coords) Parameters type uint coords uint glTexCoordP3uiv(uint, uint*) public static extern void glTexCoordP3uiv(uint type, uint* coords) Parameters type uint coords uint* glTexCoordP4ui(uint, uint) public static extern void glTexCoordP4ui(uint type, uint coords) Parameters type uint coords uint glTexCoordP4uiv(uint, uint*) public static extern void glTexCoordP4uiv(uint type, uint* coords) Parameters type uint coords uint* glTexCoordPointer(int, uint, int, nint) public static extern void glTexCoordPointer(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glTexCoordPointerEXT(int, uint, int, int, nint) public static extern void glTexCoordPointerEXT(int size, uint type, int stride, int count, nint pointer) Parameters size int type uint stride int count int pointer nint glTexCoordPointerListIBM(int, uint, int, nint, int) public static extern void glTexCoordPointerListIBM(int size, uint type, int stride, nint pointer, int ptrstride) Parameters size int type uint stride int pointer nint ptrstride int glTexCoordPointervINTEL(int, uint, nint) public static extern void glTexCoordPointervINTEL(int size, uint type, nint pointer) Parameters size int type uint pointer nint glTexEnvf(uint, uint, float) public static extern void glTexEnvf(uint target, uint pname, float param) Parameters target uint pname uint param float glTexEnvfv(uint, uint, float*) public static extern void glTexEnvfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glTexEnvi(uint, uint, int) public static extern void glTexEnvi(uint target, uint pname, int param) Parameters target uint pname uint param int glTexEnviv(uint, uint, int*) public static extern void glTexEnviv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glTexFilterFuncSGIS(uint, uint, int, float*) public static extern void glTexFilterFuncSGIS(uint target, uint filter, int n, float* weights) Parameters target uint filter uint n int weights float* glTexGend(uint, uint, double) public static extern void glTexGend(uint coord, uint pname, double param) Parameters coord uint pname uint param double glTexGendv(uint, uint, double*) public static extern void glTexGendv(uint coord, uint pname, double* @params) Parameters coord uint pname uint params double* glTexGenf(uint, uint, float) public static extern void glTexGenf(uint coord, uint pname, float param) Parameters coord uint pname uint param float glTexGenfv(uint, uint, float*) public static extern void glTexGenfv(uint coord, uint pname, float* @params) Parameters coord uint pname uint params float* glTexGeni(uint, uint, int) public static extern void glTexGeni(uint coord, uint pname, int param) Parameters coord uint pname uint param int glTexGeniv(uint, uint, int*) public static extern void glTexGeniv(uint coord, uint pname, int* @params) Parameters coord uint pname uint params int* glTexImage1D(uint, int, uint, int, int, uint, uint, nint) public static extern void glTexImage1D(uint target, int level, uint internalformat, int width, int border, uint format, uint type, nint pixels) Parameters target uint level int internalformat uint width int border int format uint type uint pixels nint glTexImage2D(uint, int, uint, int, int, int, uint, uint, nint) public static extern void glTexImage2D(uint target, int level, uint internalformat, int width, int height, int border, uint format, uint type, nint pixels) Parameters target uint level int internalformat uint width int height int border int format uint type uint pixels nint glTexImage2DMultisample(uint, int, uint, int, int, bool) public static extern void glTexImage2DMultisample(uint target, int samples, uint internalformat, int width, int height, bool fixedsamplelocations) Parameters target uint samples int internalformat uint width int height int fixedsamplelocations bool glTexImage2DMultisampleCoverageNV(uint, int, int, int, int, int, bool) public static extern void glTexImage2DMultisampleCoverageNV(uint target, int coverageSamples, int colorSamples, int internalFormat, int width, int height, bool fixedSampleLocations) Parameters target uint coverageSamples int colorSamples int internalFormat int width int height int fixedSampleLocations bool glTexImage3D(uint, int, uint, int, int, int, int, uint, uint, nint) public static extern void glTexImage3D(uint target, int level, uint internalformat, int width, int height, int depth, int border, uint format, uint type, nint pixels) Parameters target uint level int internalformat uint width int height int depth int border int format uint type uint pixels nint glTexImage3DEXT(uint, int, uint, int, int, int, int, uint, uint, nint) public static extern void glTexImage3DEXT(uint target, int level, uint internalformat, int width, int height, int depth, int border, uint format, uint type, nint pixels) Parameters target uint level int internalformat uint width int height int depth int border int format uint type uint pixels nint glTexImage3DMultisample(uint, int, uint, int, int, int, bool) public static extern void glTexImage3DMultisample(uint target, int samples, uint internalformat, int width, int height, int depth, bool fixedsamplelocations) Parameters target uint samples int internalformat uint width int height int depth int fixedsamplelocations bool glTexImage3DMultisampleCoverageNV(uint, int, int, int, int, int, int, bool) public static extern void glTexImage3DMultisampleCoverageNV(uint target, int coverageSamples, int colorSamples, int internalFormat, int width, int height, int depth, bool fixedSampleLocations) Parameters target uint coverageSamples int colorSamples int internalFormat int width int height int depth int fixedSampleLocations bool glTexImage4DSGIS(uint, int, uint, int, int, int, int, int, uint, uint, nint) public static extern void glTexImage4DSGIS(uint target, int level, uint internalformat, int width, int height, int depth, int size4d, int border, uint format, uint type, nint pixels) Parameters target uint level int internalformat uint width int height int depth int size4d int border int format uint type uint pixels nint glTexParameterIiv(uint, uint, int*) public static extern void glTexParameterIiv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glTexParameterIivEXT(uint, uint, int*) public static extern void glTexParameterIivEXT(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glTexParameterIuiv(uint, uint, uint*) public static extern void glTexParameterIuiv(uint target, uint pname, uint* @params) Parameters target uint pname uint params uint* glTexParameterIuivEXT(uint, uint, uint*) public static extern void glTexParameterIuivEXT(uint target, uint pname, uint* @params) Parameters target uint pname uint params uint* glTexParameterf(uint, uint, float) public static extern void glTexParameterf(uint target, uint pname, float param) Parameters target uint pname uint param float glTexParameterfv(uint, uint, float*) public static extern void glTexParameterfv(uint target, uint pname, float* @params) Parameters target uint pname uint params float* glTexParameteri(uint, uint, int) public static extern void glTexParameteri(uint target, uint pname, int param) Parameters target uint pname uint param int glTexParameteriv(uint, uint, int*) public static extern void glTexParameteriv(uint target, uint pname, int* @params) Parameters target uint pname uint params int* glTexRenderbufferNV(uint, uint) public static extern void glTexRenderbufferNV(uint target, uint renderbuffer) Parameters target uint renderbuffer uint glTexSubImage1D(uint, int, int, int, uint, uint, nint) public static extern void glTexSubImage1D(uint target, int level, int xoffset, int width, uint format, uint type, nint pixels) Parameters target uint level int xoffset int width int format uint type uint pixels nint glTexSubImage1DEXT(uint, int, int, int, uint, uint, nint) public static extern void glTexSubImage1DEXT(uint target, int level, int xoffset, int width, uint format, uint type, nint pixels) Parameters target uint level int xoffset int width int format uint type uint pixels nint glTexSubImage2D(uint, int, int, int, int, int, uint, uint, nint) public static extern void glTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, nint pixels) Parameters target uint level int xoffset int yoffset int width int height int format uint type uint pixels nint glTexSubImage2DEXT(uint, int, int, int, int, int, uint, uint, nint) public static extern void glTexSubImage2DEXT(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, nint pixels) Parameters target uint level int xoffset int yoffset int width int height int format uint type uint pixels nint glTexSubImage3D(uint, int, int, int, int, int, int, int, uint, uint, nint) public static extern void glTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, nint pixels) Parameters target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint type uint pixels nint glTexSubImage3DEXT(uint, int, int, int, int, int, int, int, uint, uint, nint) public static extern void glTexSubImage3DEXT(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, nint pixels) Parameters target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint type uint pixels nint glTexSubImage4DSGIS(uint, int, int, int, int, int, int, int, int, int, uint, uint, nint) public static extern void glTexSubImage4DSGIS(uint target, int level, int xoffset, int yoffset, int zoffset, int woffset, int width, int height, int depth, int size4d, uint format, uint type, nint pixels) Parameters target uint level int xoffset int yoffset int zoffset int woffset int width int height int depth int size4d int format uint type uint pixels nint glTextureBarrierNV() public static extern void glTextureBarrierNV() glTextureBufferEXT(uint, uint, uint, uint) public static extern void glTextureBufferEXT(uint texture, uint target, uint internalformat, uint buffer) Parameters texture uint target uint internalformat uint buffer uint glTextureColorMaskSGIS(bool, bool, bool, bool) public static extern void glTextureColorMaskSGIS(bool red, bool green, bool blue, bool alpha) Parameters red bool green bool blue bool alpha bool glTextureImage1DEXT(uint, uint, int, uint, int, int, uint, uint, nint) public static extern void glTextureImage1DEXT(uint texture, uint target, int level, uint internalformat, int width, int border, uint format, uint type, nint pixels) Parameters texture uint target uint level int internalformat uint width int border int format uint type uint pixels nint glTextureImage2DEXT(uint, uint, int, uint, int, int, int, uint, uint, nint) public static extern void glTextureImage2DEXT(uint texture, uint target, int level, uint internalformat, int width, int height, int border, uint format, uint type, nint pixels) Parameters texture uint target uint level int internalformat uint width int height int border int format uint type uint pixels nint glTextureImage2DMultisampleCoverageNV(uint, uint, int, int, int, int, int, bool) public static extern void glTextureImage2DMultisampleCoverageNV(uint texture, uint target, int coverageSamples, int colorSamples, int internalFormat, int width, int height, bool fixedSampleLocations) Parameters texture uint target uint coverageSamples int colorSamples int internalFormat int width int height int fixedSampleLocations bool glTextureImage2DMultisampleNV(uint, uint, int, int, int, int, bool) public static extern void glTextureImage2DMultisampleNV(uint texture, uint target, int samples, int internalFormat, int width, int height, bool fixedSampleLocations) Parameters texture uint target uint samples int internalFormat int width int height int fixedSampleLocations bool glTextureImage3DEXT(uint, uint, int, uint, int, int, int, int, uint, uint, nint) public static extern void glTextureImage3DEXT(uint texture, uint target, int level, uint internalformat, int width, int height, int depth, int border, uint format, uint type, nint pixels) Parameters texture uint target uint level int internalformat uint width int height int depth int border int format uint type uint pixels nint glTextureImage3DMultisampleCoverageNV(uint, uint, int, int, int, int, int, int, bool) public static extern void glTextureImage3DMultisampleCoverageNV(uint texture, uint target, int coverageSamples, int colorSamples, int internalFormat, int width, int height, int depth, bool fixedSampleLocations) Parameters texture uint target uint coverageSamples int colorSamples int internalFormat int width int height int depth int fixedSampleLocations bool glTextureImage3DMultisampleNV(uint, uint, int, int, int, int, int, bool) public static extern void glTextureImage3DMultisampleNV(uint texture, uint target, int samples, int internalFormat, int width, int height, int depth, bool fixedSampleLocations) Parameters texture uint target uint samples int internalFormat int width int height int depth int fixedSampleLocations bool glTextureLightEXT(uint) public static extern void glTextureLightEXT(uint pname) Parameters pname uint glTextureMaterialEXT(uint, uint) public static extern void glTextureMaterialEXT(uint face, uint mode) Parameters face uint mode uint glTextureNormalEXT(uint) public static extern void glTextureNormalEXT(uint mode) Parameters mode uint glTextureParameterIivEXT(uint, uint, uint, int*) public static extern void glTextureParameterIivEXT(uint texture, uint target, uint pname, int* @params) Parameters texture uint target uint pname uint params int* glTextureParameterIuivEXT(uint, uint, uint, uint*) public static extern void glTextureParameterIuivEXT(uint texture, uint target, uint pname, uint* @params) Parameters texture uint target uint pname uint params uint* glTextureParameterfEXT(uint, uint, uint, float) public static extern void glTextureParameterfEXT(uint texture, uint target, uint pname, float param) Parameters texture uint target uint pname uint param float glTextureParameterfvEXT(uint, uint, uint, float*) public static extern void glTextureParameterfvEXT(uint texture, uint target, uint pname, float* @params) Parameters texture uint target uint pname uint params float* glTextureParameteriEXT(uint, uint, uint, int) public static extern void glTextureParameteriEXT(uint texture, uint target, uint pname, int param) Parameters texture uint target uint pname uint param int glTextureParameterivEXT(uint, uint, uint, int*) public static extern void glTextureParameterivEXT(uint texture, uint target, uint pname, int* @params) Parameters texture uint target uint pname uint params int* glTextureRangeAPPLE(uint, int, nint) public static extern void glTextureRangeAPPLE(uint target, int length, nint pointer) Parameters target uint length int pointer nint glTextureRenderbufferEXT(uint, uint, uint) public static extern void glTextureRenderbufferEXT(uint texture, uint target, uint renderbuffer) Parameters texture uint target uint renderbuffer uint glTextureSubImage1DEXT(uint, uint, int, int, int, uint, uint, nint) public static extern void glTextureSubImage1DEXT(uint texture, uint target, int level, int xoffset, int width, uint format, uint type, nint pixels) Parameters texture uint target uint level int xoffset int width int format uint type uint pixels nint glTextureSubImage2DEXT(uint, uint, int, int, int, int, int, uint, uint, nint) public static extern void glTextureSubImage2DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, nint pixels) Parameters texture uint target uint level int xoffset int yoffset int width int height int format uint type uint pixels nint glTextureSubImage3DEXT(uint, uint, int, int, int, int, int, int, int, uint, uint, nint) public static extern void glTextureSubImage3DEXT(uint texture, uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, nint pixels) Parameters texture uint target uint level int xoffset int yoffset int zoffset int width int height int depth int format uint type uint pixels nint glTrackMatrixNV(uint, uint, uint, uint) public static extern void glTrackMatrixNV(uint target, uint address, uint matrix, uint transform) Parameters target uint address uint matrix uint transform uint glTransformFeedbackAttribsNV(uint, int*, uint) public static extern void glTransformFeedbackAttribsNV(uint count, int* attribs, uint bufferMode) Parameters count uint attribs int* bufferMode uint glTransformFeedbackStreamAttribsNV(int, int*, int, int*, uint) public static extern void glTransformFeedbackStreamAttribsNV(int count, int* attribs, int nbuffers, int* bufstreams, uint bufferMode) Parameters count int attribs int* nbuffers int bufstreams int* bufferMode uint glTransformFeedbackVaryings(uint, int, string[], uint) public static extern void glTransformFeedbackVaryings(uint program, int count, string[] varyings, uint bufferMode) Parameters program uint count int varyings string[] bufferMode uint glTransformFeedbackVaryingsEXT(uint, int, string[], uint) public static extern void glTransformFeedbackVaryingsEXT(uint program, int count, string[] varyings, uint bufferMode) Parameters program uint count int varyings string[] bufferMode uint glTransformFeedbackVaryingsNV(uint, int, int*, uint) public static extern void glTransformFeedbackVaryingsNV(uint program, int count, int* locations, uint bufferMode) Parameters program uint count int locations int* bufferMode uint glTranslated(double, double, double) public static extern void glTranslated(double x, double y, double z) Parameters x double y double z double glTranslatef(float, float, float) public static extern void glTranslatef(float x, float y, float z) Parameters x float y float z float glUniform1d(int, double) public static extern void glUniform1d(int location, double x) Parameters location int x double glUniform1dv(int, int, double*) public static extern void glUniform1dv(int location, int count, double* value) Parameters location int count int value double* glUniform1f(int, float) public static extern void glUniform1f(int location, float v0) Parameters location int v0 float glUniform1fARB(int, float) public static extern void glUniform1fARB(int location, float v0) Parameters location int v0 float glUniform1fv(int, int, float*) public static extern void glUniform1fv(int location, int count, float* value) Parameters location int count int value float* glUniform1fvARB(int, int, float*) public static extern void glUniform1fvARB(int location, int count, float* value) Parameters location int count int value float* glUniform1i(int, int) public static extern void glUniform1i(int location, int v0) Parameters location int v0 int glUniform1i64NV(int, long) public static extern void glUniform1i64NV(int location, long x) Parameters location int x long glUniform1i64vNV(int, int, long*) public static extern void glUniform1i64vNV(int location, int count, long* value) Parameters location int count int value long* glUniform1iARB(int, int) public static extern void glUniform1iARB(int location, int v0) Parameters location int v0 int glUniform1iv(int, int, int*) public static extern void glUniform1iv(int location, int count, int* value) Parameters location int count int value int* glUniform1ivARB(int, int, int*) public static extern void glUniform1ivARB(int location, int count, int* value) Parameters location int count int value int* glUniform1ui(int, uint) public static extern void glUniform1ui(int location, uint v0) Parameters location int v0 uint glUniform1ui64NV(int, ulong) public static extern void glUniform1ui64NV(int location, ulong x) Parameters location int x ulong glUniform1ui64vNV(int, int, ulong*) public static extern void glUniform1ui64vNV(int location, int count, ulong* value) Parameters location int count int value ulong* glUniform1uiEXT(int, uint) public static extern void glUniform1uiEXT(int location, uint v0) Parameters location int v0 uint glUniform1uiv(int, int, uint*) public static extern void glUniform1uiv(int location, int count, uint* value) Parameters location int count int value uint* glUniform1uivEXT(int, int, uint*) public static extern void glUniform1uivEXT(int location, int count, uint* value) Parameters location int count int value uint* glUniform2d(int, double, double) public static extern void glUniform2d(int location, double x, double y) Parameters location int x double y double glUniform2dv(int, int, double*) public static extern void glUniform2dv(int location, int count, double* value) Parameters location int count int value double* glUniform2f(int, float, float) public static extern void glUniform2f(int location, float v0, float v1) Parameters location int v0 float v1 float glUniform2fARB(int, float, float) public static extern void glUniform2fARB(int location, float v0, float v1) Parameters location int v0 float v1 float glUniform2fv(int, int, float*) public static extern void glUniform2fv(int location, int count, float* value) Parameters location int count int value float* glUniform2fvARB(int, int, float*) public static extern void glUniform2fvARB(int location, int count, float* value) Parameters location int count int value float* glUniform2i(int, int, int) public static extern void glUniform2i(int location, int v0, int v1) Parameters location int v0 int v1 int glUniform2i64NV(int, long, long) public static extern void glUniform2i64NV(int location, long x, long y) Parameters location int x long y long glUniform2i64vNV(int, int, long*) public static extern void glUniform2i64vNV(int location, int count, long* value) Parameters location int count int value long* glUniform2iARB(int, int, int) public static extern void glUniform2iARB(int location, int v0, int v1) Parameters location int v0 int v1 int glUniform2iv(int, int, int*) public static extern void glUniform2iv(int location, int count, int* value) Parameters location int count int value int* glUniform2ivARB(int, int, int*) public static extern void glUniform2ivARB(int location, int count, int* value) Parameters location int count int value int* glUniform2ui(int, uint, uint) public static extern void glUniform2ui(int location, uint v0, uint v1) Parameters location int v0 uint v1 uint glUniform2ui64NV(int, ulong, ulong) public static extern void glUniform2ui64NV(int location, ulong x, ulong y) Parameters location int x ulong y ulong glUniform2ui64vNV(int, int, ulong*) public static extern void glUniform2ui64vNV(int location, int count, ulong* value) Parameters location int count int value ulong* glUniform2uiEXT(int, uint, uint) public static extern void glUniform2uiEXT(int location, uint v0, uint v1) Parameters location int v0 uint v1 uint glUniform2uiv(int, int, uint*) public static extern void glUniform2uiv(int location, int count, uint* value) Parameters location int count int value uint* glUniform2uivEXT(int, int, uint*) public static extern void glUniform2uivEXT(int location, int count, uint* value) Parameters location int count int value uint* glUniform3d(int, double, double, double) public static extern void glUniform3d(int location, double x, double y, double z) Parameters location int x double y double z double glUniform3dv(int, int, double*) public static extern void glUniform3dv(int location, int count, double* value) Parameters location int count int value double* glUniform3f(int, float, float, float) public static extern void glUniform3f(int location, float v0, float v1, float v2) Parameters location int v0 float v1 float v2 float glUniform3fARB(int, float, float, float) public static extern void glUniform3fARB(int location, float v0, float v1, float v2) Parameters location int v0 float v1 float v2 float glUniform3fv(int, int, float*) public static extern void glUniform3fv(int location, int count, float* value) Parameters location int count int value float* glUniform3fvARB(int, int, float*) public static extern void glUniform3fvARB(int location, int count, float* value) Parameters location int count int value float* glUniform3i(int, int, int, int) public static extern void glUniform3i(int location, int v0, int v1, int v2) Parameters location int v0 int v1 int v2 int glUniform3i64NV(int, long, long, long) public static extern void glUniform3i64NV(int location, long x, long y, long z) Parameters location int x long y long z long glUniform3i64vNV(int, int, long*) public static extern void glUniform3i64vNV(int location, int count, long* value) Parameters location int count int value long* glUniform3iARB(int, int, int, int) public static extern void glUniform3iARB(int location, int v0, int v1, int v2) Parameters location int v0 int v1 int v2 int glUniform3iv(int, int, int*) public static extern void glUniform3iv(int location, int count, int* value) Parameters location int count int value int* glUniform3ivARB(int, int, int*) public static extern void glUniform3ivARB(int location, int count, int* value) Parameters location int count int value int* glUniform3ui(int, uint, uint, uint) public static extern void glUniform3ui(int location, uint v0, uint v1, uint v2) Parameters location int v0 uint v1 uint v2 uint glUniform3ui64NV(int, ulong, ulong, ulong) public static extern void glUniform3ui64NV(int location, ulong x, ulong y, ulong z) Parameters location int x ulong y ulong z ulong glUniform3ui64vNV(int, int, ulong*) public static extern void glUniform3ui64vNV(int location, int count, ulong* value) Parameters location int count int value ulong* glUniform3uiEXT(int, uint, uint, uint) public static extern void glUniform3uiEXT(int location, uint v0, uint v1, uint v2) Parameters location int v0 uint v1 uint v2 uint glUniform3uiv(int, int, uint*) public static extern void glUniform3uiv(int location, int count, uint* value) Parameters location int count int value uint* glUniform3uivEXT(int, int, uint*) public static extern void glUniform3uivEXT(int location, int count, uint* value) Parameters location int count int value uint* glUniform4d(int, double, double, double, double) public static extern void glUniform4d(int location, double x, double y, double z, double w) Parameters location int x double y double z double w double glUniform4dv(int, int, double*) public static extern void glUniform4dv(int location, int count, double* value) Parameters location int count int value double* glUniform4f(int, float, float, float, float) public static extern void glUniform4f(int location, float v0, float v1, float v2, float v3) Parameters location int v0 float v1 float v2 float v3 float glUniform4fARB(int, float, float, float, float) public static extern void glUniform4fARB(int location, float v0, float v1, float v2, float v3) Parameters location int v0 float v1 float v2 float v3 float glUniform4fv(int, int, float*) public static extern void glUniform4fv(int location, int count, float* value) Parameters location int count int value float* glUniform4fvARB(int, int, float*) public static extern void glUniform4fvARB(int location, int count, float* value) Parameters location int count int value float* glUniform4i(int, int, int, int, int) public static extern void glUniform4i(int location, int v0, int v1, int v2, int v3) Parameters location int v0 int v1 int v2 int v3 int glUniform4i64NV(int, long, long, long, long) public static extern void glUniform4i64NV(int location, long x, long y, long z, long w) Parameters location int x long y long z long w long glUniform4i64vNV(int, int, long*) public static extern void glUniform4i64vNV(int location, int count, long* value) Parameters location int count int value long* glUniform4iARB(int, int, int, int, int) public static extern void glUniform4iARB(int location, int v0, int v1, int v2, int v3) Parameters location int v0 int v1 int v2 int v3 int glUniform4iv(int, int, int*) public static extern void glUniform4iv(int location, int count, int* value) Parameters location int count int value int* glUniform4ivARB(int, int, int*) public static extern void glUniform4ivARB(int location, int count, int* value) Parameters location int count int value int* glUniform4ui(int, uint, uint, uint, uint) public static extern void glUniform4ui(int location, uint v0, uint v1, uint v2, uint v3) Parameters location int v0 uint v1 uint v2 uint v3 uint glUniform4ui64NV(int, ulong, ulong, ulong, ulong) public static extern void glUniform4ui64NV(int location, ulong x, ulong y, ulong z, ulong w) Parameters location int x ulong y ulong z ulong w ulong glUniform4ui64vNV(int, int, ulong*) public static extern void glUniform4ui64vNV(int location, int count, ulong* value) Parameters location int count int value ulong* glUniform4uiEXT(int, uint, uint, uint, uint) public static extern void glUniform4uiEXT(int location, uint v0, uint v1, uint v2, uint v3) Parameters location int v0 uint v1 uint v2 uint v3 uint glUniform4uiv(int, int, uint*) public static extern void glUniform4uiv(int location, int count, uint* value) Parameters location int count int value uint* glUniform4uivEXT(int, int, uint*) public static extern void glUniform4uivEXT(int location, int count, uint* value) Parameters location int count int value uint* glUniformBlockBinding(uint, uint, uint) public static extern void glUniformBlockBinding(uint program, uint uniformBlockIndex, uint uniformBlockBinding) Parameters program uint uniformBlockIndex uint uniformBlockBinding uint glUniformBufferEXT(uint, int, uint) public static extern void glUniformBufferEXT(uint program, int location, uint buffer) Parameters program uint location int buffer uint glUniformMatrix2dv(int, int, bool, double*) public static extern void glUniformMatrix2dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix2fv(int, int, bool, float*) public static extern void glUniformMatrix2fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix2fvARB(int, int, bool, float*) public static extern void glUniformMatrix2fvARB(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix2x3dv(int, int, bool, double*) public static extern void glUniformMatrix2x3dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix2x3fv(int, int, bool, float*) public static extern void glUniformMatrix2x3fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix2x4dv(int, int, bool, double*) public static extern void glUniformMatrix2x4dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix2x4fv(int, int, bool, float*) public static extern void glUniformMatrix2x4fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix3dv(int, int, bool, double*) public static extern void glUniformMatrix3dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix3fv(int, int, bool, float*) public static extern void glUniformMatrix3fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix3fvARB(int, int, bool, float*) public static extern void glUniformMatrix3fvARB(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix3x2dv(int, int, bool, double*) public static extern void glUniformMatrix3x2dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix3x2fv(int, int, bool, float*) public static extern void glUniformMatrix3x2fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix3x4dv(int, int, bool, double*) public static extern void glUniformMatrix3x4dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix3x4fv(int, int, bool, float*) public static extern void glUniformMatrix3x4fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix4dv(int, int, bool, double*) public static extern void glUniformMatrix4dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix4fv(int, int, bool, float*) public static extern void glUniformMatrix4fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix4fvARB(int, int, bool, float*) public static extern void glUniformMatrix4fvARB(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix4x2dv(int, int, bool, double*) public static extern void glUniformMatrix4x2dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix4x2fv(int, int, bool, float*) public static extern void glUniformMatrix4x2fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformMatrix4x3dv(int, int, bool, double*) public static extern void glUniformMatrix4x3dv(int location, int count, bool transpose, double* value) Parameters location int count int transpose bool value double* glUniformMatrix4x3fv(int, int, bool, float*) public static extern void glUniformMatrix4x3fv(int location, int count, bool transpose, float* value) Parameters location int count int transpose bool value float* glUniformSubroutinesuiv(uint, int, uint*) public static extern void glUniformSubroutinesuiv(uint shadertype, int count, uint* indices) Parameters shadertype uint count int indices uint* glUniformui64NV(int, ulong) public static extern void glUniformui64NV(int location, ulong value) Parameters location int value ulong glUniformui64vNV(int, int, ulong*) public static extern void glUniformui64vNV(int location, int count, ulong* value) Parameters location int count int value ulong* glUnlockArraysEXT() public static extern void glUnlockArraysEXT() glUnmapBuffer(uint) public static extern int glUnmapBuffer(uint target) Parameters target uint Returns int glUnmapBufferARB(uint) public static extern int glUnmapBufferARB(uint target) Parameters target uint Returns int glUnmapNamedBufferEXT(uint) public static extern int glUnmapNamedBufferEXT(uint buffer) Parameters buffer uint Returns int glUnmapObjectBufferATI(uint) public static extern void glUnmapObjectBufferATI(uint buffer) Parameters buffer uint glUpdateObjectBufferATI(uint, uint, int, nint, uint) public static extern void glUpdateObjectBufferATI(uint buffer, uint offset, int size, nint pointer, uint preserve) Parameters buffer uint offset uint size int pointer nint preserve uint glUseProgram(uint) public static extern void glUseProgram(uint program) Parameters program uint glUseProgramObjectARB(uint) public static extern void glUseProgramObjectARB(uint programObj) Parameters programObj uint glUseProgramStages(uint, uint, uint) public static extern void glUseProgramStages(uint pipeline, uint stages, uint program) Parameters pipeline uint stages uint program uint glUseShaderProgramEXT(uint, uint) public static extern void glUseShaderProgramEXT(uint type, uint program) Parameters type uint program uint glVDPAUFiniNV() public static extern void glVDPAUFiniNV() glVDPAUGetSurfaceivNV(nint, uint, int, int*, int*) public static extern void glVDPAUGetSurfaceivNV(nint surface, uint pname, int bufSize, int* length, int* values) Parameters surface nint pname uint bufSize int length int* values int* glVDPAUInitNV(nint, nint) public static extern void glVDPAUInitNV(nint vdpDevice, nint getProcAddress) Parameters vdpDevice nint getProcAddress nint glVDPAUIsSurfaceNV(nint) public static extern void glVDPAUIsSurfaceNV(nint surface) Parameters surface nint glVDPAUMapSurfacesNV(int, nint*) public static extern void glVDPAUMapSurfacesNV(int numSurfaces, nint* surfaces) Parameters numSurfaces int surfaces nint* glVDPAURegisterOutputSurfaceNV(nint, uint, int, uint*) public static extern nint glVDPAURegisterOutputSurfaceNV(nint vdpSurface, uint target, int numTextureNames, uint* textureNames) Parameters vdpSurface nint target uint numTextureNames int textureNames uint* Returns nint glVDPAURegisterVideoSurfaceNV(nint, uint, int, uint*) public static extern nint glVDPAURegisterVideoSurfaceNV(nint vdpSurface, uint target, int numTextureNames, uint* textureNames) Parameters vdpSurface nint target uint numTextureNames int textureNames uint* Returns nint glVDPAUSurfaceAccessNV(nint, uint) public static extern void glVDPAUSurfaceAccessNV(nint surface, uint access) Parameters surface nint access uint glVDPAUUnmapSurfacesNV(int, nint*) public static extern void glVDPAUUnmapSurfacesNV(int numSurface, nint* surfaces) Parameters numSurface int surfaces nint* glVDPAUUnregisterSurfaceNV(nint) public static extern void glVDPAUUnregisterSurfaceNV(nint surface) Parameters surface nint glValidateProgram(uint) public static extern void glValidateProgram(uint program) Parameters program uint glValidateProgramARB(uint) public static extern void glValidateProgramARB(uint programObj) Parameters programObj uint glValidateProgramPipeline(uint) public static extern void glValidateProgramPipeline(uint pipeline) Parameters pipeline uint glVariantArrayObjectATI(uint, uint, int, uint, uint) public static extern void glVariantArrayObjectATI(uint id, uint type, int stride, uint buffer, uint offset) Parameters id uint type uint stride int buffer uint offset uint glVariantPointerEXT(uint, uint, uint, nint) public static extern void glVariantPointerEXT(uint id, uint type, uint stride, nint addr) Parameters id uint type uint stride uint addr nint glVariantbvEXT(uint, sbyte*) public static extern void glVariantbvEXT(uint id, sbyte* addr) Parameters id uint addr sbyte* glVariantdvEXT(uint, double*) public static extern void glVariantdvEXT(uint id, double* addr) Parameters id uint addr double* glVariantfvEXT(uint, float*) public static extern void glVariantfvEXT(uint id, float* addr) Parameters id uint addr float* glVariantivEXT(uint, int*) public static extern void glVariantivEXT(uint id, int* addr) Parameters id uint addr int* glVariantsvEXT(uint, short*) public static extern void glVariantsvEXT(uint id, short* addr) Parameters id uint addr short* glVariantubvEXT(uint, byte*) public static extern void glVariantubvEXT(uint id, byte* addr) Parameters id uint addr byte* glVariantuivEXT(uint, uint*) public static extern void glVariantuivEXT(uint id, uint* addr) Parameters id uint addr uint* glVariantusvEXT(uint, ushort*) public static extern void glVariantusvEXT(uint id, ushort* addr) Parameters id uint addr ushort* glVertex2d(double, double) public static extern void glVertex2d(double x, double y) Parameters x double y double glVertex2dv(double*) public static extern void glVertex2dv(double* v) Parameters v double* glVertex2f(float, float) public static extern void glVertex2f(float x, float y) Parameters x float y float glVertex2fv(float*) public static extern void glVertex2fv(float* v) Parameters v float* glVertex2hNV(ushort, ushort) public static extern void glVertex2hNV(ushort x, ushort y) Parameters x ushort y ushort glVertex2hvNV(ushort*) public static extern void glVertex2hvNV(ushort* v) Parameters v ushort* glVertex2i(int, int) public static extern void glVertex2i(int x, int y) Parameters x int y int glVertex2iv(int*) public static extern void glVertex2iv(int* v) Parameters v int* glVertex2s(short, short) public static extern void glVertex2s(short x, short y) Parameters x short y short glVertex2sv(short*) public static extern void glVertex2sv(short* v) Parameters v short* glVertex3d(double, double, double) public static extern void glVertex3d(double x, double y, double z) Parameters x double y double z double glVertex3dv(double*) public static extern void glVertex3dv(double* v) Parameters v double* glVertex3f(float, float, float) public static extern void glVertex3f(float x, float y, float z) Parameters x float y float z float glVertex3fv(float*) public static extern void glVertex3fv(float* v) Parameters v float* glVertex3hNV(ushort, ushort, ushort) public static extern void glVertex3hNV(ushort x, ushort y, ushort z) Parameters x ushort y ushort z ushort glVertex3hvNV(ushort*) public static extern void glVertex3hvNV(ushort* v) Parameters v ushort* glVertex3i(int, int, int) public static extern void glVertex3i(int x, int y, int z) Parameters x int y int z int glVertex3iv(int*) public static extern void glVertex3iv(int* v) Parameters v int* glVertex3s(short, short, short) public static extern void glVertex3s(short x, short y, short z) Parameters x short y short z short glVertex3sv(short*) public static extern void glVertex3sv(short* v) Parameters v short* glVertex4d(double, double, double, double) public static extern void glVertex4d(double x, double y, double z, double w) Parameters x double y double z double w double glVertex4dv(double*) public static extern void glVertex4dv(double* v) Parameters v double* glVertex4f(float, float, float, float) public static extern void glVertex4f(float x, float y, float z, float w) Parameters x float y float z float w float glVertex4fv(float*) public static extern void glVertex4fv(float* v) Parameters v float* glVertex4hNV(ushort, ushort, ushort, ushort) public static extern void glVertex4hNV(ushort x, ushort y, ushort z, ushort w) Parameters x ushort y ushort z ushort w ushort glVertex4hvNV(ushort*) public static extern void glVertex4hvNV(ushort* v) Parameters v ushort* glVertex4i(int, int, int, int) public static extern void glVertex4i(int x, int y, int z, int w) Parameters x int y int z int w int glVertex4iv(int*) public static extern void glVertex4iv(int* v) Parameters v int* glVertex4s(short, short, short, short) public static extern void glVertex4s(short x, short y, short z, short w) Parameters x short y short z short w short glVertex4sv(short*) public static extern void glVertex4sv(short* v) Parameters v short* glVertexArrayParameteriAPPLE(uint, int) public static extern void glVertexArrayParameteriAPPLE(uint pname, int param) Parameters pname uint param int glVertexArrayRangeAPPLE(int, nint) public static extern void glVertexArrayRangeAPPLE(int length, nint pointer) Parameters length int pointer nint glVertexArrayRangeNV(int, nint) public static extern void glVertexArrayRangeNV(int length, nint pointer) Parameters length int pointer nint glVertexArrayVertexAttribLOffsetEXT(uint, uint, uint, int, uint, int, nint) public static extern void glVertexArrayVertexAttribLOffsetEXT(uint vaobj, uint buffer, uint index, int size, uint type, int stride, nint offset) Parameters vaobj uint buffer uint index uint size int type uint stride int offset nint glVertexAttrib1d(uint, double) public static extern void glVertexAttrib1d(uint index, double x) Parameters index uint x double glVertexAttrib1dARB(uint, double) public static extern void glVertexAttrib1dARB(uint index, double x) Parameters index uint x double glVertexAttrib1dNV(uint, double) public static extern void glVertexAttrib1dNV(uint index, double x) Parameters index uint x double glVertexAttrib1dv(uint, double*) public static extern void glVertexAttrib1dv(uint index, double* v) Parameters index uint v double* glVertexAttrib1dvARB(uint, double*) public static extern void glVertexAttrib1dvARB(uint index, double* v) Parameters index uint v double* glVertexAttrib1dvNV(uint, double*) public static extern void glVertexAttrib1dvNV(uint index, double* v) Parameters index uint v double* glVertexAttrib1f(uint, float) public static extern void glVertexAttrib1f(uint index, float x) Parameters index uint x float glVertexAttrib1fARB(uint, float) public static extern void glVertexAttrib1fARB(uint index, float x) Parameters index uint x float glVertexAttrib1fNV(uint, float) public static extern void glVertexAttrib1fNV(uint index, float x) Parameters index uint x float glVertexAttrib1fv(uint, float*) public static extern void glVertexAttrib1fv(uint index, float* v) Parameters index uint v float* glVertexAttrib1fvARB(uint, float*) public static extern void glVertexAttrib1fvARB(uint index, float* v) Parameters index uint v float* glVertexAttrib1fvNV(uint, float*) public static extern void glVertexAttrib1fvNV(uint index, float* v) Parameters index uint v float* glVertexAttrib1hNV(uint, ushort) public static extern void glVertexAttrib1hNV(uint index, ushort x) Parameters index uint x ushort glVertexAttrib1hvNV(uint, ushort*) public static extern void glVertexAttrib1hvNV(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib1s(uint, short) public static extern void glVertexAttrib1s(uint index, short x) Parameters index uint x short glVertexAttrib1sARB(uint, short) public static extern void glVertexAttrib1sARB(uint index, short x) Parameters index uint x short glVertexAttrib1sNV(uint, short) public static extern void glVertexAttrib1sNV(uint index, short x) Parameters index uint x short glVertexAttrib1sv(uint, short*) public static extern void glVertexAttrib1sv(uint index, short* v) Parameters index uint v short* glVertexAttrib1svARB(uint, short*) public static extern void glVertexAttrib1svARB(uint index, short* v) Parameters index uint v short* glVertexAttrib1svNV(uint, short*) public static extern void glVertexAttrib1svNV(uint index, short* v) Parameters index uint v short* glVertexAttrib2d(uint, double, double) public static extern void glVertexAttrib2d(uint index, double x, double y) Parameters index uint x double y double glVertexAttrib2dARB(uint, double, double) public static extern void glVertexAttrib2dARB(uint index, double x, double y) Parameters index uint x double y double glVertexAttrib2dNV(uint, double, double) public static extern void glVertexAttrib2dNV(uint index, double x, double y) Parameters index uint x double y double glVertexAttrib2dv(uint, double*) public static extern void glVertexAttrib2dv(uint index, double* v) Parameters index uint v double* glVertexAttrib2dvARB(uint, double*) public static extern void glVertexAttrib2dvARB(uint index, double* v) Parameters index uint v double* glVertexAttrib2dvNV(uint, double*) public static extern void glVertexAttrib2dvNV(uint index, double* v) Parameters index uint v double* glVertexAttrib2f(uint, float, float) public static extern void glVertexAttrib2f(uint index, float x, float y) Parameters index uint x float y float glVertexAttrib2fARB(uint, float, float) public static extern void glVertexAttrib2fARB(uint index, float x, float y) Parameters index uint x float y float glVertexAttrib2fNV(uint, float, float) public static extern void glVertexAttrib2fNV(uint index, float x, float y) Parameters index uint x float y float glVertexAttrib2fv(uint, float*) public static extern void glVertexAttrib2fv(uint index, float* v) Parameters index uint v float* glVertexAttrib2fvARB(uint, float*) public static extern void glVertexAttrib2fvARB(uint index, float* v) Parameters index uint v float* glVertexAttrib2fvNV(uint, float*) public static extern void glVertexAttrib2fvNV(uint index, float* v) Parameters index uint v float* glVertexAttrib2hNV(uint, ushort, ushort) public static extern void glVertexAttrib2hNV(uint index, ushort x, ushort y) Parameters index uint x ushort y ushort glVertexAttrib2hvNV(uint, ushort*) public static extern void glVertexAttrib2hvNV(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib2s(uint, short, short) public static extern void glVertexAttrib2s(uint index, short x, short y) Parameters index uint x short y short glVertexAttrib2sARB(uint, short, short) public static extern void glVertexAttrib2sARB(uint index, short x, short y) Parameters index uint x short y short glVertexAttrib2sNV(uint, short, short) public static extern void glVertexAttrib2sNV(uint index, short x, short y) Parameters index uint x short y short glVertexAttrib2sv(uint, short*) public static extern void glVertexAttrib2sv(uint index, short* v) Parameters index uint v short* glVertexAttrib2svARB(uint, short*) public static extern void glVertexAttrib2svARB(uint index, short* v) Parameters index uint v short* glVertexAttrib2svNV(uint, short*) public static extern void glVertexAttrib2svNV(uint index, short* v) Parameters index uint v short* glVertexAttrib3d(uint, double, double, double) public static extern void glVertexAttrib3d(uint index, double x, double y, double z) Parameters index uint x double y double z double glVertexAttrib3dARB(uint, double, double, double) public static extern void glVertexAttrib3dARB(uint index, double x, double y, double z) Parameters index uint x double y double z double glVertexAttrib3dNV(uint, double, double, double) public static extern void glVertexAttrib3dNV(uint index, double x, double y, double z) Parameters index uint x double y double z double glVertexAttrib3dv(uint, double*) public static extern void glVertexAttrib3dv(uint index, double* v) Parameters index uint v double* glVertexAttrib3dvARB(uint, double*) public static extern void glVertexAttrib3dvARB(uint index, double* v) Parameters index uint v double* glVertexAttrib3dvNV(uint, double*) public static extern void glVertexAttrib3dvNV(uint index, double* v) Parameters index uint v double* glVertexAttrib3f(uint, float, float, float) public static extern void glVertexAttrib3f(uint index, float x, float y, float z) Parameters index uint x float y float z float glVertexAttrib3fARB(uint, float, float, float) public static extern void glVertexAttrib3fARB(uint index, float x, float y, float z) Parameters index uint x float y float z float glVertexAttrib3fNV(uint, float, float, float) public static extern void glVertexAttrib3fNV(uint index, float x, float y, float z) Parameters index uint x float y float z float glVertexAttrib3fv(uint, float*) public static extern void glVertexAttrib3fv(uint index, float* v) Parameters index uint v float* glVertexAttrib3fvARB(uint, float*) public static extern void glVertexAttrib3fvARB(uint index, float* v) Parameters index uint v float* glVertexAttrib3fvNV(uint, float*) public static extern void glVertexAttrib3fvNV(uint index, float* v) Parameters index uint v float* glVertexAttrib3hNV(uint, ushort, ushort, ushort) public static extern void glVertexAttrib3hNV(uint index, ushort x, ushort y, ushort z) Parameters index uint x ushort y ushort z ushort glVertexAttrib3hvNV(uint, ushort*) public static extern void glVertexAttrib3hvNV(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib3s(uint, short, short, short) public static extern void glVertexAttrib3s(uint index, short x, short y, short z) Parameters index uint x short y short z short glVertexAttrib3sARB(uint, short, short, short) public static extern void glVertexAttrib3sARB(uint index, short x, short y, short z) Parameters index uint x short y short z short glVertexAttrib3sNV(uint, short, short, short) public static extern void glVertexAttrib3sNV(uint index, short x, short y, short z) Parameters index uint x short y short z short glVertexAttrib3sv(uint, short*) public static extern void glVertexAttrib3sv(uint index, short* v) Parameters index uint v short* glVertexAttrib3svARB(uint, short*) public static extern void glVertexAttrib3svARB(uint index, short* v) Parameters index uint v short* glVertexAttrib3svNV(uint, short*) public static extern void glVertexAttrib3svNV(uint index, short* v) Parameters index uint v short* glVertexAttrib4Nbv(uint, sbyte*) public static extern void glVertexAttrib4Nbv(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttrib4NbvARB(uint, sbyte*) public static extern void glVertexAttrib4NbvARB(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttrib4Niv(uint, int*) public static extern void glVertexAttrib4Niv(uint index, int* v) Parameters index uint v int* glVertexAttrib4NivARB(uint, int*) public static extern void glVertexAttrib4NivARB(uint index, int* v) Parameters index uint v int* glVertexAttrib4Nsv(uint, short*) public static extern void glVertexAttrib4Nsv(uint index, short* v) Parameters index uint v short* glVertexAttrib4NsvARB(uint, short*) public static extern void glVertexAttrib4NsvARB(uint index, short* v) Parameters index uint v short* glVertexAttrib4Nub(uint, byte, byte, byte, byte) public static extern void glVertexAttrib4Nub(uint index, byte x, byte y, byte z, byte w) Parameters index uint x byte y byte z byte w byte glVertexAttrib4NubARB(uint, byte, byte, byte, byte) public static extern void glVertexAttrib4NubARB(uint index, byte x, byte y, byte z, byte w) Parameters index uint x byte y byte z byte w byte glVertexAttrib4Nubv(uint, byte*) public static extern void glVertexAttrib4Nubv(uint index, byte* v) Parameters index uint v byte* glVertexAttrib4NubvARB(uint, byte*) public static extern void glVertexAttrib4NubvARB(uint index, byte* v) Parameters index uint v byte* glVertexAttrib4Nuiv(uint, uint*) public static extern void glVertexAttrib4Nuiv(uint index, uint* v) Parameters index uint v uint* glVertexAttrib4NuivARB(uint, uint*) public static extern void glVertexAttrib4NuivARB(uint index, uint* v) Parameters index uint v uint* glVertexAttrib4Nusv(uint, ushort*) public static extern void glVertexAttrib4Nusv(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib4NusvARB(uint, ushort*) public static extern void glVertexAttrib4NusvARB(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib4bv(uint, sbyte*) public static extern void glVertexAttrib4bv(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttrib4bvARB(uint, sbyte*) public static extern void glVertexAttrib4bvARB(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttrib4d(uint, double, double, double, double) public static extern void glVertexAttrib4d(uint index, double x, double y, double z, double w) Parameters index uint x double y double z double w double glVertexAttrib4dARB(uint, double, double, double, double) public static extern void glVertexAttrib4dARB(uint index, double x, double y, double z, double w) Parameters index uint x double y double z double w double glVertexAttrib4dNV(uint, double, double, double, double) public static extern void glVertexAttrib4dNV(uint index, double x, double y, double z, double w) Parameters index uint x double y double z double w double glVertexAttrib4dv(uint, double*) public static extern void glVertexAttrib4dv(uint index, double* v) Parameters index uint v double* glVertexAttrib4dvARB(uint, double*) public static extern void glVertexAttrib4dvARB(uint index, double* v) Parameters index uint v double* glVertexAttrib4dvNV(uint, double*) public static extern void glVertexAttrib4dvNV(uint index, double* v) Parameters index uint v double* glVertexAttrib4f(uint, float, float, float, float) public static extern void glVertexAttrib4f(uint index, float x, float y, float z, float w) Parameters index uint x float y float z float w float glVertexAttrib4fARB(uint, float, float, float, float) public static extern void glVertexAttrib4fARB(uint index, float x, float y, float z, float w) Parameters index uint x float y float z float w float glVertexAttrib4fNV(uint, float, float, float, float) public static extern void glVertexAttrib4fNV(uint index, float x, float y, float z, float w) Parameters index uint x float y float z float w float glVertexAttrib4fv(uint, float*) public static extern void glVertexAttrib4fv(uint index, float* v) Parameters index uint v float* glVertexAttrib4fvARB(uint, float*) public static extern void glVertexAttrib4fvARB(uint index, float* v) Parameters index uint v float* glVertexAttrib4fvNV(uint, float*) public static extern void glVertexAttrib4fvNV(uint index, float* v) Parameters index uint v float* glVertexAttrib4hNV(uint, ushort, ushort, ushort, ushort) public static extern void glVertexAttrib4hNV(uint index, ushort x, ushort y, ushort z, ushort w) Parameters index uint x ushort y ushort z ushort w ushort glVertexAttrib4hvNV(uint, ushort*) public static extern void glVertexAttrib4hvNV(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib4iv(uint, int*) public static extern void glVertexAttrib4iv(uint index, int* v) Parameters index uint v int* glVertexAttrib4ivARB(uint, int*) public static extern void glVertexAttrib4ivARB(uint index, int* v) Parameters index uint v int* glVertexAttrib4s(uint, short, short, short, short) public static extern void glVertexAttrib4s(uint index, short x, short y, short z, short w) Parameters index uint x short y short z short w short glVertexAttrib4sARB(uint, short, short, short, short) public static extern void glVertexAttrib4sARB(uint index, short x, short y, short z, short w) Parameters index uint x short y short z short w short glVertexAttrib4sNV(uint, short, short, short, short) public static extern void glVertexAttrib4sNV(uint index, short x, short y, short z, short w) Parameters index uint x short y short z short w short glVertexAttrib4sv(uint, short*) public static extern void glVertexAttrib4sv(uint index, short* v) Parameters index uint v short* glVertexAttrib4svARB(uint, short*) public static extern void glVertexAttrib4svARB(uint index, short* v) Parameters index uint v short* glVertexAttrib4svNV(uint, short*) public static extern void glVertexAttrib4svNV(uint index, short* v) Parameters index uint v short* glVertexAttrib4ubNV(uint, byte, byte, byte, byte) public static extern void glVertexAttrib4ubNV(uint index, byte x, byte y, byte z, byte w) Parameters index uint x byte y byte z byte w byte glVertexAttrib4ubv(uint, byte*) public static extern void glVertexAttrib4ubv(uint index, byte* v) Parameters index uint v byte* glVertexAttrib4ubvARB(uint, byte*) public static extern void glVertexAttrib4ubvARB(uint index, byte* v) Parameters index uint v byte* glVertexAttrib4ubvNV(uint, byte*) public static extern void glVertexAttrib4ubvNV(uint index, byte* v) Parameters index uint v byte* glVertexAttrib4uiv(uint, uint*) public static extern void glVertexAttrib4uiv(uint index, uint* v) Parameters index uint v uint* glVertexAttrib4uivARB(uint, uint*) public static extern void glVertexAttrib4uivARB(uint index, uint* v) Parameters index uint v uint* glVertexAttrib4usv(uint, ushort*) public static extern void glVertexAttrib4usv(uint index, ushort* v) Parameters index uint v ushort* glVertexAttrib4usvARB(uint, ushort*) public static extern void glVertexAttrib4usvARB(uint index, ushort* v) Parameters index uint v ushort* glVertexAttribArrayObjectATI(uint, int, uint, bool, int, uint, uint) public static extern void glVertexAttribArrayObjectATI(uint index, int size, uint type, bool normalized, int stride, uint buffer, uint offset) Parameters index uint size int type uint normalized bool stride int buffer uint offset uint glVertexAttribDivisor(uint, uint) public static extern void glVertexAttribDivisor(uint index, uint divisor) Parameters index uint divisor uint glVertexAttribDivisorARB(uint, uint) public static extern void glVertexAttribDivisorARB(uint index, uint divisor) Parameters index uint divisor uint glVertexAttribFormatNV(uint, int, uint, bool, int) public static extern void glVertexAttribFormatNV(uint index, int size, uint type, bool normalized, int stride) Parameters index uint size int type uint normalized bool stride int glVertexAttribI1i(uint, int) public static extern void glVertexAttribI1i(uint index, int x) Parameters index uint x int glVertexAttribI1iEXT(uint, int) public static extern void glVertexAttribI1iEXT(uint index, int x) Parameters index uint x int glVertexAttribI1iv(uint, int*) public static extern void glVertexAttribI1iv(uint index, int* v) Parameters index uint v int* glVertexAttribI1ivEXT(uint, int*) public static extern void glVertexAttribI1ivEXT(uint index, int* v) Parameters index uint v int* glVertexAttribI1ui(uint, uint) public static extern void glVertexAttribI1ui(uint index, uint x) Parameters index uint x uint glVertexAttribI1uiEXT(uint, uint) public static extern void glVertexAttribI1uiEXT(uint index, uint x) Parameters index uint x uint glVertexAttribI1uiv(uint, uint*) public static extern void glVertexAttribI1uiv(uint index, uint* v) Parameters index uint v uint* glVertexAttribI1uivEXT(uint, uint*) public static extern void glVertexAttribI1uivEXT(uint index, uint* v) Parameters index uint v uint* glVertexAttribI2i(uint, int, int) public static extern void glVertexAttribI2i(uint index, int x, int y) Parameters index uint x int y int glVertexAttribI2iEXT(uint, int, int) public static extern void glVertexAttribI2iEXT(uint index, int x, int y) Parameters index uint x int y int glVertexAttribI2iv(uint, int*) public static extern void glVertexAttribI2iv(uint index, int* v) Parameters index uint v int* glVertexAttribI2ivEXT(uint, int*) public static extern void glVertexAttribI2ivEXT(uint index, int* v) Parameters index uint v int* glVertexAttribI2ui(uint, uint, uint) public static extern void glVertexAttribI2ui(uint index, uint x, uint y) Parameters index uint x uint y uint glVertexAttribI2uiEXT(uint, uint, uint) public static extern void glVertexAttribI2uiEXT(uint index, uint x, uint y) Parameters index uint x uint y uint glVertexAttribI2uiv(uint, uint*) public static extern void glVertexAttribI2uiv(uint index, uint* v) Parameters index uint v uint* glVertexAttribI2uivEXT(uint, uint*) public static extern void glVertexAttribI2uivEXT(uint index, uint* v) Parameters index uint v uint* glVertexAttribI3i(uint, int, int, int) public static extern void glVertexAttribI3i(uint index, int x, int y, int z) Parameters index uint x int y int z int glVertexAttribI3iEXT(uint, int, int, int) public static extern void glVertexAttribI3iEXT(uint index, int x, int y, int z) Parameters index uint x int y int z int glVertexAttribI3iv(uint, int*) public static extern void glVertexAttribI3iv(uint index, int* v) Parameters index uint v int* glVertexAttribI3ivEXT(uint, int*) public static extern void glVertexAttribI3ivEXT(uint index, int* v) Parameters index uint v int* glVertexAttribI3ui(uint, uint, uint, uint) public static extern void glVertexAttribI3ui(uint index, uint x, uint y, uint z) Parameters index uint x uint y uint z uint glVertexAttribI3uiEXT(uint, uint, uint, uint) public static extern void glVertexAttribI3uiEXT(uint index, uint x, uint y, uint z) Parameters index uint x uint y uint z uint glVertexAttribI3uiv(uint, uint*) public static extern void glVertexAttribI3uiv(uint index, uint* v) Parameters index uint v uint* glVertexAttribI3uivEXT(uint, uint*) public static extern void glVertexAttribI3uivEXT(uint index, uint* v) Parameters index uint v uint* glVertexAttribI4bv(uint, sbyte*) public static extern void glVertexAttribI4bv(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttribI4bvEXT(uint, sbyte*) public static extern void glVertexAttribI4bvEXT(uint index, sbyte* v) Parameters index uint v sbyte* glVertexAttribI4i(uint, int, int, int, int) public static extern void glVertexAttribI4i(uint index, int x, int y, int z, int w) Parameters index uint x int y int z int w int glVertexAttribI4iEXT(uint, int, int, int, int) public static extern void glVertexAttribI4iEXT(uint index, int x, int y, int z, int w) Parameters index uint x int y int z int w int glVertexAttribI4iv(uint, int*) public static extern void glVertexAttribI4iv(uint index, int* v) Parameters index uint v int* glVertexAttribI4ivEXT(uint, int*) public static extern void glVertexAttribI4ivEXT(uint index, int* v) Parameters index uint v int* glVertexAttribI4sv(uint, short*) public static extern void glVertexAttribI4sv(uint index, short* v) Parameters index uint v short* glVertexAttribI4svEXT(uint, short*) public static extern void glVertexAttribI4svEXT(uint index, short* v) Parameters index uint v short* glVertexAttribI4ubv(uint, byte*) public static extern void glVertexAttribI4ubv(uint index, byte* v) Parameters index uint v byte* glVertexAttribI4ubvEXT(uint, byte*) public static extern void glVertexAttribI4ubvEXT(uint index, byte* v) Parameters index uint v byte* glVertexAttribI4ui(uint, uint, uint, uint, uint) public static extern void glVertexAttribI4ui(uint index, uint x, uint y, uint z, uint w) Parameters index uint x uint y uint z uint w uint glVertexAttribI4uiEXT(uint, uint, uint, uint, uint) public static extern void glVertexAttribI4uiEXT(uint index, uint x, uint y, uint z, uint w) Parameters index uint x uint y uint z uint w uint glVertexAttribI4uiv(uint, uint*) public static extern void glVertexAttribI4uiv(uint index, uint* v) Parameters index uint v uint* glVertexAttribI4uivEXT(uint, uint*) public static extern void glVertexAttribI4uivEXT(uint index, uint* v) Parameters index uint v uint* glVertexAttribI4usv(uint, ushort*) public static extern void glVertexAttribI4usv(uint index, ushort* v) Parameters index uint v ushort* glVertexAttribI4usvEXT(uint, ushort*) public static extern void glVertexAttribI4usvEXT(uint index, ushort* v) Parameters index uint v ushort* glVertexAttribIFormatNV(uint, int, uint, int) public static extern void glVertexAttribIFormatNV(uint index, int size, uint type, int stride) Parameters index uint size int type uint stride int glVertexAttribIPointer(uint, int, uint, int, nint) public static extern void glVertexAttribIPointer(uint index, int size, uint type, int stride, nint pointer) Parameters index uint size int type uint stride int pointer nint glVertexAttribIPointerEXT(uint, int, uint, int, nint) public static extern void glVertexAttribIPointerEXT(uint index, int size, uint type, int stride, nint pointer) Parameters index uint size int type uint stride int pointer nint glVertexAttribL1d(uint, double) public static extern void glVertexAttribL1d(uint index, double x) Parameters index uint x double glVertexAttribL1dEXT(uint, double) public static extern void glVertexAttribL1dEXT(uint index, double x) Parameters index uint x double glVertexAttribL1dv(uint, double*) public static extern void glVertexAttribL1dv(uint index, double* v) Parameters index uint v double* glVertexAttribL1dvEXT(uint, double*) public static extern void glVertexAttribL1dvEXT(uint index, double* v) Parameters index uint v double* glVertexAttribL1i64NV(uint, long) public static extern void glVertexAttribL1i64NV(uint index, long x) Parameters index uint x long glVertexAttribL1i64vNV(uint, long*) public static extern void glVertexAttribL1i64vNV(uint index, long* v) Parameters index uint v long* glVertexAttribL1ui64NV(uint, ulong) public static extern void glVertexAttribL1ui64NV(uint index, ulong x) Parameters index uint x ulong glVertexAttribL1ui64vNV(uint, ulong*) public static extern void glVertexAttribL1ui64vNV(uint index, ulong* v) Parameters index uint v ulong* glVertexAttribL2d(uint, double, double) public static extern void glVertexAttribL2d(uint index, double x, double y) Parameters index uint x double y double glVertexAttribL2dEXT(uint, double, double) public static extern void glVertexAttribL2dEXT(uint index, double x, double y) Parameters index uint x double y double glVertexAttribL2dv(uint, double*) public static extern void glVertexAttribL2dv(uint index, double* v) Parameters index uint v double* glVertexAttribL2dvEXT(uint, double*) public static extern void glVertexAttribL2dvEXT(uint index, double* v) Parameters index uint v double* glVertexAttribL2i64NV(uint, long, long) public static extern void glVertexAttribL2i64NV(uint index, long x, long y) Parameters index uint x long y long glVertexAttribL2i64vNV(uint, long*) public static extern void glVertexAttribL2i64vNV(uint index, long* v) Parameters index uint v long* glVertexAttribL2ui64NV(uint, ulong, ulong) public static extern void glVertexAttribL2ui64NV(uint index, ulong x, ulong y) Parameters index uint x ulong y ulong glVertexAttribL2ui64vNV(uint, ulong*) public static extern void glVertexAttribL2ui64vNV(uint index, ulong* v) Parameters index uint v ulong* glVertexAttribL3d(uint, double, double, double) public static extern void glVertexAttribL3d(uint index, double x, double y, double z) Parameters index uint x double y double z double glVertexAttribL3dEXT(uint, double, double, double) public static extern void glVertexAttribL3dEXT(uint index, double x, double y, double z) Parameters index uint x double y double z double glVertexAttribL3dv(uint, double*) public static extern void glVertexAttribL3dv(uint index, double* v) Parameters index uint v double* glVertexAttribL3dvEXT(uint, double*) public static extern void glVertexAttribL3dvEXT(uint index, double* v) Parameters index uint v double* glVertexAttribL3i64NV(uint, long, long, long) public static extern void glVertexAttribL3i64NV(uint index, long x, long y, long z) Parameters index uint x long y long z long glVertexAttribL3i64vNV(uint, long*) public static extern void glVertexAttribL3i64vNV(uint index, long* v) Parameters index uint v long* glVertexAttribL3ui64NV(uint, ulong, ulong, ulong) public static extern void glVertexAttribL3ui64NV(uint index, ulong x, ulong y, ulong z) Parameters index uint x ulong y ulong z ulong glVertexAttribL3ui64vNV(uint, ulong*) public static extern void glVertexAttribL3ui64vNV(uint index, ulong* v) Parameters index uint v ulong* glVertexAttribL4d(uint, double, double, double, double) public static extern void glVertexAttribL4d(uint index, double x, double y, double z, double w) Parameters index uint x double y double z double w double glVertexAttribL4dEXT(uint, double, double, double, double) public static extern void glVertexAttribL4dEXT(uint index, double x, double y, double z, double w) Parameters index uint x double y double z double w double glVertexAttribL4dv(uint, double*) public static extern void glVertexAttribL4dv(uint index, double* v) Parameters index uint v double* glVertexAttribL4dvEXT(uint, double*) public static extern void glVertexAttribL4dvEXT(uint index, double* v) Parameters index uint v double* glVertexAttribL4i64NV(uint, long, long, long, long) public static extern void glVertexAttribL4i64NV(uint index, long x, long y, long z, long w) Parameters index uint x long y long z long w long glVertexAttribL4i64vNV(uint, long*) public static extern void glVertexAttribL4i64vNV(uint index, long* v) Parameters index uint v long* glVertexAttribL4ui64NV(uint, ulong, ulong, ulong, ulong) public static extern void glVertexAttribL4ui64NV(uint index, ulong x, ulong y, ulong z, ulong w) Parameters index uint x ulong y ulong z ulong w ulong glVertexAttribL4ui64vNV(uint, ulong*) public static extern void glVertexAttribL4ui64vNV(uint index, ulong* v) Parameters index uint v ulong* glVertexAttribLFormatNV(uint, int, uint, int) public static extern void glVertexAttribLFormatNV(uint index, int size, uint type, int stride) Parameters index uint size int type uint stride int glVertexAttribLPointer(uint, int, uint, int, nint) public static extern void glVertexAttribLPointer(uint index, int size, uint type, int stride, nint pointer) Parameters index uint size int type uint stride int pointer nint glVertexAttribLPointerEXT(uint, int, uint, int, nint) public static extern void glVertexAttribLPointerEXT(uint index, int size, uint type, int stride, nint pointer) Parameters index uint size int type uint stride int pointer nint glVertexAttribP1ui(uint, uint, bool, uint) public static extern void glVertexAttribP1ui(uint index, uint type, bool normalized, uint value) Parameters index uint type uint normalized bool value uint glVertexAttribP1uiv(uint, uint, bool, uint*) public static extern void glVertexAttribP1uiv(uint index, uint type, bool normalized, uint* value) Parameters index uint type uint normalized bool value uint* glVertexAttribP2ui(uint, uint, bool, uint) public static extern void glVertexAttribP2ui(uint index, uint type, bool normalized, uint value) Parameters index uint type uint normalized bool value uint glVertexAttribP2uiv(uint, uint, bool, uint*) public static extern void glVertexAttribP2uiv(uint index, uint type, bool normalized, uint* value) Parameters index uint type uint normalized bool value uint* glVertexAttribP3ui(uint, uint, bool, uint) public static extern void glVertexAttribP3ui(uint index, uint type, bool normalized, uint value) Parameters index uint type uint normalized bool value uint glVertexAttribP3uiv(uint, uint, bool, uint*) public static extern void glVertexAttribP3uiv(uint index, uint type, bool normalized, uint* value) Parameters index uint type uint normalized bool value uint* glVertexAttribP4ui(uint, uint, bool, uint) public static extern void glVertexAttribP4ui(uint index, uint type, bool normalized, uint value) Parameters index uint type uint normalized bool value uint glVertexAttribP4uiv(uint, uint, bool, uint*) public static extern void glVertexAttribP4uiv(uint index, uint type, bool normalized, uint* value) Parameters index uint type uint normalized bool value uint* glVertexAttribPointer(uint, int, uint, bool, int, nint) public static extern void glVertexAttribPointer(uint index, int size, uint type, bool normalized, int stride, nint pointer) Parameters index uint size int type uint normalized bool stride int pointer nint glVertexAttribPointerARB(uint, int, uint, bool, int, nint) public static extern void glVertexAttribPointerARB(uint index, int size, uint type, bool normalized, int stride, nint pointer) Parameters index uint size int type uint normalized bool stride int pointer nint glVertexAttribPointerNV(uint, int, uint, int, nint) public static extern void glVertexAttribPointerNV(uint index, int fsize, uint type, int stride, nint pointer) Parameters index uint fsize int type uint stride int pointer nint glVertexAttribs1dvNV(uint, int, double*) public static extern void glVertexAttribs1dvNV(uint index, int count, double* v) Parameters index uint count int v double* glVertexAttribs1fvNV(uint, int, float*) public static extern void glVertexAttribs1fvNV(uint index, int count, float* v) Parameters index uint count int v float* glVertexAttribs1hvNV(uint, int, ushort*) public static extern void glVertexAttribs1hvNV(uint index, int n, ushort* v) Parameters index uint n int v ushort* glVertexAttribs1svNV(uint, int, short*) public static extern void glVertexAttribs1svNV(uint index, int count, short* v) Parameters index uint count int v short* glVertexAttribs2dvNV(uint, int, double*) public static extern void glVertexAttribs2dvNV(uint index, int count, double* v) Parameters index uint count int v double* glVertexAttribs2fvNV(uint, int, float*) public static extern void glVertexAttribs2fvNV(uint index, int count, float* v) Parameters index uint count int v float* glVertexAttribs2hvNV(uint, int, ushort*) public static extern void glVertexAttribs2hvNV(uint index, int n, ushort* v) Parameters index uint n int v ushort* glVertexAttribs2svNV(uint, int, short*) public static extern void glVertexAttribs2svNV(uint index, int count, short* v) Parameters index uint count int v short* glVertexAttribs3dvNV(uint, int, double*) public static extern void glVertexAttribs3dvNV(uint index, int count, double* v) Parameters index uint count int v double* glVertexAttribs3fvNV(uint, int, float*) public static extern void glVertexAttribs3fvNV(uint index, int count, float* v) Parameters index uint count int v float* glVertexAttribs3hvNV(uint, int, ushort*) public static extern void glVertexAttribs3hvNV(uint index, int n, ushort* v) Parameters index uint n int v ushort* glVertexAttribs3svNV(uint, int, short*) public static extern void glVertexAttribs3svNV(uint index, int count, short* v) Parameters index uint count int v short* glVertexAttribs4dvNV(uint, int, double*) public static extern void glVertexAttribs4dvNV(uint index, int count, double* v) Parameters index uint count int v double* glVertexAttribs4fvNV(uint, int, float*) public static extern void glVertexAttribs4fvNV(uint index, int count, float* v) Parameters index uint count int v float* glVertexAttribs4hvNV(uint, int, ushort*) public static extern void glVertexAttribs4hvNV(uint index, int n, ushort* v) Parameters index uint n int v ushort* glVertexAttribs4svNV(uint, int, short*) public static extern void glVertexAttribs4svNV(uint index, int count, short* v) Parameters index uint count int v short* glVertexAttribs4ubvNV(uint, int, byte*) public static extern void glVertexAttribs4ubvNV(uint index, int count, byte* v) Parameters index uint count int v byte* glVertexBlendARB(int) public static extern void glVertexBlendARB(int count) Parameters count int glVertexBlendEnvfATI(uint, float) public static extern void glVertexBlendEnvfATI(uint pname, float param) Parameters pname uint param float glVertexBlendEnviATI(uint, int) public static extern void glVertexBlendEnviATI(uint pname, int param) Parameters pname uint param int glVertexFormatNV(int, uint, int) public static extern void glVertexFormatNV(int size, uint type, int stride) Parameters size int type uint stride int glVertexP2ui(uint, uint) public static extern void glVertexP2ui(uint type, uint value) Parameters type uint value uint glVertexP2uiv(uint, uint*) public static extern void glVertexP2uiv(uint type, uint* value) Parameters type uint value uint* glVertexP3ui(uint, uint) public static extern void glVertexP3ui(uint type, uint value) Parameters type uint value uint glVertexP3uiv(uint, uint*) public static extern void glVertexP3uiv(uint type, uint* value) Parameters type uint value uint* glVertexP4ui(uint, uint) public static extern void glVertexP4ui(uint type, uint value) Parameters type uint value uint glVertexP4uiv(uint, uint*) public static extern void glVertexP4uiv(uint type, uint* value) Parameters type uint value uint* glVertexPointer(int, uint, int, nint) public static extern void glVertexPointer(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glVertexPointerEXT(int, uint, int, int, nint) public static extern void glVertexPointerEXT(int size, uint type, int stride, int count, nint pointer) Parameters size int type uint stride int count int pointer nint glVertexPointerListIBM(int, uint, int, nint, int) public static extern void glVertexPointerListIBM(int size, uint type, int stride, nint pointer, int ptrstride) Parameters size int type uint stride int pointer nint ptrstride int glVertexPointervINTEL(int, uint, nint) public static extern void glVertexPointervINTEL(int size, uint type, nint pointer) Parameters size int type uint pointer nint glVertexStream1dATI(uint, double) public static extern void glVertexStream1dATI(uint stream, double x) Parameters stream uint x double glVertexStream1dvATI(uint, double*) public static extern void glVertexStream1dvATI(uint stream, double* coords) Parameters stream uint coords double* glVertexStream1fATI(uint, float) public static extern void glVertexStream1fATI(uint stream, float x) Parameters stream uint x float glVertexStream1fvATI(uint, float*) public static extern void glVertexStream1fvATI(uint stream, float* coords) Parameters stream uint coords float* glVertexStream1iATI(uint, int) public static extern void glVertexStream1iATI(uint stream, int x) Parameters stream uint x int glVertexStream1ivATI(uint, int*) public static extern void glVertexStream1ivATI(uint stream, int* coords) Parameters stream uint coords int* glVertexStream1sATI(uint, short) public static extern void glVertexStream1sATI(uint stream, short x) Parameters stream uint x short glVertexStream1svATI(uint, short*) public static extern void glVertexStream1svATI(uint stream, short* coords) Parameters stream uint coords short* glVertexStream2dATI(uint, double, double) public static extern void glVertexStream2dATI(uint stream, double x, double y) Parameters stream uint x double y double glVertexStream2dvATI(uint, double*) public static extern void glVertexStream2dvATI(uint stream, double* coords) Parameters stream uint coords double* glVertexStream2fATI(uint, float, float) public static extern void glVertexStream2fATI(uint stream, float x, float y) Parameters stream uint x float y float glVertexStream2fvATI(uint, float*) public static extern void glVertexStream2fvATI(uint stream, float* coords) Parameters stream uint coords float* glVertexStream2iATI(uint, int, int) public static extern void glVertexStream2iATI(uint stream, int x, int y) Parameters stream uint x int y int glVertexStream2ivATI(uint, int*) public static extern void glVertexStream2ivATI(uint stream, int* coords) Parameters stream uint coords int* glVertexStream2sATI(uint, short, short) public static extern void glVertexStream2sATI(uint stream, short x, short y) Parameters stream uint x short y short glVertexStream2svATI(uint, short*) public static extern void glVertexStream2svATI(uint stream, short* coords) Parameters stream uint coords short* glVertexStream3dATI(uint, double, double, double) public static extern void glVertexStream3dATI(uint stream, double x, double y, double z) Parameters stream uint x double y double z double glVertexStream3dvATI(uint, double*) public static extern void glVertexStream3dvATI(uint stream, double* coords) Parameters stream uint coords double* glVertexStream3fATI(uint, float, float, float) public static extern void glVertexStream3fATI(uint stream, float x, float y, float z) Parameters stream uint x float y float z float glVertexStream3fvATI(uint, float*) public static extern void glVertexStream3fvATI(uint stream, float* coords) Parameters stream uint coords float* glVertexStream3iATI(uint, int, int, int) public static extern void glVertexStream3iATI(uint stream, int x, int y, int z) Parameters stream uint x int y int z int glVertexStream3ivATI(uint, int*) public static extern void glVertexStream3ivATI(uint stream, int* coords) Parameters stream uint coords int* glVertexStream3sATI(uint, short, short, short) public static extern void glVertexStream3sATI(uint stream, short x, short y, short z) Parameters stream uint x short y short z short glVertexStream3svATI(uint, short*) public static extern void glVertexStream3svATI(uint stream, short* coords) Parameters stream uint coords short* glVertexStream4dATI(uint, double, double, double, double) public static extern void glVertexStream4dATI(uint stream, double x, double y, double z, double w) Parameters stream uint x double y double z double w double glVertexStream4dvATI(uint, double*) public static extern void glVertexStream4dvATI(uint stream, double* coords) Parameters stream uint coords double* glVertexStream4fATI(uint, float, float, float, float) public static extern void glVertexStream4fATI(uint stream, float x, float y, float z, float w) Parameters stream uint x float y float z float w float glVertexStream4fvATI(uint, float*) public static extern void glVertexStream4fvATI(uint stream, float* coords) Parameters stream uint coords float* glVertexStream4iATI(uint, int, int, int, int) public static extern void glVertexStream4iATI(uint stream, int x, int y, int z, int w) Parameters stream uint x int y int z int w int glVertexStream4ivATI(uint, int*) public static extern void glVertexStream4ivATI(uint stream, int* coords) Parameters stream uint coords int* glVertexStream4sATI(uint, short, short, short, short) public static extern void glVertexStream4sATI(uint stream, short x, short y, short z, short w) Parameters stream uint x short y short z short w short glVertexStream4svATI(uint, short*) public static extern void glVertexStream4svATI(uint stream, short* coords) Parameters stream uint coords short* glVertexWeightPointerEXT(int, uint, int, nint) public static extern void glVertexWeightPointerEXT(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glVertexWeightfEXT(float) public static extern void glVertexWeightfEXT(float weight) Parameters weight float glVertexWeightfvEXT(float*) public static extern void glVertexWeightfvEXT(float* weight) Parameters weight float* glVertexWeighthNV(ushort) public static extern void glVertexWeighthNV(ushort weight) Parameters weight ushort glVertexWeighthvNV(ushort*) public static extern void glVertexWeighthvNV(ushort* weight) Parameters weight ushort* glVideoCaptureNV(uint, uint*, ulong*) public static extern uint glVideoCaptureNV(uint video_capture_slot, uint* sequence_num, ulong* capture_time) Parameters video_capture_slot uint sequence_num uint* capture_time ulong* Returns uint glVideoCaptureStreamParameterdvNV(uint, uint, uint, double*) public static extern void glVideoCaptureStreamParameterdvNV(uint video_capture_slot, uint stream, uint pname, double* @params) Parameters video_capture_slot uint stream uint pname uint params double* glVideoCaptureStreamParameterfvNV(uint, uint, uint, float*) public static extern void glVideoCaptureStreamParameterfvNV(uint video_capture_slot, uint stream, uint pname, float* @params) Parameters video_capture_slot uint stream uint pname uint params float* glVideoCaptureStreamParameterivNV(uint, uint, uint, int*) public static extern void glVideoCaptureStreamParameterivNV(uint video_capture_slot, uint stream, uint pname, int* @params) Parameters video_capture_slot uint stream uint pname uint params int* glViewport(int, int, int, int) public static extern void glViewport(int x, int y, int width, int height) Parameters x int y int width int height int glViewportArrayv(uint, int, float*) public static extern void glViewportArrayv(uint first, int count, float* v) Parameters first uint count int v float* glViewportIndexedf(uint, float, float, float, float) public static extern void glViewportIndexedf(uint index, float x, float y, float w, float h) Parameters index uint x float y float w float h float glViewportIndexedfv(uint, float*) public static extern void glViewportIndexedfv(uint index, float* v) Parameters index uint v float* glWaitSync(nint, uint, ulong) public static extern void glWaitSync(nint sync, uint flags, ulong timeout) Parameters sync nint flags uint timeout ulong glWeightPointerARB(int, uint, int, nint) public static extern void glWeightPointerARB(int size, uint type, int stride, nint pointer) Parameters size int type uint stride int pointer nint glWeightbvARB(int, sbyte*) public static extern void glWeightbvARB(int size, sbyte* weights) Parameters size int weights sbyte* glWeightdvARB(int, double*) public static extern void glWeightdvARB(int size, double* weights) Parameters size int weights double* glWeightfvARB(int, float*) public static extern void glWeightfvARB(int size, float* weights) Parameters size int weights float* glWeightivARB(int, int*) public static extern void glWeightivARB(int size, int* weights) Parameters size int weights int* glWeightsvARB(int, short*) public static extern void glWeightsvARB(int size, short* weights) Parameters size int weights short* glWeightubvARB(int, byte*) public static extern void glWeightubvARB(int size, byte* weights) Parameters size int weights byte* glWeightuivARB(int, uint*) public static extern void glWeightuivARB(int size, uint* weights) Parameters size int weights uint* glWeightusvARB(int, ushort*) public static extern void glWeightusvARB(int size, ushort* weights) Parameters size int weights ushort* glWindowPos2d(double, double) public static extern void glWindowPos2d(double x, double y) Parameters x double y double glWindowPos2dARB(double, double) public static extern void glWindowPos2dARB(double x, double y) Parameters x double y double glWindowPos2dMESA(double, double) public static extern void glWindowPos2dMESA(double x, double y) Parameters x double y double glWindowPos2dv(double*) public static extern void glWindowPos2dv(double* v) Parameters v double* glWindowPos2dvARB(double*) public static extern void glWindowPos2dvARB(double* v) Parameters v double* glWindowPos2dvMESA(double*) public static extern void glWindowPos2dvMESA(double* v) Parameters v double* glWindowPos2f(float, float) public static extern void glWindowPos2f(float x, float y) Parameters x float y float glWindowPos2fARB(float, float) public static extern void glWindowPos2fARB(float x, float y) Parameters x float y float glWindowPos2fMESA(float, float) public static extern void glWindowPos2fMESA(float x, float y) Parameters x float y float glWindowPos2fv(float*) public static extern void glWindowPos2fv(float* v) Parameters v float* glWindowPos2fvARB(float*) public static extern void glWindowPos2fvARB(float* v) Parameters v float* glWindowPos2fvMESA(float*) public static extern void glWindowPos2fvMESA(float* v) Parameters v float* glWindowPos2i(int, int) public static extern void glWindowPos2i(int x, int y) Parameters x int y int glWindowPos2iARB(int, int) public static extern void glWindowPos2iARB(int x, int y) Parameters x int y int glWindowPos2iMESA(int, int) public static extern void glWindowPos2iMESA(int x, int y) Parameters x int y int glWindowPos2iv(int*) public static extern void glWindowPos2iv(int* v) Parameters v int* glWindowPos2ivARB(int*) public static extern void glWindowPos2ivARB(int* v) Parameters v int* glWindowPos2ivMESA(int*) public static extern void glWindowPos2ivMESA(int* v) Parameters v int* glWindowPos2s(short, short) public static extern void glWindowPos2s(short x, short y) Parameters x short y short glWindowPos2sARB(short, short) public static extern void glWindowPos2sARB(short x, short y) Parameters x short y short glWindowPos2sMESA(short, short) public static extern void glWindowPos2sMESA(short x, short y) Parameters x short y short glWindowPos2sv(short*) public static extern void glWindowPos2sv(short* v) Parameters v short* glWindowPos2svARB(short*) public static extern void glWindowPos2svARB(short* v) Parameters v short* glWindowPos2svMESA(short*) public static extern void glWindowPos2svMESA(short* v) Parameters v short* glWindowPos3d(double, double, double) public static extern void glWindowPos3d(double x, double y, double z) Parameters x double y double z double glWindowPos3dARB(double, double, double) public static extern void glWindowPos3dARB(double x, double y, double z) Parameters x double y double z double glWindowPos3dMESA(double, double, double) public static extern void glWindowPos3dMESA(double x, double y, double z) Parameters x double y double z double glWindowPos3dv(double*) public static extern void glWindowPos3dv(double* v) Parameters v double* glWindowPos3dvARB(double*) public static extern void glWindowPos3dvARB(double* v) Parameters v double* glWindowPos3dvMESA(double*) public static extern void glWindowPos3dvMESA(double* v) Parameters v double* glWindowPos3f(float, float, float) public static extern void glWindowPos3f(float x, float y, float z) Parameters x float y float z float glWindowPos3fARB(float, float, float) public static extern void glWindowPos3fARB(float x, float y, float z) Parameters x float y float z float glWindowPos3fMESA(float, float, float) public static extern void glWindowPos3fMESA(float x, float y, float z) Parameters x float y float z float glWindowPos3fv(float*) public static extern void glWindowPos3fv(float* v) Parameters v float* glWindowPos3fvARB(float*) public static extern void glWindowPos3fvARB(float* v) Parameters v float* glWindowPos3fvMESA(float*) public static extern void glWindowPos3fvMESA(float* v) Parameters v float* glWindowPos3i(int, int, int) public static extern void glWindowPos3i(int x, int y, int z) Parameters x int y int z int glWindowPos3iARB(int, int, int) public static extern void glWindowPos3iARB(int x, int y, int z) Parameters x int y int z int glWindowPos3iMESA(int, int, int) public static extern void glWindowPos3iMESA(int x, int y, int z) Parameters x int y int z int glWindowPos3iv(int*) public static extern void glWindowPos3iv(int* v) Parameters v int* glWindowPos3ivARB(int*) public static extern void glWindowPos3ivARB(int* v) Parameters v int* glWindowPos3ivMESA(int*) public static extern void glWindowPos3ivMESA(int* v) Parameters v int* glWindowPos3s(short, short, short) public static extern void glWindowPos3s(short x, short y, short z) Parameters x short y short z short glWindowPos3sARB(short, short, short) public static extern void glWindowPos3sARB(short x, short y, short z) Parameters x short y short z short glWindowPos3sMESA(short, short, short) public static extern void glWindowPos3sMESA(short x, short y, short z) Parameters x short y short z short glWindowPos3sv(short*) public static extern void glWindowPos3sv(short* v) Parameters v short* glWindowPos3svARB(short*) public static extern void glWindowPos3svARB(short* v) Parameters v short* glWindowPos3svMESA(short*) public static extern void glWindowPos3svMESA(short* v) Parameters v short* glWindowPos4dMESA(double, double, double, double) public static extern void glWindowPos4dMESA(double x, double y, double z, double w) Parameters x double y double z double w double glWindowPos4dvMESA(double*) public static extern void glWindowPos4dvMESA(double* v) Parameters v double* glWindowPos4fMESA(float, float, float, float) public static extern void glWindowPos4fMESA(float x, float y, float z, float w) Parameters x float y float z float w float glWindowPos4fvMESA(float*) public static extern void glWindowPos4fvMESA(float* v) Parameters v float* glWindowPos4iMESA(int, int, int, int) public static extern void glWindowPos4iMESA(int x, int y, int z, int w) Parameters x int y int z int w int glWindowPos4ivMESA(int*) public static extern void glWindowPos4ivMESA(int* v) Parameters v int* glWindowPos4sMESA(short, short, short, short) public static extern void glWindowPos4sMESA(short x, short y, short z, short w) Parameters x short y short z short w short glWindowPos4svMESA(short*) public static extern void glWindowPos4svMESA(short* v) Parameters v short* glWriteMaskEXT(uint, uint, uint, uint, uint, uint) public static extern void glWriteMaskEXT(uint res, uint @in, uint outX, uint outY, uint outZ, uint outW) Parameters res uint in uint outX uint outY uint outZ uint outW uint" }, "api/Hi.Disp.IDisplayee.html": { "href": "api/Hi.Disp.IDisplayee.html", "title": "Interface IDisplayee | HiAPI-C# 2025", "summary": "Interface IDisplayee Namespace Hi.Disp Assembly HiDisp.dll An object which can be displayed in DispEngine. public interface IDisplayee : IExpandToBox3d Inherited Members IExpandToBox3d.ExpandToBox3d(Box3d) 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) Methods Display(Bind) Display function called in DispEngine rendering loop. void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind." }, "api/Hi.Disp.IGetDispEngine.html": { "href": "api/Hi.Disp.IGetDispEngine.html", "title": "Interface IGetDispEngine | HiAPI-C# 2025", "summary": "Interface IGetDispEngine Namespace Hi.Disp Assembly HiDisp.dll Interface fo getting DispEngine. public interface IGetDispEngine 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) Methods GetDispEngine() Get DispEngine. DispEngine GetDispEngine() Returns DispEngine DispEngine" }, "api/Hi.Disp.IGetPickable.html": { "href": "api/Hi.Disp.IGetPickable.html", "title": "Interface IGetPickable | HiAPI-C# 2025", "summary": "Interface IGetPickable Namespace Hi.Disp Assembly HiDisp.dll Get Pickable interface. public interface IGetPickable 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) Methods GetPickable() Get Pickable Pickable GetPickable() Returns Pickable pickable" }, "api/Hi.Disp.IGlContextDirver.html": { "href": "api/Hi.Disp.IGlContextDirver.html", "title": "Interface IGlContextDirver | HiAPI-C# 2025", "summary": "Interface IGlContextDirver Namespace Hi.Disp Assembly HiDisp.dll Bridge of Native OpenGL Context. public interface IGlContextDirver : IDisposable Inherited Members IDisposable.Dispose() 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) Methods FreeCurrent() OpenGL context free current. void FreeCurrent() MakeCurrent() OpenGL context make current. void MakeCurrent() Resize(double, double) Resize the opengl context. void Resize(double width, double height) Parameters width double viewport width height double viewport height SwapBuffers() OpenGL context swap buffers. void SwapBuffers()" }, "api/Hi.Disp.MatStack.ItemDisposable.html": { "href": "api/Hi.Disp.MatStack.ItemDisposable.html", "title": "Class MatStack.ItemDisposable | HiAPI-C# 2025", "summary": "Class MatStack.ItemDisposable Namespace Hi.Disp Assembly HiDisp.dll A disposable class that manages push and pop operations on a matrix stack. public class MatStack.ItemDisposable : IDisposable Inheritance object MatStack.ItemDisposable Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ItemDisposable(MatStack) Initializes a new instance of the MatStack.ItemDisposable class. public ItemDisposable(MatStack stack) Parameters stack MatStack The matrix stack to manage. Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose()" }, "api/Hi.Disp.MatStack.html": { "href": "api/Hi.Disp.MatStack.html", "title": "Class MatStack | HiAPI-C# 2025", "summary": "Class MatStack Namespace Hi.Disp Assembly HiDisp.dll Stack-based Matrix. public class MatStack Inheritance object MatStack 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 Current Equal to Last. public Mat4d Current { get; } Property Value Mat4d ID ID. The ID equals to the count of manipulation. public int ID { get; } Property Value int Last Top matrix. public Mat4d Last { get; } Property Value Mat4d Methods ~MatStack() protected ~MatStack() GenPush() Generates a disposable object that pushes the matrix stack on creation and pops it on disposal. public MatStack.ItemDisposable GenPush() Returns MatStack.ItemDisposable A disposable object that manages the push/pop operations. Load(Mat4d) Set the top matrix to mat. public void Load(Mat4d mat) Parameters mat Mat4d matrix LoadIdt() Set the top matrix to identity. public void LoadIdt() Mul(Mat4d) Multiply the matrix to the top level matrix. Which is Last() = mat * Last(); public void Mul(Mat4d mat) Parameters mat Mat4d Pop() Pop top matrix. public void Pop() See Also Push() Push() Copy and push the top matrix to the stack. public void Push() See Also Pop() PushMul(Mat4d) Call Push() and then call Mul(Mat4d) with mat. public void PushMul(Mat4d mat) Parameters mat Mat4d the pushed and multiplied matrix Reset() Reset/Clean matrix stack. public void Reset() Rotate(AxisAngle4d) Rotate the top matrix. public void Rotate(AxisAngle4d aa) Parameters aa AxisAngle4d axis angle Rotate(Vec3d, double) Rotate the top matrix. public void Rotate(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double angle in radian Scale(double) Multiply the scale matrix to the top level matrix. public void Scale(double s) Parameters s double scale Scale(double, double, double) Multiply the scale matrix by three axises to the top level matrix. public void Scale(double x, double y, double z) Parameters x double x-axis scale y double y-axis scale z double z-axis scale Trans(Vec3d) Translate the top matrix. public void Trans(Vec3d v) Parameters v Vec3d translation Trans(double, double, double) Translate the top matrix. public void Trans(double x, double y, double z) Parameters x double x y double y z double z" }, "api/Hi.Disp.MvpBoxRelation.html": { "href": "api/Hi.Disp.MvpBoxRelation.html", "title": "Enum MvpBoxRelation | HiAPI-C# 2025", "summary": "Enum MvpBoxRelation Namespace Hi.Disp Assembly HiDisp.dll Relation between mvpBox and an AABB public enum MvpBoxRelation 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 INSIDE = 2 The AABB is inside mvpBox. NO_OVERLAPPED = 0 No overlapped PARTIAL_OVERLAPPED = 1 Partial overlapped." }, "api/Hi.Disp.Pickable.html": { "href": "api/Hi.Disp.Pickable.html", "title": "Class Pickable | HiAPI-C# 2025", "summary": "Class Pickable Namespace Hi.Disp Assembly HiDisp.dll Picking event handler for rendering. Note that it has to be disposed manually or the object occurs memory leak. public class Pickable : IGetPickable, IDisposable Inheritance object Pickable Implements IGetPickable IDisposable Derived CbtrPickable ShowEventPickable 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) Constructors Pickable() Ctor. public Pickable() Fields mark Internal only. protected picking_mark_t* mark Field Value picking_mark_t* Properties Pickables public static ConcurrentDictionary Pickables { get; } Property Value ConcurrentDictionary Remarks Design Concern: Substitude of ConcurrentSet. PickingID ID of picking event. public int PickingID { get; } Property Value int Methods 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 ~Pickable() protected ~Pickable() GetPickable() Get Pickable public Pickable GetPickable() Returns Pickable pickable OnKeyDown(key_event_t, DispEngine) Behavior on key down. public virtual void OnKeyDown(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnKeyUp(key_event_t, DispEngine) Behavior on key up public virtual void OnKeyUp(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnMouseDown(mouse_button_event_t, DispEngine) Behavior on mouse down public virtual void OnMouseDown(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine OnMouseEnter(ui_event_type, DispEngine) Behavior on mouse enter public virtual 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 virtual void OnMouseLeave(ui_event_type e, DispEngine dispEngine) Parameters e ui_event_type event type dispEngine DispEngine display engine OnMouseMove(mouse_move_event_t, DispEngine) Behavior on mouse move public virtual void OnMouseMove(mouse_move_event_t e, DispEngine dispEngine) Parameters e mouse_move_event_t event dispEngine DispEngine display engine OnMouseUp(mouse_button_event_t, DispEngine) Behavior on mouse up public virtual void OnMouseUp(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine OnMouseWheel(mouse_wheel_event_t, DispEngine) Behavior on mouse wheel public virtual void OnMouseWheel(mouse_wheel_event_t e, DispEngine dispEngine) Parameters e mouse_wheel_event_t event dispEngine DispEngine display engine" }, "api/Hi.Disp.PopModelMat.html": { "href": "api/Hi.Disp.PopModelMat.html", "title": "Class PopModelMat | HiAPI-C# 2025", "summary": "Class PopModelMat Namespace Hi.Disp Assembly HiDisp.dll Call Pop() for Hi.Disp.Bind.modelMatStack in Display(Bind). This function is only for test purpose. Since the ExpandToBox3d(Box3d) just expand the translation part of the mat to the target box. This function should be use with PushModelMat. public class PopModelMat : IDisplayee, IExpandToBox3d Inheritance object PopModelMat Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 PopModelMat() Initializes a new instance of the PopModelMat class. public PopModelMat() Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.PushModelMat.html": { "href": "api/Hi.Disp.PushModelMat.html", "title": "Class PushModelMat | HiAPI-C# 2025", "summary": "Class PushModelMat Namespace Hi.Disp Assembly HiDisp.dll Call Push() for Hi.Disp.Bind.modelMatStack in Display(Bind). This function is only for test purpose. Since the ExpandToBox3d(Box3d) just expand the translation part of the mat to the target box. This function should be use with PopModelMat. public class PushModelMat : IDisplayee, IExpandToBox3d Inheritance object PushModelMat Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 PushModelMat() Initializes a new instance of the PushModelMat class. public PushModelMat() Properties Mat Pushed matrix. public Mat4d Mat { get; set; } Property Value Mat4d Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.Segment3dDispUtil.html": { "href": "api/Hi.Disp.Segment3dDispUtil.html", "title": "Class Segment3dDispUtil | HiAPI-C# 2025", "summary": "Class Segment3dDispUtil Namespace Hi.Disp Assembly HiDisp.dll Utilities for converting geometry segments to renderable drawings. public static class Segment3dDispUtil Inheritance object Segment3dDispUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ToDrawing(IEnumerable) Converts a sequence of 3D segments to a line drawing. Null endpoints are skipped. The resulting drawing uses GL_LINES with stamp V. public static Drawing ToDrawing(this IEnumerable segments) Parameters segments IEnumerable Input segments to convert. Returns Drawing A drawing that renders the provided segments." }, "api/Hi.Disp.ShowEventPickable.html": { "href": "api/Hi.Disp.ShowEventPickable.html", "title": "Class ShowEventPickable | HiAPI-C# 2025", "summary": "Class ShowEventPickable Namespace Hi.Disp Assembly HiDisp.dll Show pick events in console. public class ShowEventPickable : Pickable, IGetPickable, IDisposable Inheritance object Pickable ShowEventPickable Implements IGetPickable IDisposable Inherited Members Pickable.Pickables Pickable.mark Pickable.PickingID Pickable.GetPickable() Pickable.Dispose(bool) 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 ShowEventPickable() ctor. public ShowEventPickable() Properties Tag Tag shows in pick events. public object Tag { get; set; } Property Value object Methods OnKeyDown(key_event_t, DispEngine) Behavior on key down. public override void OnKeyDown(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnKeyUp(key_event_t, DispEngine) Behavior on key up public override void OnKeyUp(key_event_t e, DispEngine dispEngine) Parameters e key_event_t event dispEngine DispEngine display engine OnMouseDown(mouse_button_event_t, DispEngine) Behavior on mouse down public override void OnMouseDown(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine 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 OnMouseMove(mouse_move_event_t, DispEngine) Behavior on mouse move public override void OnMouseMove(mouse_move_event_t e, DispEngine dispEngine) Parameters e mouse_move_event_t event dispEngine DispEngine display engine OnMouseUp(mouse_button_event_t, DispEngine) Behavior on mouse up public override void OnMouseUp(mouse_button_event_t e, DispEngine dispEngine) Parameters e mouse_button_event_t event dispEngine DispEngine display engine OnMouseWheel(mouse_wheel_event_t, DispEngine) Behavior on mouse wheel public override void OnMouseWheel(mouse_wheel_event_t e, DispEngine dispEngine) Parameters e mouse_wheel_event_t event dispEngine DispEngine display engine" }, "api/Hi.Disp.Stamp.html": { "href": "api/Hi.Disp.Stamp.html", "title": "Enum Stamp | HiAPI-C# 2025", "summary": "Enum Stamp Namespace Hi.Disp Assembly HiDisp.dll Data scope of the double array for Drawing. public enum Stamp 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 CNV = 3 Points data in sequence of Color(3), Normal(3), Vertex(3), repetitively. CV = 2 Points data in sequence of Color(3), Vertex(3), repetitively. NV = 1 Points data in sequence of Normal(3), Vertex(3), repetitively. PCNV = 7 Points data in sequence of Pick(1), Color(3), Normal(3), Vertex(3), repetitively. PCV = 6 Points data in sequence of Pick(1), Color(3), Vertex(3), repetitively. PNV = 5 Points data in sequence of Pick(1), Normal(3), Vertex(3), repetitively. PV = 4 Points data in sequence of Pick(1), Vertex(3), repetitively. V = 0 Points data in sequence of Vertex(3), repetitively." }, "api/Hi.Disp.StringDrawing.html": { "href": "api/Hi.Disp.StringDrawing.html", "title": "Class StringDrawing | HiAPI-C# 2025", "summary": "Class StringDrawing Namespace Hi.Disp Assembly HiDisp.dll An IDisplayee to draw string. Multi-line text is supported: ‘\\n’ starts a new line. public class StringDrawing : IDisplayee, IExpandToBox3d, IDisposable Inheritance object StringDrawing 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 DispUtil.Display(IDisplayee, Bind, Mat4d) 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 StringDrawing(string) Constructor. public StringDrawing(string text) Parameters text string text Fields text Text to draw. public readonly string text Field Value string Properties Height Gets the height of the string drawing in pixels. public int Height { get; } Property Value int IsAlwaysOnTop Is text always on top. public bool IsAlwaysOnTop { get; set; } Property Value bool Width Gets the width of the string drawing in pixels. public int Width { get; } Property Value int Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, Vec3d, bool) Display at p. public void Display(Bind bind, Vec3d p, bool isAlwaysOnTop = false) Parameters bind Bind bind p Vec3d position isAlwaysOnTop bool is always on top Display(Bind, string, Vec3d, bool) Display text at p. public static void Display(Bind bind, string text, Vec3d p = null, bool isAlwaysOnTop = false) Parameters bind Bind bind text string text p Vec3d position isAlwaysOnTop bool is always on top 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 ~StringDrawing() protected ~StringDrawing()" }, "api/Hi.Disp.Treat.LineWidthSwap.html": { "href": "api/Hi.Disp.Treat.LineWidthSwap.html", "title": "Class LineWidthSwap | HiAPI-C# 2025", "summary": "Class LineWidthSwap Namespace Hi.Disp.Treat Assembly HiDisp.dll A utility class for temporarily changing the line width and restoring it when disposed. public class LineWidthSwap : IDisposable Inheritance object LineWidthSwap Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors LineWidthSwap(double) Initializes a new instance of the LineWidthSwap class. public LineWidthSwap(double lineWidth) Parameters lineWidth double The new line width to set. Properties PreLineWidth Gets the previous line width value that will be restored on disposal. public float PreLineWidth { get; } Property Value float Methods 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" }, "api/Hi.Disp.Treat.LineWidthTreat.html": { "href": "api/Hi.Disp.Treat.LineWidthTreat.html", "title": "Class LineWidthTreat | HiAPI-C# 2025", "summary": "Class LineWidthTreat Namespace Hi.Disp.Treat Assembly HiDisp.dll Object for set line width of opengl drawing. public class LineWidthTreat : IDisplayee, IExpandToBox3d Inheritance object LineWidthTreat Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 LineWidthTreat(float) Initializes a new instance of the LineWidthTreat class. public LineWidthTreat(float lineWidth) Parameters lineWidth float The line width to set. Properties LineWidth Gets or sets the line width value. public float LineWidth { get; set; } Property Value float Methods Display(Bind) Sets the line width in the OpenGL context. public void Display(Bind bind) Parameters bind Bind The binding context. ExpandToBox3d(Box3d) This implementation does nothing as line width does not affect bounding box. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The destination box to expand." }, "api/Hi.Disp.Treat.PointSizeSwap.html": { "href": "api/Hi.Disp.Treat.PointSizeSwap.html", "title": "Class PointSizeSwap | HiAPI-C# 2025", "summary": "Class PointSizeSwap Namespace Hi.Disp.Treat Assembly HiDisp.dll A utility class for temporarily changing the point size and restoring it when disposed. public class PointSizeSwap : IDisposable Inheritance object PointSizeSwap Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors PointSizeSwap(double) Initializes a new instance of the PointSizeSwap class. public PointSizeSwap(double pointSize) Parameters pointSize double The new point size to set. Properties PrePointSize Gets the previous point size value that will be restored on disposal. public float PrePointSize { get; } Property Value float Methods 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" }, "api/Hi.Disp.Treat.PointSizeTreat.html": { "href": "api/Hi.Disp.Treat.PointSizeTreat.html", "title": "Class PointSizeTreat | HiAPI-C# 2025", "summary": "Class PointSizeTreat Namespace Hi.Disp.Treat Assembly HiDisp.dll Object for set point size of opengl drawing. public class PointSizeTreat : IDisplayee, IExpandToBox3d Inheritance object PointSizeTreat Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 PointSizeTreat(int) Initializes a new instance of the PointSizeTreat class. public PointSizeTreat(int pointSize) Parameters pointSize int The point size to set. Properties PointSize Gets or sets the point size value. public int PointSize { get; set; } Property Value int Methods Display(Bind) Sets the point size in the OpenGL context. public void Display(Bind bind) Parameters bind Bind The binding context. ExpandToBox3d(Box3d) This implementation does nothing as point size does not affect bounding box. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The destination box to expand." }, "api/Hi.Disp.Treat.RgbSwap.html": { "href": "api/Hi.Disp.Treat.RgbSwap.html", "title": "Class RgbSwap | HiAPI-C# 2025", "summary": "Class RgbSwap Namespace Hi.Disp.Treat Assembly HiDisp.dll A utility class for temporarily changing the RGB color and restoring it when disposed. public class RgbSwap : IDisposable Inheritance object RgbSwap Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors RgbSwap(Bind, Vec3d) Initializes a new instance of the RgbSwap class. public RgbSwap(Bind bind, Vec3d rgb) Parameters bind Bind The binding context. rgb Vec3d The new RGB color to set. Properties PreRgb Gets the previous RGB color value that will be restored on disposal. public Vec3d PreRgb { get; } Property Value Vec3d Methods 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" }, "api/Hi.Disp.Treat.RgbTreat.html": { "href": "api/Hi.Disp.Treat.RgbTreat.html", "title": "Class RgbTreat | HiAPI-C# 2025", "summary": "Class RgbTreat Namespace Hi.Disp.Treat Assembly HiDisp.dll A displayee that sets the RGB color in the binding context. public class RgbTreat : IDisplayee, IExpandToBox3d Inheritance object RgbTreat Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 RgbTreat(Vec3d) Initializes a new instance of the RgbTreat class. public RgbTreat(Vec3d rgb = null) Parameters rgb Vec3d The RGB color vector to set. RgbTreat(double, double, double) Initializes a new instance of the RgbTreat class with RGB component values. public RgbTreat(double r, double g, double b) Parameters r double The red component (0.0 to 1.0). g double The green component (0.0 to 1.0). b double The blue component (0.0 to 1.0). Properties Rgb Gets or sets the RGB color vector. public Vec3d Rgb { get; set; } Property Value Vec3d Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.Treat.RgbWrapper.html": { "href": "api/Hi.Disp.Treat.RgbWrapper.html", "title": "Class RgbWrapper | HiAPI-C# 2025", "summary": "Class RgbWrapper Namespace Hi.Disp.Treat Assembly HiDisp.dll A wrapper displayee that applies an RGB color to the wrapped displayee. public class RgbWrapper : IDisplayee, IExpandToBox3d Inheritance object RgbWrapper Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 RgbWrapper() Initializes a new instance of the RgbWrapper class. public RgbWrapper() RgbWrapper(IDisplayee, Vec3d) Initializes a new instance of the RgbWrapper class with a displayee and RGB color. public RgbWrapper(IDisplayee displayee, Vec3d rgb = null) Parameters displayee IDisplayee The displayee to be wrapped. rgb Vec3d The RGB color to apply to the wrapped displayee. Properties Displayee Gets or sets the displayee to be wrapped. public IDisplayee Displayee { get; set; } Property Value IDisplayee Rgb Gets or sets the RGB color to apply to the wrapped displayee. public Vec3d Rgb { get; set; } Property Value Vec3d Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.Treat.TransformationWrapper.html": { "href": "api/Hi.Disp.Treat.TransformationWrapper.html", "title": "Class TransformationWrapper | HiAPI-C# 2025", "summary": "Class TransformationWrapper Namespace Hi.Disp.Treat Assembly HiDisp.dll A wrapper displayee that applies a transformation matrix to the wrapped displayees. public class TransformationWrapper : IDisplayee, IExpandToBox3d Inheritance object TransformationWrapper Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 TransformationWrapper(Mat4d, params IDisplayee[]) Initializes a new instance of the TransformationWrapper class. public TransformationWrapper(Mat4d mat, params IDisplayee[] displayees) Parameters mat Mat4d The transformation matrix to apply. displayees IDisplayee[] The displayees to be transformed. Properties Displayees Gets or sets the collection of displayees to be transformed. public SynList Displayees { get; set; } Property Value SynList TransformingMat Gets or sets the transformation matrix to apply to the wrapped displayees. public Mat4d TransformingMat { get; set; } Property Value Mat4d Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.Treat.html": { "href": "api/Hi.Disp.Treat.html", "title": "Namespace Hi.Disp.Treat | HiAPI-C# 2025", "summary": "Namespace Hi.Disp.Treat Classes LineWidthSwap A utility class for temporarily changing the line width and restoring it when disposed. LineWidthTreat Object for set line width of opengl drawing. PointSizeSwap A utility class for temporarily changing the point size and restoring it when disposed. PointSizeTreat Object for set point size of opengl drawing. RgbSwap A utility class for temporarily changing the RGB color and restoring it when disposed. RgbTreat A displayee that sets the RGB color in the binding context. RgbWrapper A wrapper displayee that applies an RGB color to the wrapped displayee. TransformationWrapper A wrapper displayee that applies a transformation matrix to the wrapped displayees." }, "api/Hi.Disp.Tri3dDispUtil.html": { "href": "api/Hi.Disp.Tri3dDispUtil.html", "title": "Class Tri3dDispUtil | HiAPI-C# 2025", "summary": "Class Tri3dDispUtil Namespace Hi.Disp Assembly HiDisp.dll Utility and Extension of Tri3d. public static class Tri3dDispUtil Inheritance object Tri3dDispUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(Tri3d, Bind) Display the face of src. public static void Display(this Tri3d src, Bind bind) Parameters src Tri3d triangle bind Bind Bind GetFaceDrawing(IEnumerable) Get ccw faces draw of tris. public static Drawing GetFaceDrawing(this IEnumerable tris) Parameters tris IEnumerable triangles Returns Drawing Drawing ToDrawing(Tri3d) Equivalent to ToFaceDrawing(Tri3d) public static Drawing ToDrawing(this Tri3d src) Parameters src Tri3d src Returns Drawing Drawing ToFaceBuf(Tri3d, double[], ref int) set n,p0,n,p1,n,p2 to double array. Where n is normal. public static int ToFaceBuf(this Tri3d src, double[] dst, ref int p) Parameters src Tri3d src dst double[] dst array p int current array position Returns int pushed double size:18 ToFaceDrawing(Tri3d) To Face Drawing. public static Drawing ToFaceDrawing(this Tri3d src) Parameters src Tri3d src Returns Drawing Face Drawing ToLineBuf(Tri3d, double[], ref int) Put lines array to the dst. The lines array contains 3 edges x 2 end points. public static int ToLineBuf(this Tri3d src, double[] dst, ref int p) Parameters src Tri3d src dst double[] dst p int position of the dst Returns int Which is pushed length, in number of double ToLineDrawing(Tri3d) To Line Drawing. public static Drawing ToLineDrawing(this Tri3d src) Parameters src Tri3d src Returns Drawing Line Drawing ToLineDrawing(IEnumerable) Get lines draw of the tris. public static Drawing ToLineDrawing(this IEnumerable tris) Parameters tris IEnumerable triangles Returns Drawing Drawing ToSparkleLineBuf(Tri3d, double[], ref int) Writes the sparkle line representation of a triangle (with normals) into a buffer. public static int ToSparkleLineBuf(this Tri3d src, double[] dst, ref int p) Parameters src Tri3d The source triangle. dst double[] The destination buffer. p int The current write position in the buffer, updated after writing. Returns int The number of elements written. ToSparkleLineDrawing(IEnumerable) Get lines draw of the tris. public static Drawing ToSparkleLineDrawing(this IEnumerable tris) Parameters tris IEnumerable triangles Returns Drawing Drawing" }, "api/Hi.Disp.Vec3dDispUtil.html": { "href": "api/Hi.Disp.Vec3dDispUtil.html", "title": "Class Vec3dDispUtil | HiAPI-C# 2025", "summary": "Class Vec3dDispUtil Namespace Hi.Disp Assembly HiDisp.dll Utility and Extension of Vec3d. public static class Vec3dDispUtil Inheritance object Vec3dDispUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(Bind, IList, Stamp, int) Display by the src. src will be expand to an array and then call Display(Bind, double[], Stamp, int). public static void Display(Bind bind, IList src, Stamp stamp, int glPrimitive) Parameters bind Bind bind src IList src stamp Stamp stamp glPrimitive int gl primitive Display(Vec3d, Bind) Display a point. public static void Display(this Vec3d src, Bind bind) Parameters src Vec3d point bind Bind bind ToLineStripDrawing(IList) Creates a line strip drawing from a list of points. public static Drawing ToLineStripDrawing(this IList points) Parameters points IList The list of points to draw as a line strip. Returns Drawing A Drawing object representing the line strip." }, "api/Hi.Disp.WrappedDisplayee.html": { "href": "api/Hi.Disp.WrappedDisplayee.html", "title": "Class WrappedDisplayee | HiAPI-C# 2025", "summary": "Class WrappedDisplayee Namespace Hi.Disp Assembly HiDisp.dll A wrapper class for IDisplayee that allows customizing display and bounding box behavior. public class WrappedDisplayee : IDisplayee, IExpandToBox3d Inheritance object WrappedDisplayee Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 WrappedDisplayee() Initializes a new instance of the WrappedDisplayee class. public WrappedDisplayee() WrappedDisplayee(IDisplayee, Action, Action) Initializes a new instance of the WrappedDisplayee class with specified displayee and delegates. public WrappedDisplayee(IDisplayee displayee, Action displayDelegate, Action expandToBox3dDelegate) Parameters displayee IDisplayee The displayee to wrap. displayDelegate Action The delegate for custom display behavior. expandToBox3dDelegate Action The delegate for custom bounding box expansion behavior. Properties DisplayDelegate Gets or sets the delegate for custom display behavior. public Action DisplayDelegate { get; set; } Property Value Action Displayee Gets or sets the wrapped displayee object. public IDisplayee Displayee { get; set; } Property Value IDisplayee ExpandToBox3dDelegate Gets or sets the delegate for custom bounding box expansion behavior. public Action ExpandToBox3dDelegate { get; set; } Property Value Action Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Disp.html": { "href": "api/Hi.Disp.html", "title": "Namespace Hi.Disp | HiAPI-C# 2025", "summary": "Namespace Hi.Disp Classes Bind Runtime rendering data for each iteration in rendering loop. It manipulates geometry transformation, such as moving, rotatingand scaling. It also deal with color and picking. A bind_t object is generated by rendering in the every beginning of each rendering iteration. Box3dDispUtil Utility and Extension of Box3d. DelegateFuncDisplayee A displayee implementation that delegates display functionality to a function. DispEngine HiAPI display engine. DispEngineConfig Configuration class for display engine. DispFrameUtil Utility class for display frame management. DispList A combination of IDisplayee and SynList. DispUtil Display Utility Drawing The most efficient elemental 3D rendering unit. FuncDisplayee A displayee implementation that delegates display functionality to function delegates. GL Native opengl functions wrapper. MatStack Stack-based Matrix. MatStack.ItemDisposable A disposable class that manages push and pop operations on a matrix stack. Pickable Picking event handler for rendering. Note that it has to be disposed manually or the object occurs memory leak. PopModelMat Call Pop() for Hi.Disp.Bind.modelMatStack in Display(Bind). This function is only for test purpose. Since the ExpandToBox3d(Box3d) just expand the translation part of the mat to the target box. This function should be use with PushModelMat. PushModelMat Call Push() for Hi.Disp.Bind.modelMatStack in Display(Bind). This function is only for test purpose. Since the ExpandToBox3d(Box3d) just expand the translation part of the mat to the target box. This function should be use with PopModelMat. Segment3dDispUtil Utilities for converting geometry segments to renderable drawings. ShowEventPickable Show pick events in console. StringDrawing An IDisplayee to draw string. Multi-line text is supported: ‘\\n’ starts a new line. Tri3dDispUtil Utility and Extension of Tri3d. Vec3dDispUtil Utility and Extension of Vec3d. WrappedDisplayee A wrapper class for IDisplayee that allows customizing display and bounding box behavior. Interfaces IDisplayee An object which can be displayed in DispEngine. IGetDispEngine Interface fo getting DispEngine. IGetPickable Get Pickable interface. IGlContextDirver Bridge of Native OpenGL Context. Enums MvpBoxRelation Relation between mvpBox and an AABB Stamp Data scope of the double array for Drawing. Delegates Box3dDispUtil.BoxableExpandToBox3dDel Delegate for expanding a native boxable object to a box3d. DispEngine.ImageRequestedDelegate For ImageRequestAfterBufferSwapped." }, "api/Hi.Fanuc.FanucVarTable.html": { "href": "api/Hi.Fanuc.FanucVarTable.html", "title": "Class FanucVarTable | HiAPI-C# 2025", "summary": "Class FanucVarTable Namespace Hi.Fanuc Assembly HiUniNc.dll Represents a table of Fanuc variables used for CNC machine control. public class FanucVarTable Inheritance object FanucVarTable 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) Constructors FanucVarTable() Initializes a new instance of the FanucVarTable class. public FanucVarTable() Properties TLB For tool lenght compensation (G43, G44) ‘true’ value is not supported. public bool TLB { get; } Property Value bool TLC For tool lenght compensation (G43, G44) ‘true’ value is not supported. public bool TLC { get; } Property Value bool Var5001 For tool lenght compensation (G43, G44) bit1(TLB),bit0(TLC) public int Var5001 { get; } Property Value int" }, "api/Hi.Fanuc.FanucVarValue.html": { "href": "api/Hi.Fanuc.FanucVarValue.html", "title": "Struct FanucVarValue | HiAPI-C# 2025", "summary": "Struct FanucVarValue Namespace Hi.Fanuc Assembly HiUniNc.dll Represents a value for Fanuc variable that can be interpreted as either an integer or a double. public struct FanucVarValue 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) Properties DoubleValue Gets or sets the double precision floating point representation of the variable value. public double DoubleValue { get; set; } Property Value double IntValue Gets or sets the integer representation of the variable value. public int IntValue { get; set; } Property Value int" }, "api/Hi.Fanuc.html": { "href": "api/Hi.Fanuc.html", "title": "Namespace Hi.Fanuc | HiAPI-C# 2025", "summary": "Namespace Hi.Fanuc Classes FanucVarTable Represents a table of Fanuc variables used for CNC machine control. Structs FanucVarValue Represents a value for Fanuc variable that can be interpreted as either an integer or a double." }, "api/Hi.Geom.ArrayUtil.html": { "href": "api/Hi.Geom.ArrayUtil.html", "title": "Class ArrayUtil | HiAPI-C# 2025", "summary": "Class ArrayUtil Namespace Hi.Geom Assembly HiGeom.dll Utility class for array operations. public static class ArrayUtil Inheritance object ArrayUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetColumn(T[,], int) Extracts a column from a 2D array. public static T[] GetColumn(this T[,] src, int columnIndex) Parameters src T[,] The source 2D array columnIndex int The index of the column to extract Returns T[] A 1D array containing the elements of the specified column Type Parameters T The type of elements in the array GetRow(T[,], int) Extracts a row from a 2D array. public static T[] GetRow(this T[,] src, int rowIndex) Parameters src T[,] The source 2D array rowIndex int The index of the row to extract Returns T[] A 1D array containing the elements of the specified row Type Parameters T The type of elements in the array GetRows(T[,]) Converts a 2D array to a jagged array of rows. public static T[][] GetRows(this T[,] src) Parameters src T[,] The source 2D array Returns T[][] A jagged array where each inner array represents a row from the source array Type Parameters T The type of elements in the array" }, "api/Hi.Geom.AxisAngle4d.html": { "href": "api/Hi.Geom.AxisAngle4d.html", "title": "Class AxisAngle4d | HiAPI-C# 2025", "summary": "Class AxisAngle4d Namespace Hi.Geom Assembly HiGeom.dll Axis(3d) and angle(1d) public class AxisAngle4d : IFormattable Inheritance object AxisAngle4d Implements IFormattable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 AxisAngle4d(Vec3d, double) Initializes a new instance of the AxisAngle4d class with the specified axis and angle. public AxisAngle4d(Vec3d axis, double angle_rad) Parameters axis Vec3d The rotation axis. angle_rad double The rotation angle in radians. AxisAngle4d(string) Initializes a new instance of the AxisAngle4d class from a string representation. public AxisAngle4d(string s) Parameters s string The string representation of the axis-angle in the format \"(axis,angle)\". Properties Angle_rad Angle in radian. public double Angle_rad { get; set; } Property Value double Axis Gets or sets the rotation axis. public Vec3d Axis { get; set; } Property Value Vec3d Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Formats the value of the current instance using the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use. -or- A null reference (Nothing in Visual Basic) to use the default format defined for the type of the IFormattable implementation. formatProvider IFormatProvider The provider to use to format the value. -or- A null reference (Nothing in Visual Basic) to obtain the numeric format information from the current locale setting of the operating system. Returns string The value of the current instance in the specified format." }, "api/Hi.Geom.Box2d.NoInit.html": { "href": "api/Hi.Geom.Box2d.NoInit.html", "title": "Class Box2d.NoInit | HiAPI-C# 2025", "summary": "Class Box2d.NoInit Namespace Hi.Geom Assembly HiGeom.dll Flag for calling Box2d(NoInit). public class Box2d.NoInit Inheritance object Box2d.NoInit 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)" }, "api/Hi.Geom.Box2d.html": { "href": "api/Hi.Geom.Box2d.html", "title": "Class Box2d | HiAPI-C# 2025", "summary": "Class Box2d Namespace Hi.Geom Assembly HiGeom.dll Lightweight 2d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box2d is Min and Max. public class Box2d : IExpandToBox2d, IEquatable, IBinaryIo, IWriteBin, IFormattable Inheritance object Box2d Implements IExpandToBox2d IEquatable IBinaryIo IWriteBin IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) 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 Box2d() Ctor. public Box2d() Box2d(NoInit) Ctor. The Ctor keeps Min and Max to null. public Box2d(Box2d.NoInit noInit) Parameters noInit Box2d.NoInit Box2d(params IExpandToBox2d[]) Initializes a new instance of the Box2d class that encompasses all the specified objects. public Box2d(params IExpandToBox2d[] src) Parameters src IExpandToBox2d[] The objects to include in the box. Box2d(Vec2d, Vec2d) Ctor. public Box2d(Vec2d min, Vec2d max) Parameters min Vec2d Min max Vec2d Max Box2d(box2d) Ctor. public Box2d(box2d src) Parameters src box2d src Box2d(IEnumerable) Initializes a new instance of the Box2d class that encompasses all the objects in the specified collection. public Box2d(IEnumerable src) Parameters src IEnumerable The collection of objects to include in the box. Box2d(double, double, double, double) Initializes a new instance of the Box2d class with the specified minimum and maximum coordinates. public Box2d(double minx, double miny, double maxx, double maxy) Parameters minx double The minimum X coordinate. miny double The minimum Y coordinate. maxx double The maximum X coordinate. maxy double The maximum Y coordinate. Box2d(BinaryReader) Initializes a new instance of the Box2d class from binary data. public Box2d(BinaryReader reader) Parameters reader BinaryReader The binary reader to read the data from. Box2d(XElement) Ctor. public Box2d(XElement src) Parameters src XElement XML Properties Center Center public Vec2d Center { get; } Property Value Vec2d CenterUnitBox Generate a center unit box which min~max is (-0.5,-0.5,-0.5)~(-0.5,0.5,0.5). public static Box2d CenterUnitBox { get; } Property Value Box2d DiagonalLength Diagonal length. public double DiagonalLength { get; } Property Value double Dim Dimension. public Vec2d Dim { get; } Property Value Vec2d HasVolume Gets a value indicating whether this box has a non-zero volume. public bool HasVolume { get; } Property Value bool IsAllNaN Determines whether all coordinates of this box are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite True if the box is finite. public bool IsFinite { get; } Property Value bool IsReversedPoleBox True if the box is ReversedPoleBox public bool IsReversedPoleBox { get; } Property Value bool Max Maximum point of the box. public Vec2d Max { get; set; } Property Value Vec2d Min Minimum point of the box. public Vec2d Min { get; set; } Property Value Vec2d NaN Generate a nan box which min~max is (nan,nan,nan)~(nan,nan,nan). public static Box2d NaN { get; } Property Value Box2d NativeByteSize Gets the size in bytes of the native representation of this box. public static int NativeByteSize { get; } Property Value int ReversedPoleBox Generate a reversed pole box which min~max is (∞,∞,∞)~(-∞,-∞,-∞). public static Box2d ReversedPoleBox { get; } Property Value Box2d UnitBox Generate a unit box which min~max is (0,0,0)~(1,1,1). public static Box2d UnitBox { get; } Property Value Box2d Volume Gets the volume (area) of this box. public double Volume { get; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZeroBox Generate a zero box which min~max is (0,0,0)~(0,0,0). public static Box2d ZeroBox { get; } Property Value Box2d Methods ApexAt(int) Get Apex at the box. public Vec2d ApexAt(int index) Parameters index int index 0~7. all of 8 apex. Returns Vec2d Equals(Box2d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Box2d other) Parameters other Box2d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Expand(Box2d) Expands this box to include the specified box. public Box2d Expand(Box2d src) Parameters src Box2d The box to include. Returns Box2d This box instance after expansion. Expand(Vec2d) Expands this box to include the specified point. public Box2d Expand(Vec2d p) Parameters p Vec2d The point to include in the box. Returns Box2d This box instance after expansion. ExpandToBox2d(Box2d) Expands the specified destination box to include this box. public void ExpandToBox2d(Box2d dst) Parameters dst Box2d The destination box to expand. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. IsOverlapped(Box2d) Is the box overlapped to otherBox. public bool IsOverlapped(Box2d otherBox) Parameters otherBox Box2d other box Returns bool is overlapped MakeXmlSource(string) public XElement MakeXmlSource(string baseDirectory) Parameters baseDirectory string Returns XElement ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Scale(double) Scale the box from the coordinate origin. The operation is equal to: Min *= s; Max *= s; public Box2d Scale(double s) Parameters s double scale Returns Box2d this ScaleFromCenter(double) Scales this box from its center by the specified factor. public Box2d ScaleFromCenter(double s) Parameters s double The scale factor. Returns Box2d This box instance after scaling. Set(Box2d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box2d Set(Box2d src) Parameters src Box2d src Returns Box2d this Set(box2d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box2d Set(box2d src) Parameters src box2d src Returns Box2d this Set(double, double, double, double) Sets the minimum and maximum coordinates of this box. public Box2d Set(double minx, double miny, double maxx, double maxy) Parameters minx double The minimum X coordinate. miny double The minimum Y coordinate. maxx double The maximum X coordinate. maxy double The maximum Y coordinate. Returns Box2d This box instance. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the box formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the box Translate(Vec2d) Translate the box. public Box2d Translate(Vec2d vec) Parameters vec Vec2d translation vector Returns Box2d this WriteBin(BinaryWriter) Writes the box data to a binary writer. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write the data to." }, "api/Hi.Geom.Box3d.NoInit.html": { "href": "api/Hi.Geom.Box3d.NoInit.html", "title": "Class Box3d.NoInit | HiAPI-C# 2025", "summary": "Class Box3d.NoInit Namespace Hi.Geom Assembly HiGeom.dll Flag for calling Box3d(NoInit). public class Box3d.NoInit Inheritance object Box3d.NoInit 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)" }, "api/Hi.Geom.Box3d.html": { "href": "api/Hi.Geom.Box3d.html", "title": "Class Box3d | HiAPI-C# 2025", "summary": "Class Box3d Namespace Hi.Geom Assembly HiGeom.dll Lightweight 3d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box3d is Min and Max. public class Box3d : IExpandToBox3d, IEquatable, IStlSource, IGetStl, IMakeXmlSource, IBinaryIo, IWriteBin, IDuplicate, IFormattable, IToPresentDto Inheritance object Box3d Implements IExpandToBox3d IEquatable IStlSource IGetStl IMakeXmlSource IBinaryIo IWriteBin IDuplicate IFormattable IToPresentDto Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Box3d() Ctor. public Box3d() Box3d(NoInit) Ctor. The Ctor keeps Min and Max to null. public Box3d(Box3d.NoInit noInit) Parameters noInit Box3d.NoInit Box3d(params IExpandToBox3d[]) Creates a box that encompasses all the provided expandable objects. public Box3d(params IExpandToBox3d[] src) Parameters src IExpandToBox3d[] Array of objects that can expand to a box Box3d(Vec3d, Vec3d) Ctor. public Box3d(Vec3d min, Vec3d max) Parameters min Vec3d Min max Vec3d Max Box3d(box3d) Ctor. public Box3d(box3d src) Parameters src box3d src Box3d(IEnumerable) Creates a box that encompasses all the provided expandable objects. public Box3d(IEnumerable src) Parameters src IEnumerable Collection of objects that can expand to a box Box3d(double, double, double, double, double, double) Creates a box with the specified minimum and maximum coordinates. public Box3d(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Box3d(BinaryReader) Creates a box from binary data. public Box3d(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from Box3d(XElement) Ctor. public Box3d(XElement src) Parameters src XElement XML Properties BottomCenter Center of the bottom surface. public Vec3d BottomCenter { get; } Property Value Vec3d BottomView Gets a transformation matrix for viewing the box from the bottom. public Mat4d BottomView { get; } Property Value Mat4d Center Center public Vec3d Center { get; } Property Value Vec3d CenterUnitBox Generate a center unit box which min~max is (-0.5,-0.5,-0.5)~(0.5,0.5,0.5). public static Box3d CenterUnitBox { get; } Property Value Box3d DiagonalLength Diagonal length. public double DiagonalLength { get; } Property Value double Dim Dimension. public Vec3d Dim { get; } Property Value Vec3d FrontView Gets a transformation matrix for viewing the box from the front. public Mat4d FrontView { get; } Property Value Mat4d HasVolume Checks if the box has a positive volume (all dimensions are greater than zero). public bool HasVolume { get; } Property Value bool InfiniteBox Generate a infinite box which min~max is (-∞,-∞,-∞)~(∞,∞,∞). public static Box3d InfiniteBox { get; } Property Value Box3d IsAllNaN True if all components of Min and Max are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite True if the box is finite. public bool IsFinite { get; } Property Value bool IsReversedPoleBox True if the box is ReversedPoleBox public bool IsReversedPoleBox { get; } Property Value bool IsometricView Gets a transformation matrix for viewing the box from an isometric perspective. public Mat4d IsometricView { get; } Property Value Mat4d LeftSideView Gets a transformation matrix for viewing the box from the left side. public Mat4d LeftSideView { get; } Property Value Mat4d Max Maximum point of the box. public Vec3d Max { get; set; } Property Value Vec3d Min Minimum point of the box. public Vec3d Min { get; set; } Property Value Vec3d NaN Generate a nan box which min~max is (nan,nan,nan)~(nan,nan,nan). public static Box3d NaN { get; } Property Value Box3d NativeByteSize Gets the native byte size of a Box3d (2 Vec3d objects). public static int NativeByteSize { get; } Property Value int RearView Gets a transformation matrix for viewing the box from the rear. public Mat4d RearView { get; } Property Value Mat4d ReversedPoleBox Generate a reversed pole box which min~max is (∞,∞,∞)~(-∞,-∞,-∞). public static Box3d ReversedPoleBox { get; } Property Value Box3d RightSideView Gets a transformation matrix for viewing the box from the right side. public Mat4d RightSideView { get; } Property Value Mat4d TopCenter Center of the top surface. public Vec3d TopCenter { get; } Property Value Vec3d TopView Gets a transformation matrix for viewing the box from the top. public Mat4d TopView { get; } Property Value Mat4d UnitBox Generate a unit box which min~max is (0,0,0)~(1,1,1). public static Box3d UnitBox { get; } Property Value Box3d Volume Gets the volume of the box. public double Volume { get; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZeroBox Generate a zero box which min~max is (0,0,0)~(0,0,0). public static Box3d ZeroBox { get; } Property Value Box3d Methods ApexAt(int) Get Apex at the box. public Vec3d ApexAt(int index) Parameters index int index 0~7. all of 8 apex. Returns Vec3d Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Equals(Box3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Box3d other) Parameters other Box3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Expand(Box3d) Expands this box to include another box. public Box3d Expand(Box3d src) Parameters src Box3d The box to include Returns Box3d This box after expansion Expand(Vec3d) Expands the box to include the specified point. public Box3d Expand(Vec3d p) Parameters p Vec3d Point to include in the box Returns Box3d This box after expansion Expand(IEnumerable) Expands the box to include all specified points. public Box3d Expand(IEnumerable ps) Parameters ps IEnumerable The points to include in the box. Returns Box3d This box after expansion. 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 GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetStl() Generate Stl. public Stl GetStl() Returns Stl stl GetTransformedBoundingBox(Mat4d) Get the bounding box of the transformed box. public Box3d GetTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d GetTris(ICollection) Generates triangles representing the box's surfaces. public int GetTris(ICollection dst) Parameters dst ICollection Collection to add the triangles to Returns int The number of triangles added (12) IsOverlapped(Box3d) Is the box overlapped to otherBox. public bool IsOverlapped(Box3d otherBox) Parameters otherBox Box3d other box Returns bool is overlapped MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. MemberAt(int) Get member at the location. public Vec3d MemberAt(int iter) Parameters iter int iterator Returns Vec3d Minif iter is 0; otherwise, return Max ReadBin(BinaryReader) Reads box data from a binary reader. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader Binary reader to read the box data from Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ScaleFromCenter(double) Scales the box from its center point. public Box3d ScaleFromCenter(double s) Parameters s double Scale factor Returns Box3d This box after scaling Set(Box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(Box3d src) Parameters src Box3d src Returns Box3d this Set(box3d) Copy the src. The Min and Max are kept the same object. Only the double values changed. public Box3d Set(box3d src) Parameters src box3d src Returns Box3d this Set(double, double, double, double, double, double) Sets the box coordinates to the specified values. public Box3d Set(double minx, double miny, double minz, double maxx, double maxy, double maxz) Parameters minx double Minimum X coordinate miny double Minimum Y coordinate minz double Minimum Z coordinate maxx double Maximum X coordinate maxy double Maximum Y coordinate maxz double Maximum Z coordinate Returns Box3d This box after modification SetToTransformedBoundingBox(Mat4d) Set the box to the bounding box of the matrix-transformed box. public Box3d SetToTransformedBoundingBox(Mat4d mat) Parameters mat Mat4d matrix Returns Box3d this ToPresentDto() Convert Box3d to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, Min, Max keys ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the box formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the box Translate(Vec3d) Translate the box. public Box3d Translate(Vec3d vec) Parameters vec Vec3d translation vector Returns Box3d this WriteBin(BinaryWriter) Writes box data to a binary writer. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter Binary writer to write the box data to" }, "api/Hi.Geom.Cylindroid.html": { "href": "api/Hi.Geom.Cylindroid.html", "title": "Class Cylindroid | HiAPI-C# 2025", "summary": "Class Cylindroid Namespace Hi.Geom Assembly HiGeom.dll 3d Geometry of Cylindroid. public class Cylindroid : IStlSource, IGetStl, IMakeXmlSource, IExpandToBox3d, IGetZrContour, IDuplicate, IGetZrList, IGenStl, IToPresentDto Inheritance object Cylindroid Implements IStlSource IGetStl IMakeXmlSource IExpandToBox3d IGetZrContour IDuplicate IGetZrList IGenStl IToPresentDto Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) PairZrUtil.GetVolume(IGetZrList) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Cylindroid() Initializes a new instance of the Cylindroid class with an empty list of PairZr objects. public Cylindroid() Cylindroid(Cylindroid) Initializes a new instance of the Cylindroid class by copying another Cylindroid. public Cylindroid(Cylindroid src) Parameters src Cylindroid The source Cylindroid to copy from. Cylindroid(params PairZr[]) Ctor. The order of z values should be from small to large in general case. public Cylindroid(params PairZr[] pairZRs) Parameters pairZRs PairZr[] See PairZrs. Cylindroid(XElement) Ctor. public Cylindroid(XElement src) Parameters src XElement XML Properties DefaultPolarResolution2d Default polar resolution. public static IPolarResolution2d DefaultPolarResolution2d { get; set; } Property Value IPolarResolution2d PairZrs ZR values. The order of z values should be from small to large in general case. public List PairZrs { get; set; } Property Value List UnitCylinder Generate a cylindroid that height is 1 and radius is 0.5. public static Cylindroid UnitCylinder { get; } Property Value Cylindroid XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GenCylinder(double, double) Generates a cylinder with the specified height and radius. public static Cylindroid GenCylinder(double height, double r) Parameters height double The height of the cylinder. r double The radius of the cylinder. Returns Cylindroid A new Cylindroid representing the cylinder. GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object GetZrContour(double) Gets Z-R contour data as a list of PairZr objects. The Z values should generally be ordered from smallest to largest. public IList GetZrContour(double latitudeAngleResolution_rad) Parameters latitudeAngleResolution_rad double Resolution of latitude angle in radians Returns IList Z-R contour data as a list of PairZr objects GetZrList() Gets a list of Z-R coordinate pairs. public List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert Cylindroid to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and PairZrs keys" }, "api/Hi.Geom.DVec3d.html": { "href": "api/Hi.Geom.DVec3d.html", "title": "Class DVec3d | HiAPI-C# 2025", "summary": "Class DVec3d Namespace Hi.Geom Assembly HiGeom.dll Dual Vec3d with p(Vec3d) and n(Vec3d). public class DVec3d : IEquatable, IWriteBin, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IMultiplyOperators, IDivisionOperators, IVec, IFormattable Inheritance object DVec3d Implements IEquatable IWriteBin IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IMultiplyOperators IDivisionOperators IVec IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) 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 DVec3d() Ctor. The members are initialized to null. public DVec3d() DVec3d(DVec3d, bool) Initializes a new instance of the DVec3d class by copying another DVec3d. public DVec3d(DVec3d src, bool shareFields = false) Parameters src DVec3d The source DVec3d to copy from. shareFields bool If true, references to the source Point and Normal are used; otherwise, new instances are created with copied values. DVec3d(Mat4d) Ctor. set mat[12] to Point.x; set mat[13] to Point.y; set mat[14] to Point.z; set mat[8] to Normal.x; set mat[9] to Normal.y; set mat[10] to Normal.z; public DVec3d(Mat4d mat) Parameters mat Mat4d matrix DVec3d(Vec3d, Vec3d) Ctor. public DVec3d(Vec3d p, Vec3d n) Parameters p Vec3d Point n Vec3d Normal DVec3d(IEnumerable) Initializes a new instance of the DVec3d class from an enumerable collection of doubles. public DVec3d(IEnumerable src) Parameters src IEnumerable The source collection containing at least 6 double values. The first 3 values initialize the Point, and the last 3 values initialize the Normal. DVec3d(double, double, double, double, double, double) Ctor. public DVec3d(double px, double py, double pz, double nx, double ny, double nz) Parameters px double Point.x py double Point.y pz double Point.z nx double Normal.x ny double Normal.y nz double Normal.z DVec3d(double[]) Ctor. public DVec3d(double[] src) Parameters src double[] Array elements 0,1,2 initialize Point x,y,z; Array elements 3,4,5 initialize Point x,y,z DVec3d(Func) Initializes a new instance of the DVec3d class using a function that maps indices to values. public DVec3d(Func dirToValueFunc) Parameters dirToValueFunc Func A function that takes an index (0-5) and returns the corresponding coordinate value. Indices 0-2 are for Point coordinates, and 3-5 are for Normal coordinates. DVec3d(BinaryReader) Initializes a new instance of the DVec3d class from binary data. public DVec3d(BinaryReader reader) Parameters reader BinaryReader The binary reader to read the data from. DVec3d(string) Ctor. The reading format is ((x,y,z),(x,y,z)), the first xyz is for Point; the second xyz is for Normal. public DVec3d(string str) Parameters str string string See Also ToString() Properties ElementNum Element number: 6 for (Point(x,y,z),Normal(x,y,z)). public static int ElementNum { get; } Property Value int IsAllNaN Gets a value indicating whether all components of both Point and Normal are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite Gets a value indicating whether all components of both Point and Normal are finite. public bool IsFinite { get; } Property Value bool this[int] Gets or sets the element at the specified index. public double this[int index] { get; set; } Parameters index int The zero-based index of the element to get or set. Property Value double The element at the specified index. NaN Gets a DVec3d with all components set to NaN. public static DVec3d NaN { get; } Property Value DVec3d Normal Normal. public Vec3d Normal { get; set; } Property Value Vec3d Point Point. public Vec3d Point { get; set; } Property Value Vec3d Rank Dimension (i.e. Size) of the Vector. public int Rank { get; } Property Value int Zero Gets a DVec3d with all components set to zero. public static DVec3d Zero { get; } Property Value DVec3d Methods At(int) Gets a reference to the component at the specified index. public ref double At(int dir) Parameters dir int The index of the component to access (0-5). Indices 0-2 access Point coordinates (x,y,z), and indices 3-5 access Normal coordinates (x,y,z). Returns double A reference to the specified component. Enumerate() For each. Point first. Normal second. public IEnumerable Enumerate() Returns IEnumerable Equals(DVec3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(DVec3d other) Parameters other DVec3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GenNaN() Creates a new DVec3d with all components set to NaN. public static DVec3d GenNaN() Returns DVec3d A new DVec3d with all components set to NaN. GenZero() Creates a new DVec3d with all components set to zero. public static DVec3d GenZero() Returns DVec3d A new DVec3d with all components set to zero. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Interpolate(DVec3d, DVec3d, double) Interpolates between two DVec3d instances. public static DVec3d Interpolate(DVec3d a, DVec3d b, double ratio) Parameters a DVec3d The first DVec3d. b DVec3d The second DVec3d. ratio double The interpolation ratio (0.0 to 1.0). Returns DVec3d A new DVec3d interpolated between a and b. Set(DVec3d, bool) Sets the values of this instance from another DVec3d. public void Set(DVec3d src, bool shareFields = false) Parameters src DVec3d The source DVec3d to copy values from. shareFields bool If true, references to the source Point and Normal are used; otherwise, their values are copied. Set(double, double, double, double, double, double) Call Point.Set(double, double, double) and Normal.Set(double, double, double) to set the values. public void Set(double px, double py, double pz, double nx, double ny, double nz) Parameters px double Point.x py double Point.y pz double Point.z nx double Normal.x ny double Normal.y nz double Normal.z Remarks If the Point or Normal is null, the function will corrupt. SetEachValueAbs() Sets each component of both Point and Normal to its absolute value. public DVec3d SetEachValueAbs() Returns DVec3d This instance after the operation. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string) Returns a string representation of this DVec3d using the specified format for component values. public string ToString(string format) Parameters format string The format string to use for component values. Returns string A string representation of this DVec3d. ToString(string, IFormatProvider) Returns a string representation of the dual vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the dual vector WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to Operators operator +(DVec3d, DVec3d) Adds two values together to compute their sum. public static DVec3d operator +(DVec3d a, DVec3d b) Parameters a DVec3d b DVec3d Returns DVec3d The sum of left and right. operator /(DVec3d, double) Divides one value by another to compute their quotient. public static DVec3d operator /(DVec3d src, double s) Parameters src DVec3d s double Returns DVec3d The quotient of left divided by right. operator ==(DVec3d, DVec3d) Compares two values to determine equality. public static bool operator ==(DVec3d left, DVec3d right) Parameters left DVec3d The value to compare with right. right DVec3d The value to compare with left. Returns bool true if left is equal to right; otherwise, false. operator !=(DVec3d, DVec3d) Compares two values to determine inequality. public static bool operator !=(DVec3d left, DVec3d right) Parameters left DVec3d The value to compare with right. right DVec3d The value to compare with left. Returns bool true if left is not equal to right; otherwise, false. operator *(DVec3d, Mat4d) Multiplies two values together to compute their product. public static DVec3d operator *(DVec3d a, Mat4d b) Parameters a DVec3d b Mat4d Returns DVec3d The product of left multiplied by right. operator *(DVec3d, double) Multiplies two values together to compute their product. public static DVec3d operator *(DVec3d src, double s) Parameters src DVec3d s double Returns DVec3d The product of left multiplied by right. operator -(DVec3d, DVec3d) Subtracts two values to compute their difference. public static DVec3d operator -(DVec3d a, DVec3d b) Parameters a DVec3d b DVec3d Returns DVec3d The value of right subtracted from left. operator -(DVec3d) Create a negate DVec3d. The field objects are created, i.e. the field objects are not shared with this. public static DVec3d operator -(DVec3d src) Parameters src DVec3d src Returns DVec3d negate DVec3d" }, "api/Hi.Geom.Dir.html": { "href": "api/Hi.Geom.Dir.html", "title": "Enum Dir | HiAPI-C# 2025", "summary": "Enum Dir Namespace Hi.Geom Assembly HiGeom.dll Enumeration of coordinate axis directions in 3D space. public enum Dir 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 X = 0 X-axis direction (index 0). Y = 1 Y-axis direction (index 1). Z = 2 Z-axis direction (index 2)." }, "api/Hi.Geom.ExtendedCylinder.html": { "href": "api/Hi.Geom.ExtendedCylinder.html", "title": "Class ExtendedCylinder | HiAPI-C# 2025", "summary": "Class ExtendedCylinder Namespace Hi.Geom Assembly HiGeom.dll An extensible cylinder geometry that generates a corresponding Cylindroid by the start section and the total length. public class ExtendedCylinder : IStlSource, IGetStl, IExpandToBox3d, IGetZrContour, IDuplicate, IGetZrList, IGenStl, IMakeXmlSource, IToXElement Inheritance object ExtendedCylinder Implements IStlSource IGetStl IExpandToBox3d IGetZrContour IDuplicate IGetZrList IGenStl IMakeXmlSource IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) PairZrUtil.GetVolume(IGetZrList) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ExtendedCylinder() Initializes a new instance of the ExtendedCylinder class. public ExtendedCylinder() ExtendedCylinder(double, Func) Initializes a new instance with the specified total length and start section provider. public ExtendedCylinder(double fullLength, Func beginPairZrSource = null) Parameters fullLength double Total length beginPairZrSource Func Start section provider ExtendedCylinder(XElement) Initializes a new instance of the ExtendedCylinder class from XML data. public ExtendedCylinder(XElement src) Parameters src XElement The XML element containing extended cylinder data. Properties BeginPairZrSource The provider of the starting ZR section. public Func BeginPairZrSource { get; set; } Property Value Func Cylindroid Returns a Cylindroid view generated from current settings. public Cylindroid Cylindroid { get; } Property Value Cylindroid FullLength The total length of the cylinder along the Z-axis. public double FullLength { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object GetZrContour(double) Gets Z-R contour data as a list of PairZr objects. The Z values should generally be ordered from smallest to largest. public IList GetZrContour(double latitudeAngleResolution_rad) Parameters latitudeAngleResolution_rad double Resolution of latitude angle in radians Returns IList Z-R contour data as a list of PairZr objects GetZrList() Gets a list of Z-R coordinate pairs. public List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Geom.Flat3d.html": { "href": "api/Hi.Geom.Flat3d.html", "title": "Class Flat3d | HiAPI-C# 2025", "summary": "Class Flat3d Namespace Hi.Geom Assembly HiGeom.dll Represents a 3D plane defined by a unit normal vector and its signed distance from the origin. The plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector and d is the distance to origin. public class Flat3d : IFlat3d, IBinaryIo, IWriteBin, IEquatable Inheritance object Flat3d Implements IFlat3d IBinaryIo IWriteBin IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) 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 Flat3d() Initializes a new instance of the Flat3d class. public Flat3d() Flat3d(IFlat3d) Copy constructor. public Flat3d(IFlat3d src) Parameters src IFlat3d Source plane Flat3d(Vec3d, double) Initializes a new instance of the Flat3d class with a normal vector and distance to origin. public Flat3d(Vec3d normal, double distanceToOrigin) Parameters normal Vec3d The unit normal vector of the plane. distanceToOrigin double The signed distance from origin to the plane. Properties DistanceToOrigin The signed distance from the origin (0,0,0) to this plane. A positive distance means the origin is on the same side as the normal vector. public double DistanceToOrigin { get; set; } Property Value double Normal The unit normal to the plane. public Vec3d Normal { get; set; } Property Value Vec3d Methods DistanceTo(Vec3d) Gets the distance from a point to this plane. public double DistanceTo(Vec3d point) Parameters point Vec3d The point to calculate distance to. Returns double The signed distance from the point to the plane. Equals(Flat3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Flat3d other) Parameters other Flat3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. FromPointAndNormal(Vec3d, Vec3d) Creates a plane from a point and normal vector. public static Flat3d FromPointAndNormal(Vec3d point, Vec3d normal) Parameters point Vec3d A point on the plane. normal Vec3d The normal vector of the plane. Returns Flat3d A new plane instance. GetDistanceToOrigin() Signed Distance To Origin. public double GetDistanceToOrigin() Returns double Signed Distance To Origin. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetLocate() Gets a point on the plane closest to the origin. public Vec3d GetLocate() Returns Vec3d GetNormal() Gets the normal vector of the flat surface. public Vec3d GetNormal() Returns Vec3d The unit normal vector ProjectPoint(Vec3d) Projects a point onto this plane. public Vec3d ProjectPoint(Vec3d point) Parameters point Vec3d The point to project. Returns Vec3d The projected point on the plane. ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from ToString() Returns a string representation of the plane. public override string ToString() Returns string WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Geom.Fraction-1.html": { "href": "api/Hi.Geom.Fraction-1.html", "title": "Struct Fraction | HiAPI-C# 2025", "summary": "Struct Fraction Namespace Hi.Geom Assembly HiDisp.dll Pure C# unlimited precision fraction. public struct Fraction : IComparable>, IEquatable> where TEva : struct, INumber Type Parameters TEva Evaluated floating point type (e.g. double, decimal). Implements IComparable> IEquatable> Inherited Members 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) MathUtil.Clamp(T, T, T) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks A fraction consists of a numerator and denominator using BigInteger. The fraction may be not packed or not evaluated. However, all fraction numerator and denominator are singular managed and denominator is never negative. Design mirrors geom::fraction_t<0, EvaType> in CppCore. Constructors Fraction() Initializes a zero fraction (0/0, status=None). public Fraction() Fraction(long) Initializes a fraction with integer value. public Fraction(long num) Parameters num long The integer value. Fraction(long, long) Initializes a fraction with numerator and denominator. public Fraction(long num, long den) Parameters num long The numerator. den long The denominator. Fraction(BigInteger) Initializes a fraction with integer value. public Fraction(BigInteger num) Parameters num BigInteger The integer value. Fraction(BigInteger, BigInteger) Initializes a fraction with numerator and denominator. public Fraction(BigInteger num, BigInteger den) Parameters num BigInteger The numerator. den BigInteger The denominator. Properties CeilInt Gets the ceiling integer value. public readonly int CeilInt { get; } Property Value int Denominator Gets or sets the denominator. public BigInteger Denominator { readonly get; set; } Property Value BigInteger FloorInt Gets the floor integer value. public readonly int FloorInt { get; } Property Value int IsEvaluated Gets whether the fraction value has been evaluated. public readonly bool IsEvaluated { get; } Property Value bool IsFinite Gets whether the fraction is finite (denominator != 0). public readonly bool IsFinite { get; } Property Value bool IsNaN Gets whether the fraction is NaN (0/0). public readonly bool IsNaN { get; } Property Value bool IsPacked Gets whether the fraction is packed (reduced to irreducible form). public readonly bool IsPacked { get; } Property Value bool IsZero Gets whether the fraction is zero (numerator == 0 and denominator != 0). public readonly bool IsZero { get; } Property Value bool NaN NaN fraction (0/0). public static Fraction NaN { get; } Property Value Fraction NegativeInf Negative infinity fraction (-1/0). public static Fraction NegativeInf { get; } Property Value Fraction Numerator Gets or sets the numerator. public BigInteger Numerator { readonly get; set; } Property Value BigInteger One One fraction (1/1). public static Fraction One { get; } Property Value Fraction PositiveInf Positive infinity fraction (1/0). public static Fraction PositiveInf { get; } Property Value Fraction RoughValue Gets the roughly evaluated value. If the data has not been reduced, the return value is not evaluated by the reduced numbers. public TEva RoughValue { get; } Property Value TEva Sign Gets the sign of the fraction (-1, 0, or 1). public readonly int Sign { get; } Property Value int Status Gets the status flags. public readonly FractionStatus Status { get; } Property Value FractionStatus Value Gets the evaluated value. Computes the value if not yet evaluated. public TEva Value { get; } Property Value TEva Zero Zero fraction (0/1). public static Fraction Zero { get; } Property Value Fraction Methods Abs() Gets the absolute value as a new fraction. public readonly Fraction Abs() Returns Fraction CompareTo(Fraction) Compares this fraction with another. public readonly int CompareTo(Fraction other) Parameters other Fraction The other fraction. Returns int -1 if less, 0 if equal, 1 if greater. Equals(Fraction) Indicates whether the current object is equal to another object of the same type. public readonly bool Equals(Fraction other) Parameters other Fraction An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override readonly bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. Evaluate() Evaluates the value if not already evaluated. public Fraction Evaluate() Returns Fraction This instance for chaining. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Negate() Negates this fraction in place. public Fraction Negate() Returns Fraction This instance for chaining. Pack() Packs (reduces) the fraction to irreducible form if not already packed. public Fraction Pack() Returns Fraction This instance for chaining. PerformanceTest(int, int) Performance test for Fraction (pure C#). Test 1: Accumulative += with Val (bounded, linear growth). Test 2: Bounded arithmetic (converging average). public static void PerformanceTest(int iterations = 128, int rounds = 16) Parameters iterations int Number of steps per round. rounds int Number of rounds to average timing. Reciprocal() Gets the reciprocal as a new fraction. public readonly Fraction Reciprocal() Returns Fraction SetAbs() Sets this fraction to its absolute value. public Fraction SetAbs() Returns Fraction This instance for chaining. SetReciprocal() Sets this fraction to its reciprocal. public Fraction SetReciprocal() Returns Fraction This instance for chaining. SetSquare() Sets this fraction to its square. public Fraction SetSquare() Returns Fraction This instance for chaining. Simplify(TEva) Simplifies the fraction to the specified resolution using Stern-Brocot binary search. public Fraction Simplify(TEva resolution) Parameters resolution TEva The resolution tolerance. Returns Fraction This instance for chaining. Square() Gets the square as a new fraction. public readonly Fraction Square() Returns Fraction Test() Test function for Fraction. public static void Test() ToString() Returns the fully qualified type name of this instance. public override readonly string ToString() Returns string The fully qualified type name. Val(TEva, TEva) Creates a fraction by approximating a double value with specified resolution. Uses Stern-Brocot binary search. public static Fraction Val(TEva val, TEva resolution) Parameters val TEva The double value to approximate. resolution TEva The resolution tolerance. Returns Fraction The approximated fraction. Operators operator +(Fraction, Fraction) Addition: fraction + fraction. public static Fraction operator +(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns Fraction operator +(Fraction, long) Addition: fraction + integer. public static Fraction operator +(Fraction a, long b) Parameters a Fraction b long Returns Fraction operator +(long, Fraction) Addition: integer + fraction. public static Fraction operator +(long a, Fraction b) Parameters a long b Fraction Returns Fraction operator /(Fraction, Fraction) Division: fraction / fraction. public static Fraction operator /(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns Fraction operator /(Fraction, long) Division: fraction / integer. public static Fraction operator /(Fraction a, long b) Parameters a Fraction b long Returns Fraction operator /(long, Fraction) Division: integer / fraction. public static Fraction operator /(long a, Fraction b) Parameters a long b Fraction Returns Fraction operator ==(Fraction, Fraction) Equality operator. public static bool operator ==(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator ==(Fraction, long) Equality with integer. public static bool operator ==(Fraction a, long b) Parameters a Fraction b long Returns bool explicit operator double(Fraction) Explicit conversion to double. public static explicit operator double(Fraction f) Parameters f Fraction Returns double operator >(Fraction, Fraction) Greater than operator. public static bool operator >(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator >(Fraction, long) Greater than integer. public static bool operator >(Fraction a, long b) Parameters a Fraction b long Returns bool operator >=(Fraction, Fraction) Greater than or equal operator. public static bool operator >=(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator >=(Fraction, long) Greater than or equal to integer. public static bool operator >=(Fraction a, long b) Parameters a Fraction b long Returns bool implicit operator Fraction(int) Implicit conversion from int. public static implicit operator Fraction(int v) Parameters v int Returns Fraction implicit operator Fraction(long) Implicit conversion from long. public static implicit operator Fraction(long v) Parameters v long Returns Fraction operator !=(Fraction, Fraction) Inequality operator. public static bool operator !=(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator !=(Fraction, long) Inequality with integer. public static bool operator !=(Fraction a, long b) Parameters a Fraction b long Returns bool operator <(Fraction, Fraction) Less than operator. public static bool operator <(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator <(Fraction, long) Less than integer. public static bool operator <(Fraction a, long b) Parameters a Fraction b long Returns bool operator <=(Fraction, Fraction) Less than or equal operator. public static bool operator <=(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns bool operator <=(Fraction, long) Less than or equal to integer. public static bool operator <=(Fraction a, long b) Parameters a Fraction b long Returns bool operator *(Fraction, Fraction) Multiplication: fraction * fraction. public static Fraction operator *(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns Fraction operator *(Fraction, long) Multiplication: fraction * integer. public static Fraction operator *(Fraction a, long b) Parameters a Fraction b long Returns Fraction operator *(long, Fraction) Multiplication: integer * fraction. public static Fraction operator *(long a, Fraction b) Parameters a long b Fraction Returns Fraction operator -(Fraction, Fraction) Subtraction: fraction - fraction. public static Fraction operator -(Fraction a, Fraction b) Parameters a Fraction b Fraction Returns Fraction operator -(Fraction, long) Subtraction: fraction - integer. public static Fraction operator -(Fraction a, long b) Parameters a Fraction b long Returns Fraction operator -(long, Fraction) Subtraction: integer - fraction. public static Fraction operator -(long a, Fraction b) Parameters a long b Fraction Returns Fraction operator -(Fraction) Negation operator. public static Fraction operator -(Fraction a) Parameters a Fraction Returns Fraction" }, "api/Hi.Geom.FractionStatus.html": { "href": "api/Hi.Geom.FractionStatus.html", "title": "Enum FractionStatus | HiAPI-C# 2025", "summary": "Enum FractionStatus Namespace Hi.Geom Assembly HiDisp.dll Status flags for Fraction and NativeFraction. Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t. [Flags] public enum FractionStatus : short 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 IsEvaluated = 2 The fraction's double value has been evaluated and cached. IsPacked = 1 The fraction has been packed (reduced to irreducible form). None = 0 No flags set. The fraction is neither packed nor evaluated." }, "api/Hi.Geom.GeomCombination.html": { "href": "api/Hi.Geom.GeomCombination.html", "title": "Class GeomCombination | HiAPI-C# 2025", "summary": "Class GeomCombination Namespace Hi.Geom Assembly HiGeom.dll A class that manages multiple STL sources as a single source. public class GeomCombination : IStlSource, IGetStl, IMakeXmlSource, IGenStl Inheritance object GeomCombination Implements IStlSource IGetStl IMakeXmlSource IGenStl Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) PairZrUtil.GetZrList(IGetStl) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors GeomCombination() Default constructor that initializes an empty collection of STL sources. public GeomCombination() GeomCombination(params IStlSource[]) Initializes a new instance with a set of STL sources. public GeomCombination(params IStlSource[] stlSources) Parameters stlSources IStlSource[] A set of STL sources GeomCombination(XElement, string, string, IProgress) Ctor. public GeomCombination(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement XML baseDirectory string Base directory path relFile string Relative file path progress IProgress Optional progress reporter for the XML parsing chain Properties StlSources Collection of STL sources managed by this instance. public List StlSources { get; } Property Value List XName Name for XML IO. public static string XName { get; } Property Value string Methods CleanStlCache() Clears the cached STL data, forcing it to be regenerated on the next request. public void CleanStlCache() Duplicate(params object[]) public object Duplicate(params object[] res) Parameters res object[] Returns object GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Geom.GeomUtil.html": { "href": "api/Hi.Geom.GeomUtil.html", "title": "Class GeomUtil | HiAPI-C# 2025", "summary": "Class GeomUtil Namespace Hi.Geom Assembly HiGeom.dll Utility of Geometry. public static class GeomUtil Inheritance object GeomUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) Expands the destination bounding box with the transformed bounding box of source under matrix mat. public static void ExpandToBox3d(this IExpandToBox3d src, Mat4d mat, Box3d dst) Parameters src IExpandToBox3d The source geometry mat Mat4d The transformation matrix dst Box3d The destination bounding box GetBox3d(IExpandToBox3d) Gets a Box3d representation of the specified object that implements IExpandToBox3d. public static Box3d GetBox3d(this IExpandToBox3d src) Parameters src IExpandToBox3d The source object that implements IExpandToBox3d. Returns Box3d A Box3d representation of the source object. GetNearestPointOnLineSegment(Vec2d, Vec2d, Vec2d) Get the nearest point on a line segment to a given point. public static Vec2d GetNearestPointOnLineSegment(Vec2d point, Vec2d lineStart, Vec2d lineEnd) Parameters point Vec2d The point to find the nearest point from lineStart Vec2d Start point of the line segment lineEnd Vec2d End point of the line segment Returns Vec2d The nearest point on the line segment GetNearestPointOnLineSegment(Vec3d, Vec3d, Vec3d) Get the nearest point on a line segment to a given point. public static Vec3d GetNearestPointOnLineSegment(Vec3d point, Vec3d lineStart, Vec3d lineEnd) Parameters point Vec3d The point to find the nearest point from lineStart Vec3d Start point of the line segment lineEnd Vec3d End point of the line segment Returns Vec3d The nearest point on the line segment GetRayIntersection(Vec3d, Vec3d, Vec3d, Vec3d) Calculates the intersection point of two rays in 3D space. public static Vec3d GetRayIntersection(Vec3d rayABegin, Vec3d rayAVec, Vec3d rayBBegin, Vec3d rayBVec) Parameters rayABegin Vec3d The starting point of the first ray. rayAVec Vec3d The direction vector of the first ray. rayBBegin Vec3d The starting point of the second ray. rayBVec Vec3d The direction vector of the second ray. Returns Vec3d The intersection point of the two rays, or null if they don't intersect. IntersectLineSegmentCircle(Vec2d, Vec2d, double, out Vec2d, out Vec2d) Intersect line segment and circle. public static double IntersectLineSegmentCircle(Vec2d p0, Vec2d p1, double rr, out Vec2d pA, out Vec2d pB) Parameters p0 Vec2d line segment begin point p1 Vec2d line segment end point rr double radius*radius pA Vec2d first intersect point along p0 to p1 pB Vec2d second intersect point along p0 to p1 Returns double determinant" }, "api/Hi.Geom.IExpandToBox2d.html": { "href": "api/Hi.Geom.IExpandToBox2d.html", "title": "Interface IExpandToBox2d | HiAPI-C# 2025", "summary": "Interface IExpandToBox2d Namespace Hi.Geom Assembly HiGeom.dll Object that can be expanded to a Box2d. public interface IExpandToBox2d 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) Methods ExpandToBox2d(Box2d) Expands the destination box. This function is usually used to compute the bounding box of elements. void ExpandToBox2d(Box2d dst) Parameters dst Box2d Destination box" }, "api/Hi.Geom.IExpandToBox3d.html": { "href": "api/Hi.Geom.IExpandToBox3d.html", "title": "Interface IExpandToBox3d | HiAPI-C# 2025", "summary": "Interface IExpandToBox3d Namespace Hi.Geom Assembly HiGeom.dll Object that can be expanded to a Box3d. public interface IExpandToBox3d Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box" }, "api/Hi.Geom.IFlat3d.html": { "href": "api/Hi.Geom.IFlat3d.html", "title": "Interface IFlat3d | HiAPI-C# 2025", "summary": "Interface IFlat3d Namespace Hi.Geom Assembly HiGeom.dll Interface for a 3D plane that provides an anchor point and a normal vector. public interface IFlat3d 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) Methods GetDistanceToOrigin() Signed Distance To Origin. double GetDistanceToOrigin() Returns double Signed Distance To Origin. GetLocate() Gets an anchor point on this flat surface. Vec3d GetLocate() Returns Vec3d A point on the flat surface GetLocate(Vec3d, double) Gets an anchor point from a normal vector and signed distance to origin. public static Vec3d GetLocate(Vec3d normal, double distanceToOrigin) Parameters normal Vec3d The unit normal vector. distanceToOrigin double Signed distance to origin. Returns Vec3d The anchor point on the plane. GetNormal() Gets the normal vector of the flat surface. Vec3d GetNormal() Returns Vec3d The unit normal vector" }, "api/Hi.Geom.IGenStl.html": { "href": "api/Hi.Geom.IGenStl.html", "title": "Interface IGenStl | HiAPI-C# 2025", "summary": "Interface IGenStl Namespace Hi.Geom Assembly HiGeom.dll Interface for generating STL geometry with a resolution. public interface IGenStl 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) Methods GenStl(IPolarResolution2d) Generates a new STL. Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL." }, "api/Hi.Geom.IGeomProperty.html": { "href": "api/Hi.Geom.IGeomProperty.html", "title": "Interface IGeomProperty | HiAPI-C# 2025", "summary": "Interface IGeomProperty Namespace Hi.Geom Assembly HiGeom.dll Interface for objects that have a geometry property. public interface IGeomProperty 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 Geom Gets or sets the geometry associated with this object. IGetStl Geom { get; set; } Property Value IGetStl" }, "api/Hi.Geom.IGetStl.html": { "href": "api/Hi.Geom.IGetStl.html", "title": "Interface IGetStl | HiAPI-C# 2025", "summary": "Interface IGetStl Namespace Hi.Geom Assembly HiGeom.dll Interface for retrieving STL geometry data. public interface IGetStl Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) PairZrUtil.GetZrList(IGetStl) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods GetStl() Gets the STL geometry data. Stl GetStl() Returns Stl The STL geometry object" }, "api/Hi.Geom.IGetZrContour.html": { "href": "api/Hi.Geom.IGetZrContour.html", "title": "Interface IGetZrContour | HiAPI-C# 2025", "summary": "Interface IGetZrContour Namespace Hi.Geom Assembly HiGeom.dll Interface for retrieving Z-R contour data for rotational geometries. public interface IGetZrContour 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) Methods GetZrContour(double) Gets Z-R contour data as a list of PairZr objects. The Z values should generally be ordered from smallest to largest. IList GetZrContour(double latitudeAngleResolution_rad) Parameters latitudeAngleResolution_rad double Resolution of latitude angle in radians Returns IList Z-R contour data as a list of PairZr objects" }, "api/Hi.Geom.IGetZrList.html": { "href": "api/Hi.Geom.IGetZrList.html", "title": "Interface IGetZrList | HiAPI-C# 2025", "summary": "Interface IGetZrList Namespace Hi.Geom Assembly HiGeom.dll Interface for getting a list of Z-R pairs. public interface IGetZrList Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) PairZrUtil.GetVolume(IGetZrList) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods GetZrList() Gets a list of Z-R coordinate pairs. List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates." }, "api/Hi.Geom.IStlSource.html": { "href": "api/Hi.Geom.IStlSource.html", "title": "Interface IStlSource | HiAPI-C# 2025", "summary": "Interface IStlSource Namespace Hi.Geom Assembly HiGeom.dll Stl provider with xml support. public interface IStlSource : IGetStl, IMakeXmlSource Inherited Members IGetStl.GetStl() IMakeXmlSource.MakeXmlSource(string, string, bool) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) PairZrUtil.GetZrList(IGetStl) 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)" }, "api/Hi.Geom.ITri3d.html": { "href": "api/Hi.Geom.ITri3d.html", "title": "Interface ITri3d | HiAPI-C# 2025", "summary": "Interface ITri3d Namespace Hi.Geom Assembly HiGeom.dll Interface for 3D triangles. public interface ITri3d : IFlat3d, IExpandToBox3d Inherited Members IFlat3d.GetDistanceToOrigin() IFlat3d.GetLocate() IFlat3d.GetNormal() IFlat3d.GetLocate(Vec3d, double) IExpandToBox3d.ExpandToBox3d(Box3d) Extension Methods GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) 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) Methods GetApex(int) Gets the specified vertex (apex) of this triangle. Vec3d GetApex(int i) Parameters i int Index of the vertex (0-2) Returns Vec3d The position of the specified vertex" }, "api/Hi.Geom.IVec-1.html": { "href": "api/Hi.Geom.IVec-1.html", "title": "Interface IVec | HiAPI-C# 2025", "summary": "Interface IVec Namespace Hi.Geom Assembly HiGeom.dll Interface for vector types with generic element type. public interface IVec Type Parameters T The type of elements in the vector 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 this[int] Gets or sets the element at the specified index. T this[int index] { get; set; } Parameters index int The zero-based index of the element to get or set. Property Value T The element at the specified index. Rank Dimension (i.e. Size) of the Vector. int Rank { get; } Property Value int" }, "api/Hi.Geom.IZrListSourceProperty.html": { "href": "api/Hi.Geom.IZrListSourceProperty.html", "title": "Interface IZrListSourceProperty | HiAPI-C# 2025", "summary": "Interface IZrListSourceProperty Namespace Hi.Geom Assembly HiGeom.dll Provides a source for obtaining an IGetZrList. public interface IZrListSourceProperty 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 ZrListSource The provider for IGetZrList. Func ZrListSource { get; set; } Property Value Func" }, "api/Hi.Geom.Mat4d.IndexFlag.html": { "href": "api/Hi.Geom.Mat4d.IndexFlag.html", "title": "Enum Mat4d.IndexFlag | HiAPI-C# 2025", "summary": "Enum Mat4d.IndexFlag Namespace Hi.Geom Assembly HiGeom.dll Specifies the indexing method for matrix construction from vectors. public enum Mat4d.IndexFlag 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 ByColumn = 0 Vectors are used as columns in the matrix. ByRow = 1 Vectors are used as rows in the matrix." }, "api/Hi.Geom.Mat4d.html": { "href": "api/Hi.Geom.Mat4d.html", "title": "Class Mat4d | HiAPI-C# 2025", "summary": "Class Mat4d Namespace Hi.Geom Assembly HiGeom.dll 4x4 Matrix. public class Mat4d : IEquatable, IBinaryIo, IWriteBin Inheritance object Mat4d Implements IEquatable IBinaryIo IWriteBin Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) 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 Mat4d() Initializes a new instance of the Mat4d class. public Mat4d() Mat4d(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src) Parameters src AxisAngle4d src Mat4d(AxisAngle4d, Vec3d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src, Vec3d pivot) Parameters src AxisAngle4d src pivot Vec3d rotation pivot Mat4d(Mat4d) copy constructor public Mat4d(Mat4d src) Parameters src Mat4d src Mat4d(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d(Vec3d trans) Parameters trans Vec3d translation Mat4d(Vec3d, Vec3d, Vec3d, IndexFlag) Initializes a new instance of the Mat4d class from three vectors. public Mat4d(Vec3d v0, Vec3d v1, Vec3d v2, Mat4d.IndexFlag indexFlag = IndexFlag.ByColumn) Parameters v0 Vec3d The first vector. v1 Vec3d The second vector. v2 Vec3d The third vector. indexFlag Mat4d.IndexFlag Determines whether vectors are used as columns or rows in the matrix. Mat4d(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Mat4d(Vec3d, double, Vec3d) A matrix rotate at pivot along axis by angle rad. public Mat4d(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotate axis rad double angle pivot Vec3d rotate pivot Mat4d(mat4d) Ctor by Set(mat4d). public Mat4d(mat4d src) Parameters src mat4d src Mat4d(IEnumerable) Initializes a new instance of the Mat4d class from an enumerable of double values. Takes the first 16 values from the enumerable. public Mat4d(IEnumerable src) Parameters src IEnumerable The enumerable collection of double values. Mat4d(double) a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d(double scale) Parameters scale double scale Mat4d(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Mat4d(double[]) constructor public Mat4d(double[] src) Parameters src double[] src Mat4d(BinaryReader) Ctor. public Mat4d(BinaryReader reader) Parameters reader BinaryReader reader Mat4d(string) Ctor by Set(string). public Mat4d(string str) Parameters str string src Fields m Column-major matrix in form of array. public double[] m Field Value double[] Properties AxialNormal Vec3d on 2th row. It usually is tool normal. public Vec3d AxialNormal { get; } Property Value Vec3d AxisAngle Gets the axis-angle representation of the rotation component of this matrix. public AxisAngle4d AxisAngle { get; } Property Value AxisAngle4d Determinant Gets the determinant of this matrix. public double Determinant { get; } Property Value double The determinant value. Idt Generate identity matrix. public static Mat4d Idt { get; } Property Value Mat4d IsAllNaN Gets a value indicating whether all elements of this matrix are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite Gets a value indicating whether all elements of this matrix are finite numbers. public bool IsFinite { get; } Property Value bool IsRotate Gets a value indicating whether this matrix represents a pure rotation. public bool IsRotate { get; } Property Value bool MatScale Gets the scale factor of the matrix, calculated as the cube root of the determinant without translation. public double MatScale { get; } Property Value double NaN Generate matrix that all elements are nan. public static Mat4d NaN { get; } Property Value Mat4d NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NoTransMat Generate new matrix that the translation part is zero. i.e. (m[12],m[13],m[14])=(0,0,0). public Mat4d NoTransMat { get; } Property Value Mat4d Pn Pn: Point and Normal (position + tool axis direction). Point = Trans = (m[12], m[13], m[14]), Normal = AxialNormal = (m[8], m[9], m[10]). public DVec3d Pn { get; } Property Value DVec3d Trans Translation. The value is Vec3d(m[12], m[13], m[14]). public Vec3d Trans { get; set; } Property Value Vec3d TransposeMat Gets a new matrix that is the transpose of this matrix. public Mat4d TransposeMat { get; } Property Value Mat4d Zero Generate zero matrix. public static Mat4d Zero { get; } Property Value Mat4d Methods AdjustSingularValueByTolerance(double) Adjusts matrix values that are close to 0, 1, or -1 (within the specified tolerance) to exactly those values. public Mat4d AdjustSingularValueByTolerance(double tolerance) Parameters tolerance double The tolerance threshold for considering values close to 0, 1, or -1. Returns Mat4d This matrix after adjustment. At(int, int) Gets a reference to the matrix element at the specified row and column. public ref double At(int i, int j) Parameters i int The row index (0-based). j int The column index (0-based). Returns double A reference to the matrix element. Equals(Mat4d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Mat4d other) Parameters other Mat4d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. EqualsByTolerance(Mat4d, double) Determines whether this matrix is equal to another matrix within a specified tolerance. public bool EqualsByTolerance(Mat4d other, double tolerance) Parameters other Mat4d The matrix to compare with this matrix. tolerance double The maximum absolute difference between matrix elements for them to be considered equal. Returns bool true if the matrices are equal within the specified tolerance; otherwise, false. FilledMat(double) Creates a matrix with all elements set to the specified value. public static Mat4d FilledMat(double v) Parameters v double The value to fill all elements with. Returns Mat4d A new matrix with all elements set to the specified value. FixFloatingZero(double) Fixes floating-point values that are close to zero by setting them to exactly zero. public Mat4d FixFloatingZero(double floatingZeroTolerance = 1E-12) Parameters floatingZeroTolerance double The tolerance below which values are considered zero. Default is 1e-12. Returns Mat4d This matrix instance for method chaining. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetInverse() Gets the inverse. public Mat4d GetInverse() Returns Mat4d Inverse matrix GetScaleMat(double) Creates a new matrix by scaling this matrix by the specified factor. public Mat4d GetScaleMat(double scale) Parameters scale double The scale factor to apply. Returns Mat4d A new scaled matrix. GetTransform(Func) Creates a new matrix with all elements transformed by the specified function. public Mat4d GetTransform(Func transformingFunc) Parameters transformingFunc Func The function to apply to each matrix element. Returns Mat4d A new matrix with transformed elements. Inverse() Inverses this instance. public Mat4d Inverse() Returns Mat4d this ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Scale(double) Scales the specified s. public Mat4d Scale(double s) Parameters s double The s. Returns Mat4d this Set(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(AxisAngle4d src) Parameters src AxisAngle4d src Returns Mat4d this Set(Mat4d) copy the data from src to this. public Mat4d Set(Mat4d src) Parameters src Mat4d src Returns Mat4d this Set(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d Set(Vec3d trans) Parameters trans Vec3d translation Returns Mat4d this Set(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Returns Mat4d this Set(Vec3d, double, Vec3d) Set the matrix rotation at pivot along axis by angle rad. public Mat4d Set(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotation axis rad double angle pivot Vec3d rotation pivot Returns Mat4d this Set(mat4d) Set the data by src. public Mat4d Set(mat4d src) Parameters src mat4d src Returns Mat4d this Set(double) The matrix will be reset to a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d Set(double scale) Parameters scale double scale Returns Mat4d this Set(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d Set(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Returns Mat4d this Set(int, int, double) Sets the value of the matrix element at the specified row and column. public void Set(int i, int j, double v) Parameters i int The row index (0-based). j int The column index (0-based). v double The value to set. Set(string) Set data by str. The format is {0,1,2,3,...,15} public Mat4d Set(string str) Parameters str string src Returns Mat4d this SetIdt() Set this instance to identity matrix. public void SetIdt() SetNoTrans() Sets the translation components of this matrix to zero. public Mat4d SetNoTrans() Returns Mat4d This matrix with translation components set to zero. ToBriefString() To brief string. public string ToBriefString() Returns string brief string. ToLinesString() Converts the matrix to a multi-line string representation with aligned columns. public string ToLinesString() Returns string A formatted multi-line string representation of the matrix. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Transform(Func) Transforms all matrix elements in-place using the specified transformation function. public Mat4d Transform(Func transformingFunc) Parameters transformingFunc Func The function to apply to each matrix element. Returns Mat4d This matrix instance for method chaining. Transpose() Transposes this matrix in place. public Mat4d Transpose() Returns Mat4d This matrix after transposition. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to Operators operator +(Mat4d, Mat4d) Adds two matrices element-wise. public static Mat4d operator +(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the sum of the two matrices. operator /(Mat4d, double) Divides a matrix by a scalar value. public static Mat4d operator /(Mat4d a, double b) Parameters a Mat4d The matrix to divide. b double The scalar divisor. Returns Mat4d A new matrix with all elements divided by the scalar. operator ==(Mat4d, Mat4d) Determines whether two matrices are equal. public static bool operator ==(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are equal; otherwise, false. operator !=(Mat4d, Mat4d) Determines whether two matrices are not equal. public static bool operator !=(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are not equal; otherwise, false. operator *(Mat4d, DVec3d) Multiple matrxi to cutter location (Point and Normal). public static DVec3d operator *(Mat4d m, DVec3d v) Parameters m Mat4d matrix v DVec3d point and normal Returns DVec3d transformed point and normal operator *(Mat4d, Mat4d) Multiplies two matrices. public static Mat4d operator *(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the product of the two matrices. operator *(Mat4d, Vec3d) Multiplies a matrix by a vector, transforming the vector. public static Vec3d operator *(Mat4d a, Vec3d b) Parameters a Mat4d The transformation matrix. b Vec3d The vector to transform. Returns Vec3d The transformed vector. operator *(Mat4d, double) Multiplies a matrix by a scalar value. public static Mat4d operator *(Mat4d a, double s) Parameters a Mat4d The matrix to multiply. s double The scalar value. Returns Mat4d A new matrix with all elements multiplied by the scalar. operator -(Mat4d, Mat4d) Subtracts the second matrix from the first matrix element-wise. public static Mat4d operator -(Mat4d a, Mat4d b) Parameters a Mat4d The matrix to subtract from. b Mat4d The matrix to subtract. Returns Mat4d A new matrix that is the difference of the two matrices. operator -(Mat4d) Returns the negation of the specified matrix. public static Mat4d operator -(Mat4d src) Parameters src Mat4d The source matrix. Returns Mat4d A new matrix with all elements negated." }, "api/Hi.Geom.MathNetUtil.html": { "href": "api/Hi.Geom.MathNetUtil.html", "title": "Class MathNetUtil | HiAPI-C# 2025", "summary": "Class MathNetUtil Namespace Hi.Geom Assembly HiGeom.dll Utility class for MathNet.Numerics operations. public static class MathNetUtil Inheritance object MathNetUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ClearFloatingZero(Matrix, double) the elements which the absolute value lower to gap are set to zero. public static void ClearFloatingZero(Matrix mat, double gap = 1E-07) Parameters mat Matrix target matrix gap double gap value GetCovMatByMultiThread(IList, Action, int) Calculates the covariance matrix for a list of vectors using multi-threading. public static DenseMatrix GetCovMatByMultiThread(IList vecs, Action progressAction = null, int progressTickPerVec = 20) Parameters vecs IList The list of vectors to calculate covariance for. progressAction Action Optional action to report progress. progressTickPerVec int Number of progress ticks per vector processed. Returns DenseMatrix A dense matrix representing the covariance. GetDiagonalString(Matrix) Gets a string representation of the diagonal elements of a matrix. public static string GetDiagonalString(Matrix src) Parameters src Matrix The source matrix to extract diagonal elements from. Returns string A comma-separated string of the diagonal elements with 6 significant digits. GetInversedWeightMat(Matrix, out int, double, double) public static Matrix GetInversedWeightMat(Matrix w, out int abandonedIndex, double minGap = 1E-05, double sumTerminate = 0.99999999) Parameters w Matrix abandonedIndex int abandoned index. Inclusive. minGap double sumTerminate double Returns Matrix" }, "api/Hi.Geom.MathUtil.html": { "href": "api/Hi.Geom.MathUtil.html", "title": "Class MathUtil | HiAPI-C# 2025", "summary": "Class MathUtil Namespace Hi.Geom Assembly HiGeom.dll Math Utility. public static class MathUtil Inheritance object MathUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields sqrt2 square root of 2. public const double sqrt2 = 1.4142135623730951 Field Value double sqrt3 square root of 3. public const double sqrt3 = 1.7320508075688772 Field Value double Methods AbsDiffAngle(double, double) Calculates the absolute difference between two angles in radians public static double AbsDiffAngle(double angleA_rad, double angleB_rad) Parameters angleA_rad double First angle in radians angleB_rad double Second angle in radians Returns double The absolute difference between the two angles Add(double[], double[]) Adds the elements of the second array to the corresponding elements of the first array in-place. public static double[] Add(this double[] src, double[] src2) Parameters src double[] The source array to which elements will be added. src2 double[] The array containing elements to add. Returns double[] The modified source array. AlterIfNan(double, double) public static double AlterIfNan(double primaryValue, double alteringValue) Parameters primaryValue double primary value alteringValue double the candidate value Returns double ApplyAlterIf(T, Func, T) Applies an alternative value if the source value meets a specified condition. public static T ApplyAlterIf(T src, Func isApplyingAlternateFunc, T alternative) Parameters src T The source value to check. isApplyingAlternateFunc Func Function that determines if the alternative should be applied. alternative T The alternative value to use if the condition is met. Returns T Either the original value or the alternative value based on the condition. Type Parameters T The type of the values. Average(IEnumerable) Average. public static Vec3d Average(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Average BilinearInterpolate(double, double, double, double, double, double) Performs bilinear interpolation between four double values public static double BilinearInterpolate(double v00, double v01, double v10, double v11, double u, double v) Parameters v00 double Value at (0,0) on normalized bilinear coordinate v01 double Value at (0,1) on normalized bilinear coordinate v10 double Value at (1,0) on normalized bilinear coordinate v11 double Value at (1,1) on normalized bilinear coordinate u double Ratio along v00 and v10, etc. v double Ratio along v00 and v01, etc. Returns double The interpolated value BilinearInterpolate(T, T, T, T, double, double) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v) where T : IAdditionOperators, IMultiplyOperators Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. Returns T interpolated value Type Parameters T value type. BilinearInterpolate(T, T, T, T, double, double, Func, Func) Bilinear interpolate. public static T BilinearInterpolate(T v00, T v01, T v10, T v11, double u, double v, Func scalingFunc, Func addingFunc) Parameters v00 T value at (0,0) on normalized bilinear coordinate v01 T value at (0,1) on normalized bilinear coordinate v10 T value at (1,0) on normalized bilinear coordinate v11 T value at (1,1) on normalized bilinear coordinate u double ratio along v00 and v10, etc. v double ratio along v00 and v01, etc. scalingFunc Func scaling function addingFunc Func adding function Returns T interpolated value Type Parameters T value type. BinaryDividentSequence(int) Generates a value in a binary divident sequence based on the seed. public static double BinaryDividentSequence(int seed) Parameters seed int The seed value for the sequence. Returns double The value in the binary divident sequence. Cbrt(double) Calculates the cube root of a number. public static double Cbrt(double v) Parameters v double The value to calculate the cube root of. Returns double The cube root of the specified value. Clamp(T, T, T) Clamps a value within an inclusive range of minimum and maximum values. public static T Clamp(this T val, T min, T max) where T : IComparable Parameters val T min T max T Returns T Type Parameters T Convert_inchdmin_To_mmds(double) Converts inches per minute to millimeters per second. public static double Convert_inchdmin_To_mmds(double inchdmin) Parameters inchdmin double Value in inches per minute. Returns double Value in millimeters per second. Convert_mdmin_To_mmds(double) Converts meters per minute to millimeters per second. public static double Convert_mdmin_To_mmds(double mdmin) Parameters mdmin double Value in meters per minute. Returns double Value in millimeters per second. Convert_mmdmin_To_mmds(double) Converts millimeters per minute to millimeters per second. public static double Convert_mmdmin_To_mmds(double mmdmin) Parameters mmdmin double Value in millimeters per minute. Returns double Value in millimeters per second. Convert_mmds_To_mdmin(double) Converts millimeters per second to meters per minute. public static double Convert_mmds_To_mdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in meters per minute. Convert_mmds_To_mmdmin(double) Converts millimeters per second to millimeters per minute. public static double Convert_mmds_To_mmdmin(double mmds) Parameters mmds double Value in millimeters per second. Returns double Value in millimeters per minute. Convert_radds_To_rpm(double) Converts radians per second to revolutions per minute (RPM). public static double Convert_radds_To_rpm(double radds) Parameters radds double Value in radians per second. Returns double Value in revolutions per minute. Convert_rpm_To_radds(double) Converts revolutions per minute (RPM) to radians per second. public static double Convert_rpm_To_radds(double rpm) Parameters rpm double Value in revolutions per minute. Returns double Value in radians per second. Cycle(double, double, double) If the value is within lowerBound and upperBound, return value. Otherwise, perform looped value according to the direction from lower to upper. ex. bound=(0,1), value=3.1, than return 0.1. public static double Cycle(double value, double lowerBound, double upperBound) Parameters value double value lowerBound double lower bound, inclusive upperBound double upper bound, exclusive Returns double cycled value Cycle(double, double, double, bool) Cycles a value to be within the specified range, with configurable bound inclusivity. public static double Cycle(double value, double lowerBound, double upperBound, bool isBothBoundInclusive) Parameters value double The value to cycle. lowerBound double The lower bound of the range. upperBound double The upper bound of the range. isBothBoundInclusive bool If true, both bounds are inclusive; otherwise, only the lower bound is inclusive. Returns double The cycled value within the specified range. Cycle2Pi_rad(double, double, bool) Get value by the cycle range transformation. The cycle is from anchor_rad-pi to anchor_rad+pi. public static double Cycle2Pi_rad(double target_rad, double anchor_rad = 0, bool isBothBoundInclusive = false) Parameters target_rad double target angle anchor_rad double anchor angle isBothBoundInclusive bool if true, both bounds are inclusive; otherwise, only the lower bound is inclusive Returns double adjusted target angle CycleUnit(double) Get the value locates on 0(inclusive) ~ 1(exclusive). The source code: return v - Math.Floor(v); public static double CycleUnit(double v) Parameters v double value Returns double 0 (inclusive) ~1 (exclusive) CycleUpperInclusive(double, double, double) Cycles a value into the lower-exclusive/upper-inclusive window (lowerBound, upperBound] — the mirror of Cycle(double, double, double), whose window is lower-inclusive/upper-exclusive. A value congruent with the bounds resolves to upperBound, never lowerBound — the property a negative-direction rotary window (anchor-2π, anchor] needs so a target congruent with the anchor stays put instead of committing a full negative turn. public static double CycleUpperInclusive(double value, double lowerBound, double upperBound) Parameters value double value lowerBound double lower bound, exclusive upperBound double upper bound, inclusive Returns double cycled value Decompose(double[,], out int[], out int) Performs LU decomposition with partial pivoting on a matrix. public static double[,] Decompose(double[,] matrix, out int[] perm, out int toggle) Parameters matrix double[,] The matrix to decompose. perm int[] Output parameter that holds row permutations. toggle int Output parameter that is +1 or -1 depending on whether the number of row exchanges is even or odd. Returns double[,] The LU decomposition of the matrix. Exceptions Exception Thrown when attempting to decompose a non-square matrix. Div(double[], double) Divides each element of the array by a scalar value in-place. public static double[] Div(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to divide by. Returns double[] The modified source array. Erf(double) Calculates the error function (erf) for the specified value. public static double Erf(double x) Parameters x double The value to calculate the error function for Returns double The error function value Erfc(double) Calculates the complementary error function (erfc) for the specified value. public static double Erfc(double x) Parameters x double The value to calculate the complementary error function for Returns double The complementary error function value GetAbs(double[]) Creates a new array containing the absolute values of the elements in the source array. public static double[] GetAbs(this double[] src) Parameters src double[] The source array. Returns double[] A new array containing the absolute values of the elements in the source array. GetAdd(double[], double[]) Creates a new array by adding corresponding elements of two arrays. public static double[] GetAdd(this double[] src, double[] src2) Parameters src double[] The first array. src2 double[] The second array. Returns double[] A new array containing the sum of corresponding elements. GetCommonRatioFromGeometricSeries(double, double, double) Calculates the common ratio from a geometric series sum. public static double GetCommonRatioFromGeometricSeries(double geometricSeriesSum, double powIndex, double convergenceLimit = 0.001) Parameters geometricSeriesSum double The sum of the geometric series. powIndex double The power index in the series. convergenceLimit double The convergence limit for the calculation. Returns double The common ratio of the geometric series. GetDiv(double[], double) Creates a new array by dividing each element of the source array by a scalar value. public static double[] GetDiv(this double[] src, double scale) Parameters src double[] The source array. scale double The scalar value to divide by. Returns double[] A new array with each element divided by the scalar value. GetDot(double[], double[]) Creates a new array by multiplying corresponding elements of two arrays. public static double[] GetDot(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array. Returns double[] A new array containing the product of corresponding elements. GetInterpolationRatio(TimeSpan, TimeSpan, TimeSpan) Gets the interpolation ratio between two TimeSpan values public static double GetInterpolationRatio(TimeSpan begin, TimeSpan end, TimeSpan pos) Parameters begin TimeSpan The beginning TimeSpan end TimeSpan The ending TimeSpan pos TimeSpan The position TimeSpan to calculate the ratio for Returns double The interpolation ratio: (pos - begin) / (end - begin) GetInterpolationRatio(T, T, T) Get position ratio. (pos - begin) / (end - begin) . public static double GetInterpolationRatio(T begin, T end, T pos) where T : ISubtractionOperators, IDivisionOperators Parameters begin T range begin end T range end pos T key position Returns double position ratio Type Parameters T GetInterpolationRatio(T, T, T, Func, Func) Gets the interpolation ratio between two values using custom subtraction and division functions public static double GetInterpolationRatio(T begin, T end, T pos, Func minusFunc, Func divFunc) Parameters begin T The beginning value end T The ending value pos T The position value to calculate the ratio for minusFunc Func The function to use for subtraction divFunc Func The function to use for division Returns double The interpolation ratio: (pos - begin) / (end - begin) Type Parameters T The type of the values GetMul(double[], double) Creates a new array by multiplying each element of the source array by a scalar value. public static double[] GetMul(this double[] src, double s) Parameters src double[] The source array. s double The scalar value to multiply by. Returns double[] A new array with each element multiplied by the scalar value. GetSub(double[], double[]) Creates a new array by subtracting corresponding elements of the second array from the first array. public static double[] GetSub(this double[] a, double[] b) Parameters a double[] The first array. b double[] The second array to subtract. Returns double[] A new array containing the difference of corresponding elements. Idt(int) Creates an identity matrix of the specified size. public static double[,] Idt(int n) Parameters n int The size of the square identity matrix. Returns double[,] An n x n identity matrix. Interpolate(TimeSpan, TimeSpan, double) Interpolates between two TimeSpan values using the specified ratio public static TimeSpan Interpolate(TimeSpan a, TimeSpan b, double ratio) Parameters a TimeSpan The first TimeSpan value b TimeSpan The second TimeSpan value ratio double The interpolation ratio (0.0 to 1.0) Returns TimeSpan The interpolated TimeSpan value: a * (1 - ratio) + b * ratio InterpolateWithinBoundary(T, T, double) If ratio smaller or equal 0, return a. If ratio larger or equal 1, return b. Otherwise, interpolate by ratio. public static T InterpolateWithinBoundary(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T b T ratio double Returns T Type Parameters T Interpolate(T, T, double) Interpolate from a to b with ratio alpha:(1-alpha). public static T Interpolate(T a, T b, double ratio) where T : IEqualityOperators, IAdditionOperators, IMultiplyOperators Parameters a T a b T b ratio double ratio Returns T a * (1 - ratio) + b * ratio Type Parameters T Interpolate(T, T, double, Func) Interpolates between two values based on a position using a position function. public static T Interpolate(T a, T b, double pos, Func posFunc) where T : INumber, IMultiplyOperators Parameters a T The first value b T The second value pos double The position to interpolate at posFunc Func Function to extract a position from a value Returns T The interpolated value Type Parameters T The type of the values Interpolate(TItem, TItem, double, Func, Func, Func) Interpolates between two items based on a key value using custom functions. public static TItem Interpolate(TItem a, TItem b, double key, Func keyFunc, Func addingFunc, Func scalingFunc) Parameters a TItem The first item b TItem The second item key double The key value to interpolate at (0.0 to 1.0) keyFunc Func Function to extract a double key from an item addingFunc Func Function to add two items scalingFunc Func Function to scale an item by a double Returns TItem The interpolated item Type Parameters TItem The type of the items Interpolate(T, T, double, Func, Func) Interpolates between two values using custom addition and scaling functions public static T Interpolate(T a, T b, double ratio, Func addingFunc, Func scalingFunc) Parameters a T The first value b T The second value ratio double The interpolation ratio (0.0 to 1.0) addingFunc Func The function to use for addition scalingFunc Func The function to use for scaling Returns T The interpolated value: a * (1 - ratio) + b * ratio Type Parameters T The type of the values Interpolate(T[], T[], double) Interpolates between two arrays of values using the specified ratio public static T[] Interpolate(T[] a, T[] b, double ratio) where T : INumber, IMultiplyOperators Parameters a T[] The first array b T[] The second array ratio double The interpolation ratio (0.0 to 1.0) Returns T[] A new array containing the interpolated values Type Parameters T The type of the array elements Interpolate(TItem, TItem, TKey, Func, Func, Func, Func, Func) Interpolates between two items using custom key extraction, key operations, and item operations public static TItem Interpolate(TItem a, TItem b, TKey key, Func keyFunc, Func keyMinusFunc, Func keyDivFunc, Func itemAddingFunc, Func itemScalingFunc) Parameters a TItem The first item b TItem The second item key TKey The key value to interpolate at keyFunc Func Function to extract a key from an item keyMinusFunc Func Function to subtract keys keyDivFunc Func Function to divide keys itemAddingFunc Func Function to add items itemScalingFunc Func Function to scale items Returns TItem The interpolated item Type Parameters TKey The type of the key used for interpolation TItem The type of the items being interpolated Inverse(double[,]) Computes the inverse of a matrix. public static double[,] Inverse(double[,] matrix) Parameters matrix double[,] The matrix to invert. Returns double[,] The inverse of the matrix. Exceptions Exception Thrown when the matrix cannot be inverted. Inverse2d(double[,], double[,]) Calculates the inverse of a 2x2 matrix public static void Inverse2d(double[,] src, double[,] dst) Parameters src double[,] The source 2x2 matrix dst double[,] The destination matrix to store the inverse Inverse3d(double[,], double[,]) Calculates the inverse of a 3x3 matrix public static void Inverse3d(double[,] src, double[,] dst) Parameters src double[,] The source 3x3 matrix dst double[,] The destination matrix to store the inverse IsFinite(double) Is v neither NaN nor infinity. public static bool IsFinite(double v) Parameters v double value Returns bool Is v neither NaN nor infinity. Max(T, T) Returns the larger of two values. public static T Max(T a, T b) where T : IComparable Parameters a T The first value to compare. b T The second value to compare. Returns T The larger of the two values. Type Parameters T The type of values to compare. Min(T, T) Returns the smaller of two values. public static T Min(T a, T b) where T : IComparable Parameters a T The first value to compare. b T The second value to compare. Returns T The smaller of the two values. Type Parameters T The type of values to compare. Mul(double[], double) Multiplies each element of the array by a scalar value in-place. public static double[] Mul(this double[] src, double scale) Parameters src double[] The source array to be modified. scale double The scalar value to multiply by. Returns double[] The modified source array. NoChanged(double) Do nothing. public static double NoChanged(double src) Parameters src double src Returns double src Norm2(double[]) Calculates the Euclidean norm (L2 norm) of a vector. public static double Norm2(this double[] src) Parameters src double[] The source vector as an array of doubles. Returns double The Euclidean norm of the vector. Normalized(double[]) Creates a new array by normalizing the source array to have a unit norm. public static double[] Normalized(this double[] src) Parameters src double[] The source array. Returns double[] A new array with the same direction as the source array but with unit norm. Pow3(double) Calculates the cube (power of 3) of a double value. public static double Pow3(this double src) Parameters src double The source double value Returns double The cube of the source value Pow3(int) Calculates the cube (power of 3) of an integer value. public static int Pow3(this int src) Parameters src int The source integer value Returns int The cube of the source value Pow4(double) Calculates the fourth power of a double value. public static double Pow4(this double src) Parameters src double The source double value Returns double The fourth power of the source value Pow4(int) Calculates the fourth power of an integer value. public static int Pow4(this int src) Parameters src int The source integer value Returns int The fourth power of the source value Product(double[,], double[,]) Multiplies two matrices. public static double[,] Product(double[,] matrixA, double[,] matrixB) Parameters matrixA double[,] The first matrix. matrixB double[,] The second matrix. Returns double[,] The product of the two matrices. Exceptions Exception Thrown when the matrices are not conformable for multiplication. SolveCubic(double, double, double, double) public static Complex[] SolveCubic(double c0, double c1, double c2, double c3) Parameters c0 double constant term. c1 double coefficient of power of 1 of x. c2 double coefficient of power of 2 of x. c3 double coefficient of power of 3 of x. Returns Complex[] SolveQuadratic(double, double, double, out double, out double) Solve quadratic equation. public static double SolveQuadratic(double c, double b, double a, out double x0, out double x1) Parameters c double coefficient of constant of x. b double coefficient of power of 1 of x. a double coefficient of power of 2 of x. x0 double lower root x1 double higher root Returns double determinent SqrtVariance(IList, out double) Standard deviation with n denominator (instead of n-1). public static double SqrtVariance(IList src, out double avg) Parameters src IList avg double Returns double STD Square(double) Calculates the square of a double value. public static double Square(this double src) Parameters src double The source double value Returns double The square of the source value Square(int) Calculates the square of an integer value. public static int Square(this int src) Parameters src int The source integer value Returns int The square of the source value Sum(IEnumerable) Sum. public static Vec3d Sum(this IEnumerable src) Parameters src IEnumerable src Returns Vec3d Sum ToDeg(double) Get degree from radian. public static double ToDeg(double rad) Parameters rad double radian Returns double degree ToRad(double) Get radian from degree. public static double ToRad(double deg) Parameters deg double degree Returns double radian ToString(double[,], string) Converts a 2D double array to a string representation using the specified format public static string ToString(this double[,] src, string format) Parameters src double[,] The source 2D double array format string The format string to use for each double value Returns string A string representation of the 2D array ToString(double[], string) Converts a double array to a string representation using the specified format public static string ToString(this double[] src, string format) Parameters src double[] The source double array format string The format string to use for each double value Returns string A string representation of the array ToStringWithoutCultureNum(double, string) To string function. The special number is formatted by XmlConvert. public static string ToStringWithoutCultureNum(this double src, string format) Parameters src double src format string format Returns string string Transpose(double[,]) Transposes a 2D matrix represented as a 2D array. public static double[,] Transpose(double[,] src) Parameters src double[,] The source matrix to transpose. Returns double[,] A new matrix that is the transpose of the source matrix." }, "api/Hi.Geom.NativeFraction.html": { "href": "api/Hi.Geom.NativeFraction.html", "title": "Class NativeFraction | HiAPI-C# 2025", "summary": "Class NativeFraction Namespace Hi.Geom Assembly HiDisp.dll Native wrapper for C++ fraction_t<0> (unlimited precision fraction). A fraction consists of a numerator and denominator using unlimited precision integers. public class NativeFraction : IDisposable Inheritance object NativeFraction Implements IDisposable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Remarks 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. public NativeFraction(NativeFraction src) Parameters src NativeFraction The source fraction to copy. NativeFraction(double, double) Initializes a new instance from a double value with specified resolution. Uses Stern-Brocot binary search for approximation. public NativeFraction(double val, double resolution) Parameters val double The double value to convert. resolution double The resolution tolerance for approximation. NativeFraction(int) Initializes a new instance with an integer value. public NativeFraction(int num) Parameters num int The integer value. NativeFraction(long) Initializes a new instance with integer value. public NativeFraction(long num) Parameters num long The integer numerator value. NativeFraction(long, long) Initializes a new instance with numerator and denominator. public NativeFraction(long num, long den) Parameters num long The numerator. den long The denominator. Cannot be negative. Properties CeilInt Gets the ceiling integer value. public int CeilInt { get; } Property Value int Denominator Gets or sets the denominator as BigInteger. Uses byte array transfer for better performance. public BigInteger Denominator { get; set; } Property Value BigInteger DenominatorString Gets or sets the denominator as a string (for unlimited precision). public string DenominatorString { get; set; } Property Value string FloorInt Gets the floor integer value. public int FloorInt { get; } Property Value int IsEvaluated Gets whether the fraction value has been evaluated. public bool IsEvaluated { get; } Property Value bool IsFinite Gets whether the fraction is finite (denominator != 0). public bool IsFinite { get; } Property Value bool IsNaN Gets whether the fraction is NaN (0/0). public bool IsNaN { get; } Property Value bool IsPacked Gets whether the fraction is packed (reduced to irreducible form). public bool IsPacked { get; } Property Value bool IsZero Gets whether the fraction is zero (numerator == 0 and denominator != 0). public bool IsZero { get; } Property Value bool Numerator Gets or sets the numerator as BigInteger. Uses byte array transfer for better performance. public BigInteger Numerator { get; set; } Property Value BigInteger NumeratorString Gets or sets the numerator as a string (for unlimited precision). public string NumeratorString { get; set; } Property Value string Ptr Gets the native pointer. public nint Ptr { get; } Property Value nint RoughValue Gets the roughly evaluated double value. If the data has not been reduced, the return value is not evaluated by the reduced numbers. public double RoughValue { get; } Property Value double Sign Gets the sign of the fraction (-1, 0, or 1). public int Sign { get; } Property Value int Status Gets the status flags. public FractionStatus Status { get; } Property Value FractionStatus Value Gets the evaluated double value. Computes the value if not yet evaluated. public double Value { get; } Property Value double Methods Abs() Gets the absolute value of this fraction. public NativeFraction Abs() Returns NativeFraction ComparePerformanceTest(int, int) Comparative performance test between pure C# Fraction and NativeFraction (C++ backend). public static void ComparePerformanceTest(int iterations = 128, int rounds = 16) Parameters iterations int Number of accumulation steps per round. rounds int Number of rounds to average timing. CompareTo(NativeFraction) Compares this fraction with another. public int CompareTo(NativeFraction other) Parameters other NativeFraction The other fraction. Returns int -1 if less, 0 if equal, 1 if greater. 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 Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. Evaluate() Evaluates the double value if not already evaluated. public NativeFraction Evaluate() Returns NativeFraction This instance for chaining. ~NativeFraction() protected ~NativeFraction() GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. NaN() Creates a NaN fraction (0/0). public static NativeFraction NaN() Returns NativeFraction Negate() Negates this fraction in place. public NativeFraction Negate() Returns NativeFraction This instance for chaining. NegativeInf() Creates a negative infinity fraction (-1/0). public static NativeFraction NegativeInf() Returns NativeFraction One() Creates a one fraction (1/1). public static NativeFraction One() Returns NativeFraction Pack() Packs (reduces) the fraction to irreducible form if not already packed. public NativeFraction Pack() Returns NativeFraction This instance for chaining. PerformanceTest(int, int) Performance test for NativeFraction (C++ backend). Test 1: Accumulative += with Val (bounded, linear growth). Test 2: Bounded arithmetic (converging average). public static void PerformanceTest(int iterations = 128, int rounds = 16) Parameters iterations int Number of steps per round. rounds int Number of rounds to average timing. PositiveInf() Creates a positive infinity fraction (1/0). public static NativeFraction PositiveInf() Returns NativeFraction Reciprocal() Gets the reciprocal of this fraction. public NativeFraction Reciprocal() Returns NativeFraction SetAbs() Sets this fraction to its absolute value. public NativeFraction SetAbs() Returns NativeFraction This instance for chaining. SetNumeratorAndDenominator(BigInteger, BigInteger) Sets both numerator and denominator at once. public void SetNumeratorAndDenominator(BigInteger numerator, BigInteger denominator) Parameters numerator BigInteger The numerator value. denominator BigInteger The denominator value. SetReciprocal() Sets this fraction to its reciprocal. public NativeFraction SetReciprocal() Returns NativeFraction This instance for chaining. SetSquare() Sets this fraction to its square. public NativeFraction SetSquare() Returns NativeFraction This instance for chaining. Simplify(double) Simplifies the fraction to the specified resolution. public NativeFraction Simplify(double resolution) Parameters resolution double The resolution tolerance. Returns NativeFraction This instance for chaining. Square() Gets the square of this fraction. public NativeFraction Square() Returns NativeFraction Test() Test function for NativeFraction. public static void Test() ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Val(double, double) Creates a fraction from a double value with specified resolution. public static NativeFraction Val(double val, double resolution) Parameters val double The double value. resolution double The resolution tolerance. Returns NativeFraction Zero() Creates a zero fraction (0/1). public static NativeFraction Zero() Returns NativeFraction Operators operator +(NativeFraction, NativeFraction) Addition operator. public static NativeFraction operator +(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns NativeFraction operator /(NativeFraction, NativeFraction) Division operator. public static NativeFraction operator /(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns NativeFraction operator ==(NativeFraction, NativeFraction) Equality operator. public static bool operator ==(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool explicit operator double(NativeFraction) Explicit conversion to double. public static explicit operator double(NativeFraction f) Parameters f NativeFraction Returns double operator >(NativeFraction, NativeFraction) Greater than operator. public static bool operator >(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool operator >=(NativeFraction, NativeFraction) Greater than or equal operator. public static bool operator >=(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool operator !=(NativeFraction, NativeFraction) Inequality operator. public static bool operator !=(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool operator <(NativeFraction, NativeFraction) Less than operator. public static bool operator <(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool operator <=(NativeFraction, NativeFraction) Less than or equal operator. public static bool operator <=(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns bool operator *(NativeFraction, NativeFraction) Multiplication operator. public static NativeFraction operator *(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns NativeFraction operator -(NativeFraction, NativeFraction) Subtraction operator. public static NativeFraction operator -(NativeFraction a, NativeFraction b) Parameters a NativeFraction b NativeFraction Returns NativeFraction operator -(NativeFraction) Negation operator. public static NativeFraction operator -(NativeFraction a) Parameters a NativeFraction Returns NativeFraction" }, "api/Hi.Geom.NativeStl.html": { "href": "api/Hi.Geom.NativeStl.html", "title": "Class NativeStl | HiAPI-C# 2025", "summary": "Class NativeStl Namespace Hi.Geom Assembly HiCbtr.dll Native Stl. For purpose of efficient swept volume. public class NativeStl : IGetStl, IDisposable, IExpandToBox3d Inheritance object NativeStl Implements IGetStl IDisposable IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 NativeStl(Stl) Ctor. public NativeStl(Stl stl) Parameters stl Stl ctor Properties StlPtr Native pointer. public nint StlPtr { get; } Property Value nint TriangleNum Triangle number. public int TriangleNum { get; } Property Value int Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Remarks The dispose will also dispose the related TriTree. 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 ~NativeStl() protected ~NativeStl() GenStl() Generate Stl. public Stl GenStl() Returns Stl stl GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object" }, "api/Hi.Geom.ObjUtil.html": { "href": "api/Hi.Geom.ObjUtil.html", "title": "Class ObjUtil | HiAPI-C# 2025", "summary": "Class ObjUtil Namespace Hi.Geom Assembly HiGeom.dll Wavefront OBJ writer for RGB-coloured triangle buffers. public static class ObjUtil Inheritance object ObjUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods WriteText(string, double[]) Write a stride-15 RGB-triangle buffer as Wavefront OBJ text with the per-vertex colour extension (v x y z r g b). Triangle vertices are not shared; faces reference vertices/normals via negative (relative) indices, so no global counters are required. public static void WriteText(string file, double[] rgbTrisNativeArray) Parameters file string Destination OBJ file path. rgbTrisNativeArray double[] Stride-15 array: r,g,b, nx,ny,nz, p0.x,p0.y,p0.z, p1.x,p1.y,p1.z, p2.x,p2.y,p2.z, repeated once per triangle. RGB components are in the [0, 1] range. See Hi.Cbtr.CubeTree.GetRgbTrisNativeArray." }, "api/Hi.Geom.PairZr.html": { "href": "api/Hi.Geom.PairZr.html", "title": "Class PairZr | HiAPI-C# 2025", "summary": "Class PairZr Namespace Hi.Geom Assembly HiGeom.dll Value pair of Z and R. public class PairZr : IMakeXmlSource, IExpandToBox3d, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IDivisionOperators, IFormattable Inheritance object PairZr Implements IMakeXmlSource IExpandToBox3d IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IDivisionOperators IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) 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 PairZr() Ctor. public PairZr() PairZr(PairZr) Copy ctor. public PairZr(PairZr src) Parameters src PairZr PairZr(double, double) Ctor. public PairZr(double z, double r) Parameters z double see Z r double see R PairZr(string) Ctor. public PairZr(string src) Parameters src string PairZr(XElement) Ctor. public PairZr(XElement src) Parameters src XElement XML Properties R R value. public double R { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Z Z value. public double Z { get; set; } Property Value double ZR (x,y)=(z,r). public Vec2d ZR { get; set; } Property Value Vec2d Methods Equals(PairZr) public bool Equals(PairZr other) Parameters other PairZr Returns bool Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. 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 GenCircle(int) Generates a collection of Vec3d points forming a circle at the Z coordinate with radius R. public IEnumerable GenCircle(int posNum) Parameters posNum int The number of points to generate around the circle Returns IEnumerable An enumerable collection of Vec3d points GenPolarCircle(int) Generates a collection of Polar3d points forming a circle at the Z coordinate with radius R. public IEnumerable GenPolarCircle(int posNum) Parameters posNum int The number of points to generate around the circle Returns IEnumerable An enumerable collection of Polar3d points GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the PairZr formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the PairZr Operators operator +(PairZr, PairZr) Addition operator that adds two PairZr instances. public static PairZr operator +(PairZr left, PairZr right) Parameters left PairZr The left operand right PairZr The right operand Returns PairZr A new PairZr instance with the sum of Z and R values operator /(PairZr, double) Division operator that divides a PairZr instance by a scalar value. public static PairZr operator /(PairZr left, double right) Parameters left PairZr The PairZr instance right double The scalar value Returns PairZr A new PairZr instance with Z and R values divided by the scalar operator ==(PairZr, PairZr) Equality operator that compares two PairZr instances. public static bool operator ==(PairZr left, PairZr right) Parameters left PairZr The left operand right PairZr The right operand Returns bool True if both instances are equal; otherwise, false operator !=(PairZr, PairZr) Inequality operator that compares two PairZr instances. public static bool operator !=(PairZr left, PairZr right) Parameters left PairZr The left operand right PairZr The right operand Returns bool True if the instances are not equal; otherwise, false operator *(PairZr, double) Multiplication operator that multiplies a PairZr instance by a scalar value. public static PairZr operator *(PairZr left, double right) Parameters left PairZr The PairZr instance right double The scalar value Returns PairZr A new PairZr instance with Z and R values multiplied by the scalar operator -(PairZr, PairZr) Subtraction operator that subtracts one PairZr instance from another. public static PairZr operator -(PairZr a, PairZr b) Parameters a PairZr The left operand b PairZr The right operand to subtract Returns PairZr A new PairZr instance with the difference of Z and R values" }, "api/Hi.Geom.PairZrUtil.html": { "href": "api/Hi.Geom.PairZrUtil.html", "title": "Class PairZrUtil | HiAPI-C# 2025", "summary": "Class PairZrUtil Namespace Hi.Geom Assembly HiGeom.dll Utility class for working with PairZr objects public static class PairZrUtil Inheritance object PairZrUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetIntensiveZrs(IEnumerable, double) public static IEnumerable GetIntensiveZrs(this IEnumerable src, double ZResolution) Parameters src IEnumerable ZResolution double Returns IEnumerable GetNormal2d(SortedList, double) Gets a 2D normal vector to the surface at the specified Z position public static Vec2d GetNormal2d(this SortedList zVsPairZr, double z) Parameters zVsPairZr SortedList The sorted list of PairZr objects defining the surface z double The Z position to get the normal vector for Returns Vec2d A 2D normal vector to the surface, or null if it cannot be calculated GetNormal2dByFittedZ(SortedList, double, out double) Gets a 2D normal vector to the surface at the specified Z position, adjusted to fit within the Z range public static Vec2d GetNormal2dByFittedZ(this SortedList zVsPairZr, double z, out double fittedZ) Parameters zVsPairZr SortedList The sorted list of PairZr objects defining the surface z double The Z position to get the normal vector for fittedZ double Output parameter that receives the adjusted Z value that fits within the range Returns Vec2d A 2D normal vector to the surface, or null if it cannot be calculated GetRByZ(List, double) Gets the R value at a specified Z position by interpolating between PairZr objects in a list public static double GetRByZ(this List zVsPairZr, double z) Parameters zVsPairZr List The list of PairZr objects z double The Z position to get the R value for Returns double The interpolated R value at the specified Z position, or NaN if interpolation is not possible GetRByZ(SortedList, double) Gets the R value at a specified Z position by interpolating between PairZr objects in a sorted list public static double GetRByZ(this SortedList zVsPairZr, double z) Parameters zVsPairZr SortedList The sorted list of PairZr objects keyed by Z values z double The Z position to get the R value for Returns double The interpolated R value at the specified Z position, or NaN if interpolation is not possible GetSurfaceVerticalArrow2d(List, double) Gets a 2D vector perpendicular to the surface at the specified Z position public static Vec2d GetSurfaceVerticalArrow2d(this List zVsPairZr, double z) Parameters zVsPairZr List The list of PairZr objects defining the surface z double The Z position to get the vector for Returns Vec2d A 2D vector perpendicular to the surface, or null if it cannot be calculated GetSurfaceVerticalArrow2dByFittedZ(List, double, out double) Gets a 2D vector perpendicular to the surface at the specified Z position, adjusted to fit within the Z range public static Vec2d GetSurfaceVerticalArrow2dByFittedZ(this List zVsPairZr, double z, out double fittedZ) Parameters zVsPairZr List The list of PairZr objects defining the surface z double The Z position to get the vector for fittedZ double Output parameter that receives the adjusted Z value that fits within the range Returns Vec2d A 2D vector perpendicular to the surface, or null if it cannot be calculated GetSurfaceVerticalArrow3dByFittedZ(List, double, double, out double) Gets a 3D vector perpendicular to the surface at the specified Z position, adjusted to fit within the Z range public static Vec3d GetSurfaceVerticalArrow3dByFittedZ(this List zVsPairZr, double z, double angle_rad, out double fittedZ) Parameters zVsPairZr List The list of PairZr objects defining the surface z double The Z position to get the vector for angle_rad double The angle in radians to position the vector around the Z axis fittedZ double Output parameter that receives the adjusted Z value that fits within the range Returns Vec3d A 3D vector perpendicular to the surface, or null if it cannot be calculated GetVolume(IGetZrList) Calculates the volume of an object that implements IGetZrList public static double GetVolume(this IGetZrList src) Parameters src IGetZrList The object that implements IGetZrList Returns double The calculated volume, or 0 if the source is null GetVolume(IEnumerable) Get Volume. Assume the src.Z is ascendent. If Z descendent, the result may be negative. public static double GetVolume(this IEnumerable src) Parameters src IEnumerable Returns double GetZrList(IGetStl) Extracts a list of PairZr objects from an object that implements IGetStl public static List GetZrList(this IGetStl geom) Parameters geom IGetStl The object that implements IGetStl Returns List A list of PairZr objects, or null if the geometry is null GetZrList(IEnumerable) Extracts a list of PairZr objects from a collection of triangles public static List GetZrList(this IEnumerable tris) Parameters tris IEnumerable The collection of triangles Returns List A list of PairZr objects ordered by Z value" }, "api/Hi.Geom.PlyUtil.html": { "href": "api/Hi.Geom.PlyUtil.html", "title": "Class PlyUtil | HiAPI-C# 2025", "summary": "Class PlyUtil Namespace Hi.Geom Assembly HiGeom.dll Stanford PLY writer for RGB-coloured triangle buffers. public static class PlyUtil Inheritance object PlyUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods WriteBin(string, double[]) Write a stride-15 RGB-triangle buffer as little-endian binary PLY with per-vertex RGB. Vertices are not shared between triangles (the input is a non-manifold soup), so each triangle contributes 3 unique vertices. public static void WriteBin(string file, double[] rgbTrisNativeArray) Parameters file string Destination PLY file path. rgbTrisNativeArray double[] Stride-15 array: r,g,b, nx,ny,nz, p0.x,p0.y,p0.z, p1.x,p1.y,p1.z, p2.x,p2.y,p2.z, repeated once per triangle. RGB components are in the [0, 1] range. See Hi.Cbtr.CubeTree.GetRgbTrisNativeArray." }, "api/Hi.Geom.Polar3d.html": { "href": "api/Hi.Geom.Polar3d.html", "title": "Class Polar3d | HiAPI-C# 2025", "summary": "Class Polar3d Namespace Hi.Geom Assembly HiGeom.dll Represents a point in 3D space using polar coordinates public class Polar3d : IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IDivisionOperators, ICsvRowIo, IFormattable Inheritance object Polar3d Implements IAdditionOperators ISubtractionOperators IMultiplyOperators IDivisionOperators ICsvRowIo IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Polar3d() Ctor. public Polar3d() Polar3d(Polar3d) Copy constructor public Polar3d(Polar3d src) Parameters src Polar3d The source Polar3d object to copy Polar3d(Vec3d) Ctor. public Polar3d(Vec3d src) Parameters src Vec3d src Polar3d(double, double, double) Ctor. public Polar3d(double r, double angle_rad, double z) Parameters r double r angle_rad double angle_rad z double z Polar3d(BinaryReader) Ctor by bytes: r = reader.ReadDouble(); angle = reader.ReadDouble(); z = reader.ReadDouble(); public Polar3d(BinaryReader reader) Parameters reader BinaryReader reader Polar3d(string) Ctor by string. The format is (r,angle_rad,z). public Polar3d(string src) Parameters src string src Fields angle_rad Angle in radian. public double angle_rad Field Value double r Radius. public double r Field Value double z Height. public double z Field Value double Properties Angle_deg Angle in degree. public double Angle_deg { get; set; } Property Value double Angle_rad Angle in radian. public double Angle_rad { get; set; } Property Value double CsvText Csv text. public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. public string CsvTitleText { get; } Property Value string IsAllFinite public bool IsAllFinite { get; } Property Value bool Is r,angle_rad,z all finite. IsAllNaN public bool IsAllNaN { get; } Property Value bool is r,angle_rad,z all NaN. IsAnyNaN public bool IsAnyNaN { get; } Property Value bool Is any of {r,angle_rad,z} NaN. NaN public static Polar3d NaN { get; } Property Value Polar3d Generate Polar3d(double.NaN, double.NaN, double.NaN). NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. R Radius. public double R { get; set; } Property Value double StaticCsvTitleText Gets the CSV column headers for Polar3d objects public static string StaticCsvTitleText { get; } Property Value string Text Gets or sets the text representation of this Polar3d object public string Text { get; set; } Property Value string Z Height. public double Z { get; set; } Property Value double Zero public static Polar3d Zero { get; } Property Value Polar3d Generate Polar3d(0, 0, 0). Methods Dot(Polar3d) this dot src. public double Dot(Polar3d src) Parameters src Polar3d src Returns double dotted value Equals(Polar3d) public bool Equals(Polar3d other) Parameters other Polar3d Returns bool Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ExpandToBox3d(Box3d) public void ExpandToBox3d(Box3d dst) Parameters dst Box3d GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Interpolate(Polar3d, Polar3d, double) Interpolate from a to b with ratio alpha:(1-alpha). public static Polar3d Interpolate(Polar3d a, Polar3d b, double alpha) Parameters a Polar3d a b Polar3d b alpha double ratio Returns Polar3d a * (1 - alpha) + b * alpha Parse(string) If src is not null and not empty string, return Polar3d(string); otherwise return null. public static Polar3d Parse(string src) Parameters src string src Returns Polar3d parsed Polar3d ReadBin(BinaryReader) public void ReadBin(BinaryReader reader) Parameters reader BinaryReader Set(Polar3d) Set values by copy. public Polar3d Set(Polar3d src) Parameters src Polar3d src Returns Polar3d this Set(double, double, double) Set values. public Polar3d Set(double r, double angle_rad, double z) Parameters r double r angle_rad double angle_rad z double z Returns Polar3d this Set(double[]) Set values by array. public Polar3d Set(double[] src) Parameters src double[] double[]{r,angle_rad,z} Returns Polar3d this SetEachNanToZero() Set NaN to 0 for each value. public Polar3d SetEachNanToZero() Returns Polar3d this ToArray() return new double[] { r, angle_rad, z } public double[] ToArray() Returns double[] { r, angle_rad, z } ToBuf(double[]) Set r,angle_rad,z to the dst array. public void ToBuf(double[] dst) Parameters dst double[] dst ToBuf(double[], ref int) Set r,angle_rad,z to the dst array from postion p and increase p by the pushed number. public int ToBuf(double[] dst, ref int p) Parameters dst double[] dst p int position from dst Returns int Which is pushed number of double ToString() To representative string with format:(r,angle_rad,z). public override string ToString() Returns string Representative string ToString(string) To string with format: (r,angle_rad,z) public string ToString(string format) Parameters format string format of ToString(string) Returns string Representative string ToString(string, IFormatProvider) Returns a string representation of the polar coordinates formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the polar coordinates TryParse(string, out Polar3d) Attempts to parse a string into a Polar3d object public static bool TryParse(string src, out Polar3d dst) Parameters src string The string to parse dst Polar3d When this method returns, contains the Polar3d object if parsing succeeded, or null if parsing failed Returns bool true if parsing succeeded; otherwise, false WriteBin(BinaryWriter) Output to bytes: writer.Write(r); writer.Write(angle); writer.Write(z); public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer Operators operator +(Polar3d, Polar3d) Plus. public static Polar3d operator +(Polar3d a, Polar3d b) Parameters a Polar3d a b Polar3d b Returns Polar3d new Polar3d(a.r + b.r, a.angle_rad + b.angle_rad, a.z + b.z) operator /(Polar3d, double) Get a new object from a scaled by 1/d. public static Polar3d operator /(Polar3d a, double d) Parameters a Polar3d a d double denominator Returns Polar3d result operator *(Polar3d, double) Scale a by s. public static Polar3d operator *(Polar3d a, double s) Parameters a Polar3d vector s double scale Returns Polar3d new Polar3d(a.r * s, a.angle_rad * s, a.z * s) operator -(Polar3d, Polar3d) Minus. public static Polar3d operator -(Polar3d a, Polar3d b) Parameters a Polar3d a b Polar3d b Returns Polar3d new Polar3d(a.r - b.r, a.angle_rad - b.angle_rad, a.z - b.z) operator -(Polar3d) Get negate vector. public static Polar3d operator -(Polar3d src) Parameters src Polar3d src Returns Polar3d new Polar3d(-src.r, -src.angle_rad, -src.z)" }, "api/Hi.Geom.Resolution.IPolarResolution2d.html": { "href": "api/Hi.Geom.Resolution.IPolarResolution2d.html", "title": "Interface IPolarResolution2d | HiAPI-C# 2025", "summary": "Interface IPolarResolution2d Namespace Hi.Geom.Resolution Assembly HiGeom.dll Interface for objects that control STL resolution parameters for both linear and angular measurements. public interface IPolarResolution2d 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 AngleResolution_deg Gets or sets the angular resolution in degrees. double AngleResolution_deg { get; set; } Property Value double AngleResolution_rad Gets or sets the angular resolution in radians. double AngleResolution_rad { get; set; } Property Value double LinearResolution_mm Gets or sets the linear resolution in millimeters. double LinearResolution_mm { get; set; } Property Value double" }, "api/Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html": { "href": "api/Hi.Geom.Resolution.IPolarResolution2dSourceProperty.html", "title": "Interface IPolarResolution2dSourceProperty | HiAPI-C# 2025", "summary": "Interface IPolarResolution2dSourceProperty Namespace Hi.Geom.Resolution Assembly HiGeom.dll Provides a property for the source of polar resolution. public interface IPolarResolution2dSourceProperty 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 PolarResolution2dSource The provider of IPolarResolution2d. Func PolarResolution2dSource { get; set; } Property Value Func" }, "api/Hi.Geom.Resolution.PolarResolution2d.html": { "href": "api/Hi.Geom.Resolution.PolarResolution2d.html", "title": "Class PolarResolution2d | HiAPI-C# 2025", "summary": "Class PolarResolution2d Namespace Hi.Geom.Resolution Assembly HiGeom.dll Polar resolution for generating geometry in polar coordinate. public class PolarResolution2d : IPolarResolution2d, IMakeXmlSource, IToXElement Inheritance object PolarResolution2d Implements IPolarResolution2d IMakeXmlSource IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) 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 PolarResolution2d() Initializes a new instance of the PolarResolution2d class. public PolarResolution2d() PolarResolution2d(double, double) Initializes a new instance of the PolarResolution2d class with values. public PolarResolution2d(double linearResolution_mm, double angleResolution_rad) Parameters linearResolution_mm double Linear resolution in millimeters angleResolution_rad double Angular resolution in radians PolarResolution2d(XElement) Initializes a new instance of the PolarResolution2d class from XML data. public PolarResolution2d(XElement src) Parameters src XElement The XML element containing polar resolution data. Properties AngleResolution_deg Gets or sets the angular resolution in degrees. public double AngleResolution_deg { get; set; } Property Value double AngleResolution_rad Gets or sets the angular resolution in radians. public double AngleResolution_rad { get; set; } Property Value double LinearResolution_mm Gets or sets the linear resolution in millimeters. public double LinearResolution_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Geom.Resolution.html": { "href": "api/Hi.Geom.Resolution.html", "title": "Namespace Hi.Geom.Resolution | HiAPI-C# 2025", "summary": "Namespace Hi.Geom.Resolution Classes PolarResolution2d Polar resolution for generating geometry in polar coordinate. Interfaces IPolarResolution2d Interface for objects that control STL resolution parameters for both linear and angular measurements. IPolarResolution2dSourceProperty Provides a property for the source of polar resolution." }, "api/Hi.Geom.Segment3d.html": { "href": "api/Hi.Geom.Segment3d.html", "title": "Class Segment3d | HiAPI-C# 2025", "summary": "Class Segment3d Namespace Hi.Geom Assembly HiGeom.dll Represents a 3D line segment defined by two endpoints. public class Segment3d : IExpandToBox3d, IEquatable, IBinaryIo, IWriteBin, IEnumerable, IEnumerable Inheritance object Segment3d Implements IExpandToBox3d IEquatable IBinaryIo IWriteBin IEnumerable IEnumerable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) EnumerableUtil.GetIntensiveItems(IEnumerable, double, Func) StringUtil.ToDotSplitedString(IEnumerable) MathUtil.Average(IEnumerable) MathUtil.Sum(IEnumerable) Tri3dUtil.GenTrisByFan(IEnumerable, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Segment3d() Initializes a new instance of the Segment3d class. public Segment3d() Segment3d(Vec3d, Vec3d) Initializes a new instance of the Segment3d class with endpoints. public Segment3d(Vec3d begin, Vec3d end) Parameters begin Vec3d Start point end Vec3d End point Properties Arrow Gets the arrow vector from Begin to End. public Vec3d Arrow { get; } Property Value Vec3d Begin The starting point of the segment. public Vec3d Begin { get; set; } Property Value Vec3d Center Gets the midpoint of the segment. public Vec3d Center { get; } Property Value Vec3d End The ending point of the segment. public Vec3d End { get; set; } Property Value Vec3d Length Gets the length of the segment. public double Length { get; } Property Value double LengthSquare The squared length of the segment. public double LengthSquare { get; } Property Value double Methods ClosestPoint(Vec3d) Gets the closest point on the segment to the specified point. public Vec3d ClosestPoint(Vec3d point) Parameters point Vec3d Point to find closest point to. Returns Vec3d Closest point on the segment. Equals(Segment3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Segment3d other) Parameters other Segment3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. 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 GetEnumerator() Returns an enumerator that iterates through the collection. public IEnumerator GetEnumerator() Returns IEnumerator An enumerator that can be used to iterate through the collection. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. PointAt(double) Gets a point on the segment at the specified parameter t (0 <= t <= 1). public Vec3d PointAt(double t) Parameters t double Parameter value between 0 and 1. Returns Vec3d Point on the segment. ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Swap() Swaps the begin and end points of the segment. public void Swap() ToString() Returns a string representation of the segment. public override string ToString() Returns string WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Geom.Solvers.BinarySolverUtil.html": { "href": "api/Hi.Geom.Solvers.BinarySolverUtil.html", "title": "Class BinarySolverUtil | HiAPI-C# 2025", "summary": "Class BinarySolverUtil Namespace Hi.Geom.Solvers Assembly HiGeom.dll Utility class providing binary solving methods for one-dimensional functions. public static class BinarySolverUtil Inheritance object BinarySolverUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CenterSplitionSolve(Func, Range, Vec2d, double, double, Func, int) Efficient center splitting solve that uses an initial point (x0, y0) within the boundary to save one function evaluation. The algorithm intelligently chooses the optimal boundary points based on the initial point position. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, Vec2d x0y0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval. The order of Min and Max is not mattered, i.e. they can be reversed. x0y0 Vec2d Initial x,y value (x0,func(x0)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range and initial x value. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double x0, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval x0 double Initial x value (must be within the boundary) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, Range, double, double, Func, int) Solves for a target y-value using the center splitting method with a boundary range. public static IEnumerable CenterSplitionSolve(Func func, Range xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve xBoundary Range Boundary of the search interval yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolve(Func, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method. public static IEnumerable CenterSplitionSolve(Func func, double x0, double y0, double xBoundary, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) xBoundary double extended side boundary yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution CenterSplitionSolveWithY1(Func, double, double, double, double, double, double, Func, int) Solves for a target y-value using the center splitting method with a pre-calculated y1 value. public static IEnumerable CenterSplitionSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, Func isYAcceptableFunc, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) isYAcceptableFunc Func Function to determine if a y value is acceptable maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolve(Func, double, double, double, double, double, int) Solves for a target y-value using the slope method. public static IEnumerable SlopeSolve(Func func, double x0, double y0, double x1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution SlopeSolveWithY1(Func, double, double, double, double, double, double, int) Solves for a target y-value using the slope method with a pre-calculated y1 value. public static IEnumerable SlopeSolveWithY1(Func func, double x0, double y0, double x1, double y1, double yTarget, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve x0 double Initial x value y0 double Initial y value (func(x0)) x1 double Second x value y1 double Second y value (func(x1)) yTarget double Target y value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving status objects showing the progress of the solution" }, "api/Hi.Geom.Solvers.BinarySolvingEntry.html": { "href": "api/Hi.Geom.Solvers.BinarySolvingEntry.html", "title": "Class BinarySolvingEntry | HiAPI-C# 2025", "summary": "Class BinarySolvingEntry Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. public class BinarySolvingEntry Inheritance object BinarySolvingEntry Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 BinarySolvingEntry(SolvingStatus, int, double, double, double, double, double, double) Initializes a new instance of the BinarySolvingEntry class. public BinarySolvingEntry(SolvingStatus solvingResultStatus, int iteration, double bestX, double bestY, double minBias, double workingX, double workingY, double bias) Parameters solvingResultStatus SolvingStatus The current status of the solving process iteration int The current iteration count bestX double The X-coordinate of the best solution found bestY double The Y-coordinate of the best solution found minBias double The minimum bias (error) found workingX double The current working X-coordinate workingY double The current working Y-coordinate bias double The current bias (error) Properties BestX Gets or sets the X-coordinate of the best solution found. public double BestX { get; set; } Property Value double BestY Gets or sets the Y-coordinate of the best solution found. public double BestY { get; set; } Property Value double Bias Gets or sets the current bias (error). public double Bias { get; set; } Property Value double Iteration Gets or sets the current iteration count. public int Iteration { get; set; } Property Value int MinBias Gets or sets the minimum bias (error) found. public double MinBias { get; set; } Property Value double SolvingStatus Gets or sets the current status of the solving process. public SolvingStatus SolvingStatus { get; set; } Property Value SolvingStatus WorkingX Gets or sets the current working X-coordinate. public double WorkingX { get; set; } Property Value double WorkingY Gets or sets the current working Y-coordinate. public double WorkingY { get; set; } Property Value double Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Geom.Solvers.DeepSolvingStatus.html": { "href": "api/Hi.Geom.Solvers.DeepSolvingStatus.html", "title": "Class DeepSolvingStatus | HiAPI-C# 2025", "summary": "Class DeepSolvingStatus Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the status of a deep solving process with multiple parameters. Contains detailed information about the solving process including iterations, convergence, and Jacobian matrix. public class DeepSolvingStatus Inheritance object DeepSolvingStatus Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 DeepSolvingStatus(int, int, int, double, double[], double[], double[,], double[], double, SolvingTerm) Initializes a new instance of the DeepSolvingStatus class. public DeepSolvingStatus(int totalIteration, int directIteration, int slowIteration, double convergence, double[] para, double[] bias, double[,] jacob, double[] bestPara, double bestConvergence, SolvingTerm solvingTerm) Parameters totalIteration int The total number of iterations performed directIteration int The number of direct method iterations performed slowIteration int The number of slow method iterations performed convergence double The current convergence value para double[] The current parameter values bias double[] The current bias values jacob double[,] The Jacobian matrix bestPara double[] The best parameter values found bestConvergence double The best convergence value found solvingTerm SolvingTerm The current solving term Fields bestConvergence The best convergence value found so far. public double bestConvergence Field Value double bestPara The best parameter values found so far. public double[] bestPara Field Value double[] bias The current bias (error) values. public double[] bias Field Value double[] convergence The current convergence value (error metric). public double convergence Field Value double directIteration The number of direct method iterations performed. public int directIteration Field Value int jacob The Jacobian matrix for the current iteration. public double[,] jacob Field Value double[,] para The current parameter values. public double[] para Field Value double[] slowIteration The number of slow method iterations performed. public int slowIteration Field Value int solvingTerm The current solving term (method) being used. public SolvingTerm solvingTerm Field Value SolvingTerm totalIteration The total number of iterations performed. public int totalIteration Field Value int Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string) Returns a string representation of the solving status with the specified numeric format. public string ToString(string format) Parameters format string The numeric format string to use for formatting numeric values Returns string A string representation of the solving status" }, "api/Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html": { "href": "api/Hi.Geom.Solvers.NumericalSolver.GetRepondsDelegate.html", "title": "Delegate NumericalSolver.GetRepondsDelegate | HiAPI-C# 2025", "summary": "Delegate NumericalSolver.GetRepondsDelegate Namespace Hi.Geom.Solvers Assembly HiGeom.dll Delegate for getting response values from the system being solved. public delegate double[] NumericalSolver.GetRepondsDelegate() Returns double[] The response values from the system 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)" }, "api/Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html": { "href": "api/Hi.Geom.Solvers.NumericalSolver.SetParasDelegate.html", "title": "Delegate NumericalSolver.SetParasDelegate | HiAPI-C# 2025", "summary": "Delegate NumericalSolver.SetParasDelegate Namespace Hi.Geom.Solvers Assembly HiGeom.dll Delegate for setting parameter values in the system being solved. public delegate void NumericalSolver.SetParasDelegate(double[] paras) Parameters paras double[] The parameter values to set 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)" }, "api/Hi.Geom.Solvers.NumericalSolver.html": { "href": "api/Hi.Geom.Solvers.NumericalSolver.html", "title": "Class NumericalSolver | HiAPI-C# 2025", "summary": "Class NumericalSolver Namespace Hi.Geom.Solvers Assembly HiGeom.dll A numerical solver for systems of equations using the Jacobian matrix. public class NumericalSolver Inheritance object NumericalSolver 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) Constructors NumericalSolver(SetParasDelegate, int, GetRepondsDelegate, int, double, double, int) Initializes a new instance of the NumericalSolver class. public NumericalSolver(NumericalSolver.SetParasDelegate setParasFunc, int paraNum, NumericalSolver.GetRepondsDelegate getResponsesFunc, int targetNum, double partialInterval, double tolerance, int iterationLimit = 12) Parameters setParasFunc NumericalSolver.SetParasDelegate Function to set parameter values paraNum int Number of parameters in the system getResponsesFunc NumericalSolver.GetRepondsDelegate Function to get response values targetNum int Number of target values (equations) in the system partialInterval double Interval for calculating partial derivatives tolerance double Tolerance for convergence iterationLimit int Maximum number of iterations allowed Properties GetResponsesFunc Gets the function used to get response values. public NumericalSolver.GetRepondsDelegate GetResponsesFunc { get; } Property Value NumericalSolver.GetRepondsDelegate HalfPartialInterval Gets half of the partial interval value for optimization. public double HalfPartialInterval { get; } Property Value double IterationLimit Gets or sets the maximum number of iterations allowed. public int IterationLimit { get; set; } Property Value int ParaNum Gets or sets the number of parameters in the system. public int ParaNum { get; set; } Property Value int Paras Sets the parameter values in the system being solved. public double[] Paras { set; } Property Value double[] PartialInterval Gets or sets the interval used for calculating partial derivatives. public double PartialInterval { get; set; } Property Value double Responses Gets the response values from the system being solved. public double[] Responses { get; } Property Value double[] SetParasFunc Gets the function used to set parameter values. public NumericalSolver.SetParasDelegate SetParasFunc { get; } Property Value NumericalSolver.SetParasDelegate TargetNum Gets or sets the number of target values (equations) in the system. public int TargetNum { get; set; } Property Value int Tolerance Gets or sets the tolerance for convergence. public double Tolerance { get; set; } Property Value double Methods ErrorFunc(double[], double[]) Calculates the error (difference) between the system responses and target values. public double[] ErrorFunc(double[] paras, double[] targets) Parameters paras double[] The parameter values to use targets double[] The target values to compare against Returns double[] An array of error values Solve(double[], double[], out double, out double[,]) Solves the system of equations using numerical methods. public SolvingStatus Solve(double[] paras, double[] targets, out double minBias, out double[,] jacob) Parameters paras double[] The initial parameter values, will be modified during solving targets double[] The target values to solve for minBias double Output parameter that will contain the minimum bias (error) found jacob double[,] Output parameter that will contain the final Jacobian matrix Returns SolvingStatus The status of the solving process Remarks Note that the paras array will be modified during solving." }, "api/Hi.Geom.Solvers.SolverUtil.html": { "href": "api/Hi.Geom.Solvers.SolverUtil.html", "title": "Class SolverUtil | HiAPI-C# 2025", "summary": "Class SolverUtil Namespace Hi.Geom.Solvers Assembly HiGeom.dll Utility class providing advanced numerical solving methods for systems of equations. public static class SolverUtil Inheritance object SolverUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties LinearSlowIterationFunc Gets a linear function for slow iteration convergence. public static Func LinearSlowIterationFunc { get; } Property Value Func LogSlowIterationFunc Gets a logarithmic function for slow iteration convergence. public static Func LogSlowIterationFunc { get; } Property Value Func Methods DeepSolveArray(Func, int, double[], double[], double, Func, int, int, int) Performs deep solving of a function with multiple parameters. public static IEnumerable DeepSolveArray(Func func, int outputNum, double[] para, double[] dpara, double convergenceLimit, Func slowIterationFunc = null, int maxDirectIteration = 6, int maxSlowIteration = 6, int maxTotalIteration = 1200) Parameters func Func The function to solve. outputNum int The number of output values. para double[] The initial parameter values. dpara double[] The parameter delta values. convergenceLimit double The convergence limit. slowIterationFunc Func The function for slow iteration. maxDirectIteration int The maximum number of direct iterations. maxSlowIteration int The maximum number of slow iterations. maxTotalIteration int The maximum total number of iterations. Returns IEnumerable An enumerable of deep solving status objects. GetApproxInv(double[,], double) Calculates an approximate inverse of a matrix using SVD decomposition. public static double[,] GetApproxInv(double[,] mat, double availableAccumulatedWeightRatio = 0.99999999) Parameters mat double[,] The input matrix. availableAccumulatedWeightRatio double The ratio of accumulated weights to consider. Returns double[,] The approximate inverse matrix. GetApproxInvAndOrthogonalPaces(double[,], out List<(double eigenValue, double[] v)>) Calculates an approximate inverse of a matrix and returns orthogonal paces using SVD decomposition. public static double[,] GetApproxInvAndOrthogonalPaces(double[,] mat, out List<(double eigenValue, double[] v)> orthogonalPaces) Parameters mat double[,] The input matrix. orthogonalPaces List<(double eigenValue, double[] v)> The output list of orthogonal paces with eigenvalues and eigenvectors. Returns double[,] The approximate inverse matrix. GetBiases(Func, double[], double[]) Calculates the bias values between function outputs and target values. public static double[] GetBiases(Func func, double[] paras, double[] targets) Parameters func Func The function to evaluate. paras double[] The parameter values. targets double[] The target values. Returns double[] The bias values. GetCosSinTermRotationMat4d(Vec3d, double, double) Gets a rotation matrix from an axis and precomputed cosine/sine values using Rodrigues' rotation formula. public static Mat4d GetCosSinTermRotationMat4d(Vec3d axis, double cos, double sin) Parameters axis Vec3d The rotation axis (should be normalized). cos double The cosine of the rotation angle. sin double The sine of the rotation angle. Returns Mat4d A 4x4 rotation matrix. GetCosSinTermRotationMat4d(Vec3d, double, double, Vec3d) Gets a rotation matrix from an axis, precomputed cosine/sine values, and a pivot point. public static Mat4d GetCosSinTermRotationMat4d(Vec3d axis, double cos, double sin, Vec3d pivot) Parameters axis Vec3d The rotation axis (should be normalized). cos double The cosine of the rotation angle. sin double The sine of the rotation angle. pivot Vec3d The pivot point for the rotation. Returns Mat4d A 4x4 rotation matrix about the pivot point. GetJacobMat(Func, double[], double[], int) Calculates the Jacobian matrix for a function. public static double[,] GetJacobMat(Func func, double[] paras, double[] dparas, int targetNum) Parameters func Func The function to evaluate. paras double[] The parameter values. dparas double[] The parameter delta values. targetNum int The number of target values. Returns double[,] The Jacobian matrix. GetParasCompensation(Func, double[], double[], double[], out double[,]) Gets parameter compensation values based on the function, current parameters, parameter deltas, and target values. public static double[] GetParasCompensation(Func func, double[] paras, double[] dparas, double[] targets, out double[,] jacob) Parameters func Func The function to evaluate. paras double[] The current parameter values. dparas double[] The parameter delta values. targets double[] The target values. jacob double[,] The output Jacobian matrix. Returns double[] The parameter compensation values. GetParasCompensation(Func, double[], double[], double[], double[], out double[,]) Gets parameter compensation values based on the function, current parameters, parameter deltas, target values, and biases. public static double[] GetParasCompensation(Func func, double[] paras, double[] dparas, double[] targets, double[] biases, out double[,] jacob) Parameters func Func The function to evaluate. paras double[] The current parameter values. dparas double[] The parameter delta values. targets double[] The target values. biases double[] The bias values. jacob double[,] The output Jacobian matrix. Returns double[] The parameter compensation values. Solve(Func, double, double, double, double, int) Solves a one-dimensional function for a target value. public static IEnumerable Solve(Func func, double para, double dpara, double target, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve para double Initial parameter value dpara double Parameter step size for calculating derivatives target double Target value to solve for convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving result objects showing the progress of the solution SolveArray(Func, double[], double[], double[], Func, double, int) Solves a multi-dimensional function for specified target values with a custom convergence function. public static IEnumerable SolveArray(Func func, double[] paras, double[] dparas, double[] targets, Func convergenceFunc, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve paras double[] Initial parameter values dparas double[] Parameter step sizes for calculating derivatives targets double[] Target values to solve for convergenceFunc Func Function to calculate convergence from biases convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving result objects showing the progress of the solution SolveArray(Func, double[], double[], int, double, int) Solves a multi-dimensional function with default convergence function. public static IEnumerable SolveArray(Func func, double[] paras, double[] dparas, int funcDstNum, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve paras double[] Initial parameter values dparas double[] Parameter step sizes for calculating derivatives funcDstNum int Number of output values from the function convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving result objects showing the progress of the solution SolveArray(Func, double[], double[], int, Func, double, int) Solves a multi-dimensional function with a specified convergence function. public static IEnumerable SolveArray(Func func, double[] paras, double[] dparas, int funcDstNum, Func convergenceFunc, double convergenceLimit, int maxIteration = 12) Parameters func Func The function to solve paras double[] Initial parameter values dparas double[] Parameter step sizes for calculating derivatives funcDstNum int Number of output values from the function convergenceFunc Func Function to calculate convergence from biases convergenceLimit double Convergence limit (acceptable error) maxIteration int Maximum number of iterations Returns IEnumerable A sequence of solving result objects showing the progress of the solution Test() Internal Use Only public static void Test() Test2() Internal Use Only public static void Test2()" }, "api/Hi.Geom.Solvers.SolvingResult.html": { "href": "api/Hi.Geom.Solvers.SolvingResult.html", "title": "Class SolvingResult | HiAPI-C# 2025", "summary": "Class SolvingResult Namespace Hi.Geom.Solvers Assembly HiGeom.dll Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. public class SolvingResult Inheritance object SolvingResult 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) Constructors SolvingResult(SolvingStatus, double[], double[], double, int, int, double[], double[,]) Initializes a new instance of the SolvingResult class. public SolvingResult(SolvingStatus solvingResultStatus, double[] workingParas, double[] biases, double convergence, int iteration, int continuousSlowMomentumIteration, double[] paraCompensationOnNext, double[,] jacob) Parameters solvingResultStatus SolvingStatus The status of the solving process workingParas double[] The current working parameter values biases double[] The bias values for each constraint convergence double The convergence metric iteration int The total number of iterations performed continuousSlowMomentumIteration int The number of continuous iterations using slow momentum method paraCompensationOnNext double[] Parameter compensation values for the next iteration jacob double[,] The Jacobian matrix Fields biases The bias (error) values for each constraint. public double[] biases Field Value double[] continuousSlowMomentumIteration The number of continuous iterations using slow momentum method. public int continuousSlowMomentumIteration Field Value int convergence The convergence metric (overall error). public double convergence Field Value double iteration The total number of iterations performed. public int iteration Field Value int jacob The Jacobian matrix for the current iteration. public double[,] jacob Field Value double[,] paraCompensationOnNext Parameter compensation values to apply in the next iteration. public double[] paraCompensationOnNext Field Value double[] solvingResultStatus The status of the solving process. public SolvingStatus solvingResultStatus Field Value SolvingStatus workingParas The current working parameter values. public double[] workingParas Field Value double[] Methods ToString(string) Returns a string representation of the solving result with the specified numeric format. public string ToString(string format) Parameters format string The numeric format string to use for formatting numeric values Returns string A string representation of the solving result" }, "api/Hi.Geom.Solvers.SolvingStatus.html": { "href": "api/Hi.Geom.Solvers.SolvingStatus.html", "title": "Enum SolvingStatus | HiAPI-C# 2025", "summary": "Enum SolvingStatus Namespace Hi.Geom.Solvers Assembly HiGeom.dll Enumeration of possible statuses for solving results. public enum SolvingStatus 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 Iterating = 4 Currently in the process of iterating. NotCal = 0 Not calculated yet. OverIteration = 3 Exceeded maximum number of iterations. Singular = 2 Singular condition encountered during solving. Solved = 1 Successfully solved." }, "api/Hi.Geom.Solvers.SolvingTerm.html": { "href": "api/Hi.Geom.Solvers.SolvingTerm.html", "title": "Enum SolvingTerm | HiAPI-C# 2025", "summary": "Enum SolvingTerm Namespace Hi.Geom.Solvers Assembly HiGeom.dll Enumeration of solving terms or methods used in geometric solvers. public enum SolvingTerm 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 Direct = 1 Direct solving method, typically using analytical solutions. Side = 2 Side solving method, typically used for auxiliary calculations. Slow = 0 Slow solving method, typically using iterative approaches." }, "api/Hi.Geom.Solvers.html": { "href": "api/Hi.Geom.Solvers.html", "title": "Namespace Hi.Geom.Solvers | HiAPI-C# 2025", "summary": "Namespace Hi.Geom.Solvers Classes BinarySolverUtil Utility class providing binary solving methods for one-dimensional functions. BinarySolvingEntry Represents the status of a binary solving process. Contains information about the current state of the solver including best solutions and error metrics. DeepSolvingStatus Represents the status of a deep solving process with multiple parameters. Contains detailed information about the solving process including iterations, convergence, and Jacobian matrix. NumericalSolver A numerical solver for systems of equations using the Jacobian matrix. SolverUtil Utility class providing advanced numerical solving methods for systems of equations. SolvingResult Represents the result of a solving process. Contains detailed information about the solution including parameters, biases, and convergence metrics. Enums SolvingStatus Enumeration of possible statuses for solving results. SolvingTerm Enumeration of solving terms or methods used in geometric solvers. Delegates NumericalSolver.GetRepondsDelegate Delegate for getting response values from the system being solved. NumericalSolver.SetParasDelegate Delegate for setting parameter values in the system being solved." }, "api/Hi.Geom.Stl.StlType.html": { "href": "api/Hi.Geom.Stl.StlType.html", "title": "Enum Stl.StlType | HiAPI-C# 2025", "summary": "Enum Stl.StlType Namespace Hi.Geom Assembly HiGeom.dll Stl file format. public enum Stl.StlType 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 ASCII = 1 ASCII format BINARY = 2 Binary format UNKNOWN = 0 unknown format" }, "api/Hi.Geom.Stl.html": { "href": "api/Hi.Geom.Stl.html", "title": "Class Stl | HiAPI-C# 2025", "summary": "Class Stl Namespace Hi.Geom Assembly HiGeom.dll STL (stereolithography). Composed by Triangles. Provide Stl File R/W. public class Stl : IGetStl, IExpandToBox3d Inheritance object Stl Implements IGetStl IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) 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 Stl(Box3d) Ctor by box. public Stl(Box3d box) Parameters box Box3d box Stl(Stl) Copy ctor. public Stl(Stl stl) Parameters stl Stl src stl Stl(params Stl[]) Ctor. Copy triangles from stls. public Stl(params Stl[] stls) Parameters stls Stl[] source stls Stl(IEnumerable) Ctor. The content of tris is copied by this.tris = new List(tris). public Stl(IEnumerable tris) Parameters tris IEnumerable triangles Stl(Stream, StlType) Ctor by stream. public Stl(Stream stream, Stl.StlType stlType = StlType.UNKNOWN) Parameters stream Stream stl data stream stlType Stl.StlType stl data format Stl(int) Ctor with preserved triangle grid capacity. public Stl(int cap = 16) Parameters cap int Preserved triangle grid capacity Stl(string, StlType) ctor by file. public Stl(string file, Stl.StlType stlType = StlType.UNKNOWN) Parameters file string stl file stlType Stl.StlType stl file format Properties Area Gets the total surface area of the STL model public double Area { get; } Property Value double Tris public List Tris { get; set; } Property Value List Triangle grid of this. Methods 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 GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object IsAscii(Stream) Is the stream ascii format stl. public static bool IsAscii(Stream stream) Parameters stream Stream stream Returns bool true if the stream is ascii format stl; otherwise, return false. IsAscii(string) Is the file ascii format stl. public static bool IsAscii(string file) Parameters file string file Returns bool true if the file is ascii format stl; otherwise, return false. ReBuildNormal() Re-build normal for all triangles. public void ReBuildNormal() Transform(Mat4d) Trasnform all the triangles by the given matrix. public Stl Transform(Mat4d mat) Parameters mat Mat4d matrix Returns Stl this WriteBin(BinaryWriter) Write this to the writer with binary format. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer WriteBin(string) Write this to the file with binary format. public void WriteBin(string file) Parameters file string dst file" }, "api/Hi.Geom.StlFile.html": { "href": "api/Hi.Geom.StlFile.html", "title": "Class StlFile | HiAPI-C# 2025", "summary": "Class StlFile Namespace Hi.Geom Assembly HiGeom.dll Represents an STL file with loading and saving capabilities public class StlFile : IStlSource, IGetStl, IMakeXmlSource, IExpandToBox3d, IDuplicate, ISourceFile, IToPresentDto Inheritance object StlFile Implements IStlSource IGetStl IMakeXmlSource IExpandToBox3d IDuplicate ISourceFile IToPresentDto Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) PairZrUtil.GetZrList(IGetStl) 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 StlFile() Ctor. public StlFile() StlFile(string) Ctor. public StlFile(string filePath) Parameters filePath string file path StlFile(string, string) Initializes a new instance with the specified file path and optional base directory. If base directory is provided, the STL will be loaded immediately. public StlFile(string filePath, string baseDirectory) Parameters filePath string STL file path baseDirectory string Base directory to load file from StlFile(XElement, string, IProgress) Ctor. public StlFile(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML baseDirectory string Base directory path progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties CacheStl CacheStl is loaded by the xml construtor. public Stl CacheStl { get; set; } Property Value Stl SourceFile Stl file path. public string SourceFile { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object LoadStlByFile(string) Loads an STL file from the specified base directory into the cache public Stl LoadStlByFile(string baseDirectory) Parameters baseDirectory string The base directory where the file is located Returns Stl The loaded STL object, or null if the file path is empty or loading fails MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SaveStlToFile(string) Saves the cached STL data to a file in the specified base directory public void SaveStlToFile(string baseDirectory) Parameters baseDirectory string The base directory where the file will be saved ToPresentDto() Convert StlFile to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and SourceFile keys" }, "api/Hi.Geom.StlFuncHost.html": { "href": "api/Hi.Geom.StlFuncHost.html", "title": "Class StlFuncHost | HiAPI-C# 2025", "summary": "Class StlFuncHost Namespace Hi.Geom Assembly HiGeom.dll A class that hosts a function to generate STL geometry. public class StlFuncHost : IGetStl Inheritance object StlFuncHost Implements IGetStl Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods PairZrUtil.GetZrList(IGetStl) 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 StlFuncHost() Default constructor. public StlFuncHost() StlFuncHost(Func) Constructor with STL generator function. public StlFuncHost(Func stlHostFunc) Parameters stlHostFunc Func Function that generates an STL object Properties StlHostFunc Gets or sets the function that generates the STL object. public Func StlHostFunc { get; set; } Property Value Func Methods GetStl() Gets the STL geometry by invoking the hosted function. public Stl GetStl() Returns Stl The generated STL object" }, "api/Hi.Geom.StlUtil.html": { "href": "api/Hi.Geom.StlUtil.html", "title": "Class StlUtil | HiAPI-C# 2025", "summary": "Class StlUtil Namespace Hi.Geom Assembly HiDisp.dll Utility for Stl. public static class StlUtil Inheritance object StlUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ToFaceDrawing(IGetStl) To Drawing, in form of faces. If GetStl() is null, return null. public static Drawing ToFaceDrawing(this IGetStl src) Parameters src IGetStl src Returns Drawing Face Drawing ToLineDrawing(IGetStl) To Drawing, in form of lines. If GetStl() is null, return null. public static Drawing ToLineDrawing(this IGetStl src) Parameters src IGetStl src Returns Drawing Lines Drawing ToSparkleLineDrawing(IGetStl) Converts an STL geometry to a sparkle line drawing. public static Drawing ToSparkleLineDrawing(this IGetStl src) Parameters src IGetStl The source STL geometry. Returns Drawing A sparkle line drawing, or null if the STL or its triangles are null." }, "api/Hi.Geom.Topo.CarveBooleanKind.html": { "href": "api/Hi.Geom.Topo.CarveBooleanKind.html", "title": "Enum CarveBooleanKind | HiAPI-C# 2025", "summary": "Enum CarveBooleanKind Namespace Hi.Geom.Topo Assembly HiDisp.dll What a carve boolean did to the workpiece container. public enum CarveBooleanKind 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 AddedShell = 1 Union with a strictly disjoint tool: the tool joined as a second shell. Crossed = 0 The surfaces crossed and were stitched along the seam contour. Kept = 2 The operation was a no-op (e.g. union with a tool inside the workpiece). Replaced = 3 Union with an enclosing tool: the workpiece content was replaced by the tool." }, "api/Hi.Geom.Topo.CarveBooleanResult.html": { "href": "api/Hi.Geom.Topo.CarveBooleanResult.html", "title": "Class CarveBooleanResult | HiAPI-C# 2025", "summary": "Class CarveBooleanResult Namespace Hi.Geom.Topo Assembly HiDisp.dll Result of one carve boolean step. On failure the workpiece is untouched and the step may simply be skipped. public sealed class CarveBooleanResult Inheritance object CarveBooleanResult Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 FailReason Reason of a failed step, empty otherwise. public string FailReason { get; } Property Value string Failed Whether the boolean refused the step (non-manifold cut, contact without crossing, ...). public bool Failed { get; } Property Value bool KeyLines The seam contour segments (double-evaluated copies of the exact seam). public IReadOnlyList KeyLines { get; } Property Value IReadOnlyList Kind What the boolean did. Meaningless when Failed is set. public CarveBooleanKind Kind { get; } Property Value CarveBooleanKind RemovedWorkpieceTris Number of workpiece triangles removed by the surgery. public int RemovedWorkpieceTris { get; } Property Value int SewnToolTris Number of tool triangles sewn into the workpiece. public int SewnToolTris { get; } Property Value int" }, "api/Hi.Geom.Topo.CarveStl.html": { "href": "api/Hi.Geom.Topo.CarveStl.html", "title": "Class CarveStl | HiAPI-C# 2025", "summary": "Class CarveStl Namespace Hi.Geom.Topo Assembly HiDisp.dll A triangle mesh that can be carved: an exact-fraction topology graph with an incrementally maintained spatial index, mutated in place by exact boolean steps (SubstractVolume(Stl, double) / AddVolume(Stl, double)). Unlike NativeTopoStl3wfr (build-once sweeping input), this object is long-lived and accumulates cut geometry step after step; sharp edges and exact planar faces survive the booleans exactly. Not thread-safe. public class CarveStl : IDisposable, IDisplayee, IExpandToBox3d Inheritance object CarveStl Implements IDisposable IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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) Remarks Conversion loss, by source: NativeTopoStl3wfr and another CarveStl are already exact fractions, so those overloads copy coordinates verbatim and take no tolerance — the only lossless inbound paths. Stl and NativeTopoStl3d hold doubles, which have no small-denominator exact form, so those overloads convert at fractionTolerance. The loss is inherent to the source type, not to the route: converting such a mesh by any other path costs the same. Outbound, GenStl() evaluates to double, so a carved result round-tripped through it loses the compound coordinates the booleans produced. Keep the CarveStl itself, or pass it directly as a tool, when the exact surface is the deliverable. Constructors CarveStl(Stl, double) Initializes the container from an STL model. The triangles are converted to exact fractions at fractionTolerance. public CarveStl(Stl stl, double fractionTolerance) Parameters stl Stl The initial workpiece mesh (a closed shell). fractionTolerance double The tolerance for fraction conversion. CarveStl(CarveStl) Initializes the container as an exact copy of another CarveStl — a snapshot that later boolean steps on either object leave untouched. Lossless. public CarveStl(CarveStl src) Parameters src CarveStl The container to copy. CarveStl(NativeTopoStl3d, double) Initializes the container from a double-precision topology graph. The triangles are converted to exact fractions at fractionTolerance — the source holds doubles, so this is inherently the lossy path. public CarveStl(NativeTopoStl3d src, double fractionTolerance) Parameters src NativeTopoStl3d The source mesh (a closed shell). fractionTolerance double The tolerance for fraction conversion. CarveStl(NativeTopoStl3wfr) Initializes the container from an exact-fraction topology graph, copying every coordinate verbatim. Lossless, hence no tolerance: the source is already the same numeric type. The source is only read. public CarveStl(NativeTopoStl3wfr src) Parameters src NativeTopoStl3wfr The source mesh (a closed shell). Properties CarvePtr Gets the pointer to the native container. public nint CarvePtr { get; } Property Value nint IsSeamless Gets whether every directed edge is paired with an owned reverse (the manifold invariant the booleans maintain). public bool IsSeamless { get; } Property Value bool Size Gets the number of triangles currently in the container. public int Size { get; } Property Value int Methods AddVolume(Stl, double) Exact in-place union: merges the tool volume into the container. Same calling contract as SubstractVolume(Stl, double). public CarveBooleanResult AddVolume(Stl tool, double fractionTolerance) Parameters tool Stl The tool mesh (a closed shell). fractionTolerance double The tolerance for the tool's fraction conversion. Returns CarveBooleanResult The step result; on failure the container is untouched. AddVolume(CarveStl) Exact in-place union with another container's current state. Lossless; tool is only read. public CarveBooleanResult AddVolume(CarveStl tool) Parameters tool CarveStl The container whose volume is merged in. Returns CarveBooleanResult The step result; on failure this container is untouched. AddVolume(NativeTopoStl3wfr) Exact in-place union with an exact-fraction tool — the lossless tool path, hence no tolerance. The tool mesh is copied natively before the surgery consumes it, so tool survives the call. public CarveBooleanResult AddVolume(NativeTopoStl3wfr tool) Parameters tool NativeTopoStl3wfr The tool mesh (a closed shell). Returns CarveBooleanResult The step result; on failure the container is untouched. 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 ~CarveStl() protected ~CarveStl() GenStl() Generates an STL model from the container's current state. public Stl GenStl() Returns Stl A new STL model. SubstractVolume(Stl, double) Exact in-place difference: carves the tool volume out of the container. The tool triangles are consumed natively per call, so the same Stl may be reused for further steps. public CarveBooleanResult SubstractVolume(Stl tool, double fractionTolerance) Parameters tool Stl The tool mesh (a closed shell). fractionTolerance double The tolerance for the tool's fraction conversion. Returns CarveBooleanResult The step result; on failure the container is untouched. SubstractVolume(CarveStl) Exact in-place difference using another container's current state as the tool. Lossless; tool is only read. public CarveBooleanResult SubstractVolume(CarveStl tool) Parameters tool CarveStl The container whose volume is carved away. Returns CarveBooleanResult The step result; on failure this container is untouched. SubstractVolume(NativeTopoStl3wfr) Exact in-place difference with an exact-fraction tool — the lossless tool path, hence no tolerance. The tool mesh is copied natively before the surgery consumes it, so tool survives the call and may be reused for further steps. public CarveBooleanResult SubstractVolume(NativeTopoStl3wfr tool) Parameters tool NativeTopoStl3wfr The tool mesh (a closed shell). Returns CarveBooleanResult The step result; on failure the container is untouched." }, "api/Hi.Geom.Topo.NativeTopoStl3d.html": { "href": "api/Hi.Geom.Topo.NativeTopoStl3d.html", "title": "Class NativeTopoStl3d | HiAPI-C# 2025", "summary": "Class NativeTopoStl3d Namespace Hi.Geom.Topo Assembly HiDisp.dll Native TopoStl with element type double. public class NativeTopoStl3d : IDisposable, IDisplayee, IExpandToBox3d Inheritance object NativeTopoStl3d Implements IDisposable IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 NativeTopoStl3d(Stl) Initializes a new instance of the NativeTopoStl3d class. public NativeTopoStl3d(Stl stl) Parameters stl Stl The STL model to convert to a native topology. Properties CosRoundAngle Gets or sets the cosine of the angle used for rounding. public double CosRoundAngle { get; set; } Property Value double Size Gets the number of triangles in the native topology. public int Size { get; } Property Value int TopoStlPtr Gets the pointer to the native topology structure. public nint TopoStlPtr { get; } Property Value nint Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. DisplaySharpEdges(Bind) Renders only the edges of the topology. public void DisplaySharpEdges(Bind bind) Parameters bind Bind The binding context for rendering. 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 ~NativeTopoStl3d() protected ~NativeTopoStl3d() GenStl() Generates an STL model from the native topology. public Stl GenStl() Returns Stl A new STL model." }, "api/Hi.Geom.Topo.NativeTopoStl3wfr.html": { "href": "api/Hi.Geom.Topo.NativeTopoStl3wfr.html", "title": "Class NativeTopoStl3wfr | HiAPI-C# 2025", "summary": "Class NativeTopoStl3wfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Native TopoStl with element type fraction. public class NativeTopoStl3wfr : IDisposable, IDisplayee, IExpandToBox3d Inheritance object NativeTopoStl3wfr Implements IDisposable IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 NativeTopoStl3wfr(Stl, double) Initializes a new instance of the NativeTopoStl3wfr class. public NativeTopoStl3wfr(Stl stl, double fractionTolerance) Parameters stl Stl The STL model to convert to a native topology. fractionTolerance double The tolerance for fraction calculations. Properties Size Gets the number of triangles in the native topology. public int Size { get; } Property Value int TopoStlPtr Gets the pointer to the native topology structure. public nint TopoStlPtr { get; } Property Value nint 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 ~NativeTopoStl3wfr() protected ~NativeTopoStl3wfr() GenStl() Generates an STL model from the native topology. public Stl GenStl() Returns Stl A new STL model." }, "api/Hi.Geom.Topo.TopoLine3Hfr.html": { "href": "api/Hi.Geom.Topo.TopoLine3Hfr.html", "title": "Class TopoLine3Hfr | HiAPI-C# 2025", "summary": "Class TopoLine3Hfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Topological 3D line (directed edge) with Fraction coordinates. Maintains connectivity to adjacent reversed line and owning triangle. Corresponds to C++ topo_line3wfr_t. public class TopoLine3Hfr Inheritance object TopoLine3Hfr Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Fields P0 Start point. public readonly TopoPoint3Hfr P0 Field Value TopoPoint3Hfr P1 End point. public readonly TopoPoint3Hfr P1 Field Value TopoPoint3Hfr ReversedLine The reversed (opposite direction) line sharing the same two endpoints. Null if no adjacent triangle shares this edge in reverse. public TopoLine3Hfr ReversedLine Field Value TopoLine3Hfr Tri The triangle that owns this directed line. Null if this line is not yet part of a triangle. public TopoTri3Hfr Tri Field Value TopoTri3Hfr Methods ClearCache() Clears cached arrow and direction. public void ClearCache() GetArrow() Gets the arrow vector (P1 - P0) in fraction coordinates. Cached after first computation. public Vec3Hfr GetArrow() Returns Vec3Hfr GetDirection() Gets the normalized direction vector in double precision. Cached after first computation. public Vec3d GetDirection() Returns Vec3d ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Geom.Topo.TopoLine3StockHfr.html": { "href": "api/Hi.Geom.Topo.TopoLine3StockHfr.html", "title": "Class TopoLine3StockHfr | HiAPI-C# 2025", "summary": "Class TopoLine3StockHfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Stock (pool) of topological lines with deduplication based on endpoint identity. Corresponds to C++ topo_line3wfr_stock_t. public class TopoLine3StockHfr Inheritance object TopoLine3StockHfr 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) Constructors TopoLine3StockHfr(int) Initializes a new line stock with the specified capacity. public TopoLine3StockHfr(int capacity) Parameters capacity int Properties Count Gets the number of lines. public int Count { get; } Property Value int Lines Gets all lines in the stock. public IEnumerable Lines { get; } Property Value IEnumerable Methods BuildAdjacentLineIfExisted(TopoLine3Hfr) Builds the reversed line link for a single line if the reverse exists. public void BuildAdjacentLineIfExisted(TopoLine3Hfr tl) Parameters tl TopoLine3Hfr BuildAdjacentLinesIfExisted() Builds reversed line links for all lines in the stock. Corresponds to C++ build_adjacent_lines_if_existed. public void BuildAdjacentLinesIfExisted() Call(TopoPoint3Hfr, TopoPoint3Hfr) 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. public TopoLine3Hfr Call(TopoPoint3Hfr p0, TopoPoint3Hfr p1) Parameters p0 TopoPoint3Hfr p1 TopoPoint3Hfr Returns TopoLine3Hfr CallIfExisted(TopoPoint3Hfr, TopoPoint3Hfr) Gets an existing topological line from p0 to p1, or null if not found. Thread-safe. public TopoLine3Hfr CallIfExisted(TopoPoint3Hfr p0, TopoPoint3Hfr p1) Parameters p0 TopoPoint3Hfr p1 TopoPoint3Hfr Returns TopoLine3Hfr Del(TopoLine3Hfr) Removes a line from the stock and cleans up connectivity. Thread-safe. public void Del(TopoLine3Hfr line) Parameters line TopoLine3Hfr" }, "api/Hi.Geom.Topo.TopoPoint3Hfr.html": { "href": "api/Hi.Geom.Topo.TopoPoint3Hfr.html", "title": "Class TopoPoint3Hfr | HiAPI-C# 2025", "summary": "Class TopoPoint3Hfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Topological 3D point with Fraction coordinates. Maintains connectivity to adjacent lines and triangles. Corresponds to C++ topo_point3wfr_t. public class TopoPoint3Hfr Inheritance object TopoPoint3Hfr Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Fields BackwardLines Backward lines (lines ending at this point). Do not modify directly. public readonly List BackwardLines Field Value List ForwardLines Forward lines (lines starting from this point). Do not modify directly. public readonly List ForwardLines Field Value List Position The position in fraction coordinates. public Vec3Hfr Position Field Value Vec3Hfr Tris Triangles that contain this point. Do not modify directly. public readonly List Tris Field Value List Properties IsIsolated Whether the point is isolated (no forward lines). public bool IsIsolated { get; } Property Value bool IsSeamless Whether the point is seamless (all forward lines have a reversed line with a triangle). public bool IsSeamless { get; } Property Value bool Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Geom.Topo.TopoPoint3StockHfr.html": { "href": "api/Hi.Geom.Topo.TopoPoint3StockHfr.html", "title": "Class TopoPoint3StockHfr | HiAPI-C# 2025", "summary": "Class TopoPoint3StockHfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Stock (pool) of topological points with deduplication based on fraction coordinates. Corresponds to C++ topo_point3wfr_stock_t. public class TopoPoint3StockHfr Inheritance object TopoPoint3StockHfr 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) Constructors TopoPoint3StockHfr(int) Initializes a new point stock with the specified capacity. public TopoPoint3StockHfr(int capacity) Parameters capacity int Properties Count Gets the number of points. public int Count { get; } Property Value int Points Gets all points in the stock. public IEnumerable Points { get; } Property Value IEnumerable Methods Call(Vec3Hfr) 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. public TopoPoint3Hfr Call(Vec3Hfr v) Parameters v Vec3Hfr Returns TopoPoint3Hfr CallIfExisted(Vec3Hfr) Gets an existing topological point at the given position, or null if not found. Thread-safe. public TopoPoint3Hfr CallIfExisted(Vec3Hfr v) Parameters v Vec3Hfr Returns TopoPoint3Hfr Del(TopoPoint3Hfr) Removes a point from the stock. Thread-safe. public void Del(TopoPoint3Hfr tp) Parameters tp TopoPoint3Hfr ExpandToBox3d(Box3d) Expands a Box3d to include all points. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d" }, "api/Hi.Geom.Topo.TopoStl3Hfr.html": { "href": "api/Hi.Geom.Topo.TopoStl3Hfr.html", "title": "Class TopoStl3Hfr | HiAPI-C# 2025", "summary": "Class TopoStl3Hfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Pure C# topological STL (triangle mesh) with Fraction coordinates. Hfr: High-Precision (decimal) FRaction. Provides unlimited-precision exact arithmetic for geometric computations without relying on native (C++) interop. Corresponds to C++ topo_stl3wfr_t. public class TopoStl3Hfr : IDisplayee, IExpandToBox3d, IDisposable Inheritance object TopoStl3Hfr Implements IDisplayee IExpandToBox3d IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 TopoStl3Hfr(Stl, decimal) Initializes a topological STL from an Stl model. public TopoStl3Hfr(Stl stl, decimal fractionResolution) Parameters stl Stl Source STL model. fractionResolution decimal Fraction approximation resolution (decimal). TopoStl3Hfr(IReadOnlyList) Initializes a topological STL from fraction-precision triangles (Vec3Hfr arrays). Each element is a 3-element array of Vec3Hfr representing triangle apexes. Corresponds to C++ constructor topo_stl3wfr_t(Tri3fr_Iter, Tri3fr_Iter). public TopoStl3Hfr(IReadOnlyList tris) Parameters tris IReadOnlyList Source triangles as arrays of 3 Vec3Hfr. TopoStl3Hfr(IReadOnlyList, decimal) 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 topo_stl3wfr_t(Tri3d_Iter, Tri3d_Iter, double). public TopoStl3Hfr(IReadOnlyList tris, decimal fractionResolution) Parameters tris IReadOnlyList Source triangles. fractionResolution decimal Fraction approximation resolution (decimal). TopoStl3Hfr(int) Initializes an empty topological STL with the specified triangle capacity. public TopoStl3Hfr(int trisCap) Parameters trisCap int Expected number of triangles (for pre-allocation). Fields TlStock The line stock for this topological STL. public readonly TopoLine3StockHfr TlStock Field Value TopoLine3StockHfr TpStock The point stock for this topological STL. public readonly TopoPoint3StockHfr TpStock Field Value TopoPoint3StockHfr TtStock The triangle stock for this topological STL. public readonly TopoTri3StockHfr TtStock Field Value TopoTri3StockHfr Properties Count Gets the number of triangles. public int Count { get; } Property Value int FlatDisplayee Gets the flat-shaded displayee for this topological STL. Created lazily on first access. public TopoStl3HfrFlatDisplayee FlatDisplayee { get; } Property Value TopoStl3HfrFlatDisplayee Methods ClearDrawingsCache() Invalidates all cached displayees. Call this after modifying the topology. public void ClearDrawingsCache() Display(Bind) Displays the topological STL using flat shading. For smooth rendering, use TopoStl3HfrSmoothDisplayee. public void Display(Bind bind) Parameters bind Bind The rendering bind context. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Disposes the cached drawings. protected virtual void Dispose(bool disposing) Parameters disposing bool ExpandToBox3d(Box3d) Expands the box to include all points. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d IsSeamless() 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++ is_seamless(). public bool IsSeamless() Returns bool True if every directed edge has a reversed line with a triangle. IsSeamless(List) Checks whether the mesh is seamless. Defect lines are output to dstDefectLines. Corresponds to C++ is_seamless(vector&). public bool IsSeamless(List dstDefectLines) Parameters dstDefectLines List Output list for defect (non-seamless) lines. Returns bool True if the mesh is fully seamless. ToStl() Converts to an Stl model. public Stl ToStl() Returns Stl ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToTris() Converts all triangles to a list of Tri3d (double precision). Corresponds to C++ to_tris(). public List ToTris() Returns List" }, "api/Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html": { "href": "api/Hi.Geom.Topo.TopoStl3HfrFlatDisplayee.html", "title": "Class TopoStl3HfrFlatDisplayee | HiAPI-C# 2025", "summary": "Class TopoStl3HfrFlatDisplayee Namespace Hi.Geom.Topo Assembly HiDisp.dll Flat-shaded displayee for TopoStl3Hfr. Renders flat triangle faces (one normal per triangle) and all unique edge lines. Corresponds to C++ topo_stl3::_flatDraw + all-lines draw. public class TopoStl3HfrFlatDisplayee : IDisplayee, IExpandToBox3d, IDisposable Inheritance object TopoStl3HfrFlatDisplayee 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 DispUtil.Display(IDisplayee, Bind, Mat4d) 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 TopoStl3HfrFlatDisplayee(TopoStl3Hfr) Initializes a new flat displayee wrapping the given TopoStl3Hfr. public TopoStl3HfrFlatDisplayee(TopoStl3Hfr source) Parameters source TopoStl3Hfr The source topological STL. Properties Source The source topological STL. public TopoStl3Hfr Source { get; } Property Value TopoStl3Hfr Methods ClearCache() Invalidates all cached drawings. Call this after modifying the source topology. public void ClearCache() Display(Bind) Displays the flat-shaded topological STL: all edges in black + flat-shaded triangle faces. public void Display(Bind bind) Parameters bind 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" }, "api/Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html": { "href": "api/Hi.Geom.Topo.TopoStl3HfrSmoothDisplayee.html", "title": "Class TopoStl3HfrSmoothDisplayee | HiAPI-C# 2025", "summary": "Class TopoStl3HfrSmoothDisplayee Namespace Hi.Geom.Topo Assembly HiDisp.dll Smooth-shaded displayee for TopoStl3Hfr. 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 TopoStl3Hfr clean. Corresponds to C++ topo_stl3::_smoothDraw + _edgeDraw. public class TopoStl3HfrSmoothDisplayee : IDisplayee, IExpandToBox3d, IDisposable Inheritance object TopoStl3HfrSmoothDisplayee 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 DispUtil.Display(IDisplayee, Bind, Mat4d) 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 TopoStl3HfrSmoothDisplayee(TopoStl3Hfr, double) Initializes a new smooth displayee wrapping the given TopoStl3Hfr. public TopoStl3HfrSmoothDisplayee(TopoStl3Hfr source, double roundCos = 0.8) Parameters source TopoStl3Hfr The source topological STL. roundCos double Round cosine threshold (default 0.8). Fields DefaultRoundCos Default round cosine threshold for smooth/sharp edge classification. public const double DefaultRoundCos = 0.8 Field Value double DefaultRoundCosSquare Default round cosine squared threshold. public const double DefaultRoundCosSquare = 0.6400000000000001 Field Value double Properties RoundCos Gets or sets the round cosine threshold for smooth/sharp edge classification. Edges where the cos² of adjacent triangle normals exceeds this² are considered “round” (smooth). Setting this value invalidates the cached drawings. Corresponds to C++ _round_cos. public double RoundCos { get; set; } Property Value double Source The source topological STL. public TopoStl3Hfr Source { get; } Property Value TopoStl3Hfr Methods ClearCache() Invalidates all cached data (dictionaries and drawings). Call this after modifying the source topology or changing RoundCos. public void ClearCache() Display(Bind) Displays the smooth-shaded topological STL: sharp edges in black + smooth-shaded faces. Corresponds to C++ topo_stl3::Render. public void Display(Bind bind) Parameters bind 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" }, "api/Hi.Geom.Topo.TopoTri3Hfr.html": { "href": "api/Hi.Geom.Topo.TopoTri3Hfr.html", "title": "Class TopoTri3Hfr | HiAPI-C# 2025", "summary": "Class TopoTri3Hfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Topological 3D triangle with Fraction coordinates. Maintains connectivity to points and lines. Corresponds to C++ topo_tri3wfr_t. public class TopoTri3Hfr Inheritance object TopoTri3Hfr Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Fields Lines 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]}. public readonly TopoLine3Hfr[] Lines Field Value TopoLine3Hfr[] Ps Three apex points. ps[i] == lines[i].P0. public readonly TopoPoint3Hfr[] Ps Field Value TopoPoint3Hfr[] Properties CachedCross Gets or sets the cached cross product. Setting this is useful when the cross is computed externally (e.g. during construction). public Vec3Hfr? CachedCross { get; set; } Property Value Vec3Hfr? Methods ApexAtc(int) Gets the apex at the specified index. public Vec3Hfr ApexAtc(int index) Parameters index int Returns Vec3Hfr ClearCache() Clears all cached values. public void ClearCache() GetCross() Gets the cross product vector from line edges: lines[2].arrow x lines[0].arrow. Cached after first computation. Corresponds to C++ get_cross. public Vec3Hfr GetCross() Returns Vec3Hfr GetCrossByTls(TopoLine3Hfr, TopoLine3Hfr) Computes cross from line arrows: lines[2].arrow x lines[0].arrow. public static Vec3Hfr GetCrossByTls(TopoLine3Hfr tl0, TopoLine3Hfr tl2) Parameters tl0 TopoLine3Hfr tl2 TopoLine3Hfr Returns Vec3Hfr GetIntegerNormal() Gets the integer normal vector (cross scaled to integer-like fraction). Corresponds to C++ get_integer_normal. public Vec3Hfr GetIntegerNormal() Returns Vec3Hfr GetNormal() Gets the normalized (unit length) normal vector in double precision. Cached after first computation. Corresponds to C++ get_normal. public Vec3d GetNormal() Returns Vec3d ResetCross() Recomputes the cached cross product. public void ResetCross() ResetIntegerNormal() Recomputes the cached integer normal. Also recomputes the cross. public void ResetIntegerNormal() ResetNormal() Recomputes the cached normal. Also recomputes the integer normal and cross. public void ResetNormal() ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToTri3d() Converts to a Tri3d (double precision). public Tri3d ToTri3d() Returns Tri3d" }, "api/Hi.Geom.Topo.TopoTri3StockHfr.html": { "href": "api/Hi.Geom.Topo.TopoTri3StockHfr.html", "title": "Class TopoTri3StockHfr | HiAPI-C# 2025", "summary": "Class TopoTri3StockHfr Namespace Hi.Geom.Topo Assembly HiDisp.dll Stock (pool) of topological triangles. Corresponds to C++ topo_tri3wfr_stock_t. public class TopoTri3StockHfr Inheritance object TopoTri3StockHfr 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) Constructors TopoTri3StockHfr(int) Initializes a new triangle stock with the specified capacity. public TopoTri3StockHfr(int capacity) Parameters capacity int Properties Count Gets the number of triangles. public int Count { get; } Property Value int Tris Gets all triangles in the stock. public IReadOnlyCollection Tris { get; } Property Value IReadOnlyCollection Methods Del(TopoTri3Hfr) Removes a triangle from the stock and cleans up connectivity. Thread-safe. public void Del(TopoTri3Hfr src) Parameters src TopoTri3Hfr Gen(TopoLine3Hfr, TopoLine3Hfr, TopoLine3Hfr) Creates a new triangle from three directed edges and adds it to the stock. Thread-safe. public TopoTri3Hfr Gen(TopoLine3Hfr tl0, TopoLine3Hfr tl1, TopoLine3Hfr tl2) Parameters tl0 TopoLine3Hfr tl1 TopoLine3Hfr tl2 TopoLine3Hfr Returns TopoTri3Hfr Gen(TopoPoint3Hfr, TopoPoint3Hfr, TopoPoint3Hfr, TopoLine3StockHfr) Creates a new triangle from three points (automatically creating lines via the stock). Thread-safe. public TopoTri3Hfr Gen(TopoPoint3Hfr tp0, TopoPoint3Hfr tp1, TopoPoint3Hfr tp2, TopoLine3StockHfr lineStock) Parameters tp0 TopoPoint3Hfr tp1 TopoPoint3Hfr tp2 TopoPoint3Hfr lineStock TopoLine3StockHfr Returns TopoTri3Hfr" }, "api/Hi.Geom.Topo.Vec3Hfr.html": { "href": "api/Hi.Geom.Topo.Vec3Hfr.html", "title": "Struct Vec3Hfr | HiAPI-C# 2025", "summary": "Struct Vec3Hfr Namespace Hi.Geom.Topo Assembly HiDisp.dll 3D vector with Fraction elements. Provides unlimited-precision exact arithmetic for geometric computations. Corresponds to C++ vec3. public struct Vec3Hfr : IEquatable Implements IEquatable Inherited Members 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) Constructors Vec3Hfr(Fraction, Fraction, Fraction) Initializes a new Vec3Hfr with three fraction components. public Vec3Hfr(Fraction x, Fraction y, Fraction z) Parameters x Fraction y Fraction z Fraction Vec3Hfr(Vec3d, decimal) Initializes a new Vec3Hfr from a Vec3d with the specified resolution. Converts each double component to a fraction via Stern-Brocot approximation. public Vec3Hfr(Vec3d src, decimal resolution) Parameters src Vec3d Source double-precision vector. resolution decimal Fraction approximation tolerance. Fields X X component. public Fraction X Field Value Fraction Y Y component. public Fraction Y Field Value Fraction Z Z component. public Fraction Z Field Value Fraction Methods Dot(Vec3Hfr) Dot product. public readonly Fraction Dot(Vec3Hfr b) Parameters b Vec3Hfr Returns Fraction Equals(Vec3Hfr) Indicates whether the current object is equal to another object of the same type. public readonly bool Equals(Vec3Hfr other) Parameters other Vec3Hfr An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override readonly bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. Evaluate() Evaluates all components. public Vec3Hfr Evaluate() Returns Vec3Hfr GetCross(Vec3Hfr) Cross product: this x b. Corresponds to C++ get_cross. public readonly Vec3Hfr GetCross(Vec3Hfr b) Parameters b Vec3Hfr Returns Vec3Hfr GetHashCode() Returns the hash code for this instance. public override readonly int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Pack() Packs (reduces) all components to irreducible form. public Vec3Hfr Pack() Returns Vec3Hfr ToString() Returns the fully qualified type name of this instance. public override readonly string ToString() Returns string The fully qualified type name. ToVec3d() Converts to a Vec3d by evaluating each fraction component. public readonly Vec3d ToVec3d() Returns Vec3d Operators operator +(Vec3Hfr, Vec3Hfr) Addition. public static Vec3Hfr operator +(Vec3Hfr a, Vec3Hfr b) Parameters a Vec3Hfr b Vec3Hfr Returns Vec3Hfr operator ==(Vec3Hfr, Vec3Hfr) Equality operator. public static bool operator ==(Vec3Hfr a, Vec3Hfr b) Parameters a Vec3Hfr b Vec3Hfr Returns bool operator !=(Vec3Hfr, Vec3Hfr) Inequality operator. public static bool operator !=(Vec3Hfr a, Vec3Hfr b) Parameters a Vec3Hfr b Vec3Hfr Returns bool operator *(Fraction, Vec3Hfr) Scalar multiplication. public static Vec3Hfr operator *(Fraction s, Vec3Hfr a) Parameters s Fraction a Vec3Hfr Returns Vec3Hfr operator *(Vec3Hfr, Fraction) Scalar multiplication. public static Vec3Hfr operator *(Vec3Hfr a, Fraction s) Parameters a Vec3Hfr s Fraction Returns Vec3Hfr operator -(Vec3Hfr, Vec3Hfr) Subtraction. public static Vec3Hfr operator -(Vec3Hfr a, Vec3Hfr b) Parameters a Vec3Hfr b Vec3Hfr Returns Vec3Hfr operator -(Vec3Hfr) Negation. public static Vec3Hfr operator -(Vec3Hfr a) Parameters a Vec3Hfr Returns Vec3Hfr" }, "api/Hi.Geom.Topo.html": { "href": "api/Hi.Geom.Topo.html", "title": "Namespace Hi.Geom.Topo | HiAPI-C# 2025", "summary": "Namespace Hi.Geom.Topo Classes CarveBooleanResult Result of one carve boolean step. On failure the workpiece is untouched and the step may simply be skipped. CarveStl A triangle mesh that can be carved: an exact-fraction topology graph with an incrementally maintained spatial index, mutated in place by exact boolean steps (SubstractVolume(Stl, double) / AddVolume(Stl, double)). Unlike NativeTopoStl3wfr (build-once sweeping input), this object is long-lived and accumulates cut geometry step after step; sharp edges and exact planar faces survive the booleans exactly. Not thread-safe. NativeTopoStl3d Native TopoStl with element type double. NativeTopoStl3wfr Native TopoStl with element type fraction. TopoLine3Hfr Topological 3D line (directed edge) with Fraction coordinates. Maintains connectivity to adjacent reversed line and owning triangle. Corresponds to C++ topo_line3wfr_t. TopoLine3StockHfr Stock (pool) of topological lines with deduplication based on endpoint identity. Corresponds to C++ topo_line3wfr_stock_t. TopoPoint3Hfr Topological 3D point with Fraction coordinates. Maintains connectivity to adjacent lines and triangles. Corresponds to C++ topo_point3wfr_t. TopoPoint3StockHfr Stock (pool) of topological points with deduplication based on fraction coordinates. Corresponds to C++ topo_point3wfr_stock_t. TopoStl3Hfr Pure C# topological STL (triangle mesh) with Fraction coordinates. Hfr: High-Precision (decimal) FRaction. Provides unlimited-precision exact arithmetic for geometric computations without relying on native (C++) interop. Corresponds to C++ topo_stl3wfr_t. TopoStl3HfrFlatDisplayee Flat-shaded displayee for TopoStl3Hfr. Renders flat triangle faces (one normal per triangle) and all unique edge lines. Corresponds to C++ topo_stl3::_flatDraw + all-lines draw. TopoStl3HfrSmoothDisplayee Smooth-shaded displayee for TopoStl3Hfr. 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 TopoStl3Hfr clean. Corresponds to C++ topo_stl3::_smoothDraw + _edgeDraw. TopoTri3Hfr Topological 3D triangle with Fraction coordinates. Maintains connectivity to points and lines. Corresponds to C++ topo_tri3wfr_t. TopoTri3StockHfr Stock (pool) of topological triangles. Corresponds to C++ topo_tri3wfr_stock_t. Structs Vec3Hfr 3D vector with Fraction elements. Provides unlimited-precision exact arithmetic for geometric computations. Corresponds to C++ vec3. Enums CarveBooleanKind What a carve boolean did to the workpiece container." }, "api/Hi.Geom.TransformationGeom.html": { "href": "api/Hi.Geom.TransformationGeom.html", "title": "Class TransformationGeom | HiAPI-C# 2025", "summary": "Class TransformationGeom Namespace Hi.Geom Assembly HiMech.dll Represents a geometric transformation that can be applied to a geometry object. This class combines a transformer with a target geometry to produce transformed geometric results. public class TransformationGeom : IStlSource, IGetStl, IMakeXmlSource, IGeomProperty, IGenStl, IExpandToBox3d, IDuplicate Inheritance object TransformationGeom Implements IStlSource IGetStl IMakeXmlSource IGeomProperty IGenStl IExpandToBox3d IDuplicate Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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) Remarks The TransformationGeom class provides functionality to: Apply geometric transformations to STL geometry Support XML serialization and deserialization Handle duplication of transformation configurations Manage transformation matrices and their application to geometry Constructors TransformationGeom() Initializes a new instance of the TransformationGeom class with default values. public TransformationGeom() TransformationGeom(IGetStl) Initializes a new instance of the TransformationGeom class with a specified geometry. public TransformationGeom(IGetStl geom) Parameters geom IGetStl The geometry object to be transformed. TransformationGeom(XElement, string, IProgress) Initializes a new instance of the TransformationGeom class from XML data. public TransformationGeom(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML element containing the transformation data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. Remarks This constructor deserializes both the transformer and geometry data from the provided XML. If either element is missing or invalid, the corresponding property will be null. Properties Geom Gets or sets the target geometry that will be transformed. public IGetStl Geom { get; set; } Property Value IGetStl Remarks This property represents the base geometry object that will have the transformation applied to it. If null, operations involving this geometry will return null results. Transformer Gets or sets the transformer that defines the geometric transformation. The transformation is applied from left (first element) to right (last element), with the target geometry being on the left side. public ITransformer Transformer { get; set; } Property Value ITransformer Remarks The transformer can be null, in which case no transformation is applied to the geometry. XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string The string “TransformationGeom”. Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Remarks The duplication process creates new instances of both the transformer and geometry objects if they implement the appropriate cloning interfaces. ExpandToBox3d(Box3d) Expands the given box to include the bounds of the transformed geometry. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand. Remarks This method updates the provided box to encompass the transformed geometry. If the geometry or its STL representation is null, no expansion occurs. GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the transformed STL representation of the geometry. public Stl GetStl() Returns Stl The transformed STL if both geometry and transformer are valid; the original STL if transformer is null; null if geometry is null or produces null STL. Remarks If the transformer is null, the method returns the untransformed geometry. If the geometry is null or produces a null STL, the method returns null. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Geom.Tri3d.html": { "href": "api/Hi.Geom.Tri3d.html", "title": "Class Tri3d | HiAPI-C# 2025", "summary": "Class Tri3d Namespace Hi.Geom Assembly HiGeom.dll Basic 3D Triangle. public class Tri3d : ITri3d, IFlat3d, IExpandToBox3d, IEquatable, IBinaryIo, IWriteBin Inheritance object Tri3d Implements ITri3d IFlat3d IExpandToBox3d IEquatable IBinaryIo IWriteBin Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) 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 Tri3d(ITri3d) Creates a triangle from an ITri3d interface public Tri3d(ITri3d t) Parameters t ITri3d The source triangle implementing ITri3d Tri3d(ITri3d, Mat4d) Creates a triangle from an ITri3d interface and transforms it using a matrix public Tri3d(ITri3d t, Mat4d mat) Parameters t ITri3d The source triangle implementing ITri3d mat Mat4d The transformation matrix to apply Tri3d(Tri3d, bool) Creates a triangle by copying or referencing another triangle public Tri3d(Tri3d t, bool useRef = false) Parameters t Tri3d The source triangle useRef bool If true, references to the source triangle's vertices and normal are used; otherwise, copies are created Tri3d(Vec3d, Vec3d, Vec3d) Ctor. public Tri3d(Vec3d p0, Vec3d p1, Vec3d p2) Parameters p0 Vec3d apex0 p1 Vec3d apex1 p2 Vec3d apex2 Tri3d(Vec3d, Vec3d, Vec3d, Vec3d) Creates a triangle with the specified vertices and normal vector public Tri3d(Vec3d p0, Vec3d p1, Vec3d p2, Vec3d n) Parameters p0 Vec3d First vertex p1 Vec3d Second vertex p2 Vec3d Third vertex n Vec3d Normal vector Tri3d(tri3d) Ctor. public Tri3d(tri3d src) Parameters src tri3d src Tri3d(bool) Ctor. public Tri3d(bool initAllMemberToNull = false) Parameters initAllMemberToNull bool If true, the three apexes and normal are null; otherwise, they are initialized by the default constructor of Vec3d. Tri3d(BinaryReader) Creates a triangle by reading its data from a binary reader public Tri3d(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Fields n normal vector of this triangle. public Vec3d n Field Value Vec3d ps Points. Three apexs. public Vec3d[] ps Field Value Vec3d[] Properties Area Gets the area of the triangle public double Area { get; } Property Value double NativeByteSize Native byte size. public static int NativeByteSize { get; } Property Value int Methods Equals(Tri3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Tri3d other) Parameters other Tri3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. 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 GetApex(int) Gets the specified vertex (apex) of this triangle. public Vec3d GetApex(int i) Parameters i int Index of the vertex (0-2) Returns Vec3d The position of the specified vertex GetDistanceToOrigin() Signed Distance To Origin. public double GetDistanceToOrigin() Returns double Signed Distance To Origin. GetEdgeArrow(int) Gets the edge vector from vertex i to vertex i+1. public Vec3d GetEdgeArrow(int i) Parameters i int The index of the starting vertex (0, 1, or 2). Returns Vec3d The vector representing the edge. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetLocate() Gets an anchor point on this flat surface. public Vec3d GetLocate() Returns Vec3d A point on the flat surface GetNormal() Gets the normal vector of the flat surface. public Vec3d GetNormal() Returns Vec3d The unit normal vector GetRewind() Creates a new triangle with reversed vertex order and flipped normal public Tri3d GetRewind() Returns Tri3d A new triangle with reversed vertex order GetSegmentsFromPlaneClip(IFlat3d) Gets the line segments resulting from intersecting this triangle with a clipping plane. public IEnumerable GetSegmentsFromPlaneClip(IFlat3d clipPlane) Parameters clipPlane IFlat3d The clipping plane Returns IEnumerable An enumerable of line segments representing the intersection GetTransform(Mat4d) Creates a new triangle by transforming this triangle using the specified matrix. public Tri3d GetTransform(Mat4d mat) Parameters mat Mat4d The transformation matrix. Returns Tri3d A new transformed triangle. GetTranslate(Vec3d) Creates a new triangle by translating this triangle by the specified vector. public Tri3d GetTranslate(Vec3d v) Parameters v Vec3d The translation vector. Returns Tri3d A new translated triangle. GetTriSplition(double[], out Tri3d[], out Tri3d[]) Get triangles splition by pointWeights interpolation. negativeTris or positiveTris are null if no triangles generated. If all pointWeights is 0, no triangle generated. public void GetTriSplition(double[] pointWeights, out Tri3d[] positiveTris, out Tri3d[] negativeTris) Parameters pointWeights double[] weights of points positiveTris Tri3d[] triangles with positive or zero weight negativeTris Tri3d[] triangles with negative or zero weight ReBuildNormal() Rebuilds the normal vector of the triangle based on its vertices. public Vec3d ReBuildNormal() Returns Vec3d The rebuilt normal vector. ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Rewind() Reverses the order of the triangle's vertices, which flips the normal direction public void Rewind() Rotate(Vec3d, double) Rotates the triangle around the specified axis by the given angle. public Tri3d Rotate(Vec3d axis, double rad) Parameters axis Vec3d The axis of rotation. rad double The angle of rotation in radians. Returns Tri3d This triangle after rotation. Set(ITri3d) Sets this triangle's vertices and normal from an ITri3d interface public Tri3d Set(ITri3d t) Parameters t ITri3d The source triangle implementing ITri3d Returns Tri3d This triangle instance Set(ITri3d, Mat4d) Sets this triangle's vertices and normal from an ITri3d interface and transforms them using a matrix public Tri3d Set(ITri3d t, Mat4d mat) Parameters t ITri3d The source triangle implementing ITri3d mat Mat4d The transformation matrix to apply Returns Tri3d This triangle instance Set(Tri3d, bool) Sets this triangle's vertices and normal from another triangle public Tri3d Set(Tri3d t, bool useRef = false) Parameters t Tri3d The source triangle useRef bool If true, references to the source triangle's vertices and normal are used; otherwise, copies are created Returns Tri3d This triangle instance Set(Vec3d, Vec3d, Vec3d) Set value. public Tri3d Set(Vec3d p0, Vec3d p1, Vec3d p2) Parameters p0 Vec3d apex0 p1 Vec3d apex1 p2 Vec3d apex2 Returns Tri3d this Set(Vec3d, Vec3d, Vec3d, Vec3d) Sets the triangle's vertices and normal vector public Tri3d Set(Vec3d p0, Vec3d p1, Vec3d p2, Vec3d n) Parameters p0 Vec3d First vertex p1 Vec3d Second vertex p2 Vec3d Third vertex n Vec3d Normal vector Returns Tri3d This triangle instance SetOrderForward(int) Reorders the triangle's vertices to make the specified vertex the first one public void SetOrderForward(int index) Parameters index int The index of the vertex to make first (0, 1, or 2) ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Transform(Mat4d) Transforms the triangle using the specified transformation matrix. public Tri3d Transform(Mat4d mat) Parameters mat Mat4d The transformation matrix. Returns Tri3d This triangle after transformation. Translate(Vec3d) Translates the triangle by the specified vector. public Tri3d Translate(Vec3d v) Parameters v Vec3d The translation vector. Returns Tri3d This triangle after translation. Translate(double, double, double) Translates the triangle by the specified x, y, and z coordinates. public Tri3d Translate(double x, double y, double z) Parameters x double The x-coordinate of the translation. y double The y-coordinate of the translation. z double The z-coordinate of the translation. Returns Tri3d This triangle after translation. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Geom.Tri3dUtil.html": { "href": "api/Hi.Geom.Tri3dUtil.html", "title": "Class Tri3dUtil | HiAPI-C# 2025", "summary": "Class Tri3dUtil Namespace Hi.Geom Assembly HiGeom.dll Utility of Tri3d. Include generator of triangles from points. public static class Tri3dUtil Inheritance object Tri3dUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GenTrisByAlignedLists(IList, IList, IList) public static void GenTrisByAlignedLists(IList ps, IList rrps, IList dst) Parameters ps IList rrps IList dst IList GenTrisByAlignedLoops(IList, IList, IList) Generates triangles between two aligned loops of points. public static void GenTrisByAlignedLoops(IList ps, IList rrps, IList dst) Parameters ps IList First loop of points rrps IList Second loop of points dst IList The collection to add the generated triangles to GenTrisByFan(IEnumerable, Vec3d) Generates triangles in a fan pattern from a sequence of points. public static IEnumerable GenTrisByFan(this IEnumerable ps, Vec3d faceNormal = null) Parameters ps IEnumerable The sequence of points faceNormal Vec3d Optional face normal for the triangles Returns IEnumerable An enumerable of triangles forming a fan GenTrisByNumAlignment(List, List, IList) Generates triangles between two lists of points with different numbers of points. public static void GenTrisByNumAlignment(List psA, List psB, IList dst) Parameters psA List First list of points psB List Second list of points dst IList The collection to add the generated triangles to GenTrisByQuad(Vec3d, Vec3d, Vec3d, Vec3d, IList) Generates two triangles from a quadrilateral defined by four points. public static void GenTrisByQuad(Vec3d p0, Vec3d p1, Vec3d p2, Vec3d p3, IList dst) Parameters p0 Vec3d First point of the quadrilateral p1 Vec3d Second point of the quadrilateral p2 Vec3d Third point of the quadrilateral p3 Vec3d Fourth point of the quadrilateral dst IList The collection to add the generated triangles to GenTrisByStar(Vec3d, IList, IList) Generates triangles in a star pattern from a center point to a list of points. public static void GenTrisByStar(Vec3d starP, IList ps, IList dst) Parameters starP Vec3d The center point of the star ps IList The list of points forming the perimeter dst IList The collection to add the generated triangles to GenTrisByStar(IList, Vec3d, IList) Generates triangles in a star pattern from a list of points to a center point. public static void GenTrisByStar(IList ps, Vec3d starP, IList dst) Parameters ps IList The list of points forming the perimeter starP Vec3d The center point of the star dst IList The collection to add the generated triangles to GetSegmentsFromPlaneClip(IEnumerable, IFlat3d) Gets line segments resulting from intersecting triangles with a clipping plane. public static List GetSegmentsFromPlaneClip(this IEnumerable tris, IFlat3d clipPlane) Parameters tris IEnumerable The collection of triangles to clip clipPlane IFlat3d The clipping plane Returns List A list of line segments representing the intersection" }, "api/Hi.Geom.UnitUtils.PhysicsUnit.html": { "href": "api/Hi.Geom.UnitUtils.PhysicsUnit.html", "title": "Enum PhysicsUnit | HiAPI-C# 2025", "summary": "Enum PhysicsUnit Namespace Hi.Geom.UnitUtils Assembly HiMech.dll Represents physical units used in the system. [Flags] public enum PhysicsUnit Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) UnitConvertUtil.ToUnitString(PhysicsUnit) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields [StringValue(\"oC\")] C = mm3 | kJ Represents degrees Celsius (temperature measurement). [StringValue(\"J\")] J = deg | MPa Represents Joules (energy measurement). [StringValue(\"oK\")] K = deg | C Represents Kelvin (temperature measurement). [StringValue(\"MPa\")] MPa = sec | N Represents Megapascals (pressure measurement). [StringValue(\"N\")] N = mm3 | rpm Represents Newtons (force measurement). [StringValue(\"Nm\")] Nm = deg | N Represents Newton-meters (torque measurement). [StringValue(null)] None = 0 Represents no unit. [StringValue(\"deg\")] deg = 1 Represents degrees (angular measurement). [StringValue(\"g\")] g = sec | rpm Represents grams (mass measurement). [StringValue(\"kJ\")] kJ = 16 Represents kilojoules (energy measurement). [StringValue(\"kW\")] kW = deg | watt Represents kilowatts (power measurement). [StringValue(\"kWh\")] kWh = deg | kJ Represents kilowatt-hours (energy measurement). [StringValue(\"mg\")] mg = deg | g Represents milligrams (mass measurement). [StringValue(\"mm\")] mm = deg | sec Represents millimeters (length measurement). [StringValue(\"mm3\")] mm3 = 4 Represents cubic millimeters (volume measurement). [StringValue(\"mm3/s\")] mm3ds = deg | rpm Represents cubic millimeters per second (volume flow rate measurement). [StringValue(\"mm/min\")] mmdmin = deg | mmds Represents millimeters per minute (feed rate measurement). [StringValue(\"mm/s\")] mmds = sec | mm3 Represents millimeters per second (velocity measurement). [StringValue(\"rpm\")] rpm = 8 Represents revolutions per minute (rotational speed measurement). [StringValue(\"sec\")] sec = 2 Represents seconds (time measurement). [StringValue(\"um\")] um = deg | mm3 Represents micrometers (length measurement). [StringValue(\"watt\")] watt = sec | kJ Represents watts (power measurement)." }, "api/Hi.Geom.UnitUtils.StringValueAttribute.html": { "href": "api/Hi.Geom.UnitUtils.StringValueAttribute.html", "title": "Class StringValueAttribute | HiAPI-C# 2025", "summary": "Class StringValueAttribute Namespace Hi.Geom.UnitUtils Assembly HiMech.dll Attribute for associating a string value with an enum value or other element. public class StringValueAttribute : Attribute Inheritance object Attribute StringValueAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) 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 StringValueAttribute(string) Initializes a new instance of the StringValueAttribute class with the specified value. public StringValueAttribute(string value) Parameters value string The string value to associate with the element. Properties Value Gets or sets the string value associated with the element. public string Value { get; set; } Property Value string" }, "api/Hi.Geom.UnitUtils.UnitConvertUtil.html": { "href": "api/Hi.Geom.UnitUtils.UnitConvertUtil.html", "title": "Class UnitConvertUtil | HiAPI-C# 2025", "summary": "Class UnitConvertUtil Namespace Hi.Geom.UnitUtils Assembly HiMech.dll Provides utility methods for converting between different physical units and their string representations. public static class UnitConvertUtil Inheritance object UnitConvertUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ToUnitString(PhysicsUnit) Converts a PhysicsUnit enum value to its string representation. public static string ToUnitString(this PhysicsUnit src) Parameters src PhysicsUnit The PhysicsUnit value to convert. Returns string The string representation of the unit, or the enum value's name if no string value is defined." }, "api/Hi.Geom.UnitUtils.html": { "href": "api/Hi.Geom.UnitUtils.html", "title": "Namespace Hi.Geom.UnitUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Geom.UnitUtils Classes StringValueAttribute Attribute for associating a string value with an enum value or other element. UnitConvertUtil Provides utility methods for converting between different physical units and their string representations. Enums PhysicsUnit Represents physical units used in the system." }, "api/Hi.Geom.Vec2d.html": { "href": "api/Hi.Geom.Vec2d.html", "title": "Class Vec2d | HiAPI-C# 2025", "summary": "Class Vec2d Namespace Hi.Geom Assembly HiGeom.dll Basic 2D point (or vector). public class Vec2d : IExpandToBox2d, IEquatable, ICsvRowIo, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IDivisionOperators, IVec, IFormattable Inheritance object Vec2d Implements IExpandToBox2d IEquatable ICsvRowIo IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IDivisionOperators IVec IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Vec2d() Default constructor. Creates a vector with coordinates (0,0). public Vec2d() Vec2d(Vec2d) Copy ctor. public Vec2d(Vec2d src) Parameters src Vec2d src Vec2d(Vec2i) Creates a vector from Vec2i by converting integer coordinates to double. public Vec2d(Vec2i src) Parameters src Vec2i Source Vec2i vector with integer coordinates Vec2d(vec2d) ctor. public Vec2d(vec2d src) Parameters src vec2d src Vec2d(double, double) Ctor. public Vec2d(double x, double y) Parameters x double x y double y Vec2d(Func) Ctor using a function that maps direction index to value. public Vec2d(Func dirToValueFunc) Parameters dirToValueFunc Func Function that maps direction index to value Vec2d(BinaryReader) Ctor by bytes: x = reader.ReadDouble(); y = reader.ReadDouble(); public Vec2d(BinaryReader reader) Parameters reader BinaryReader reader Vec2d(int, double, double) Ctor by direction offset. Direction 0,1 indicate x,y respectively. public Vec2d(int dir, double a, double b) Parameters dir int direction offset a double value at direction (0+dir)%2 b double value at direction (1+dir)%2 Vec2d(string) Ctor by string. The format is (x,y). public Vec2d(string src) Parameters src string src Fields x Value at x direction. public double x Field Value double y Value at y direction. public double y Field Value double Properties AbsSum Sum of abs(x) and abs(y). public double AbsSum { get; } Property Value double AllOne Generate vec (1,1). public static Vec2d AllOne { get; } Property Value Vec2d (1,1) AmpPhase Create AmpPhase instance. public AmpPhase AmpPhase { get; } Property Value AmpPhase Angle_deg Angle in degree between vec(x,y) and vec(1,0). public double Angle_deg { get; } Property Value double Angle_rad Angle in radian between vec(x,y) and vec(1,0). public double Angle_rad { get; } Property Value double CsvText Csv text. public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. public string CsvTitleText { get; } Property Value string IsAllFinite public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN public bool IsAllNaN { get; } Property Value bool is x,y all NaN. IsAllNegativeInfinity public bool IsAllNegativeInfinity { get; } Property Value bool is x,y all NegativeInfinity. IsAllPositiveInfinity public bool IsAllPositiveInfinity { get; } Property Value bool is x,y all PositiveInfinity. IsAnyFinite public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y finite. IsAnyNaN Is any member nan. public bool IsAnyNaN { get; } Property Value bool IsZero public bool IsZero { get; } Property Value bool Is zero vector. Which is x == 0 && y == 0. this[int] Gets or sets the element at the specified index. public double this[int dir] { get; set; } Parameters dir int Property Value double The element at the specified index. Length Length. public double Length { get; } Property Value double LengthSquare Length square. public double LengthSquare { get; } Property Value double MaxAbsDir Get the direction of the max absolute value. public int MaxAbsDir { get; } Property Value int MaxDir Get the direction of the max value. public int MaxDir { get; } Property Value int MaxValue Get max value from {x,y}. public double MaxValue { get; } Property Value double MinDir Get the direction index with minimum value. If {x,y} is the smallest, return {0,1}. public int MinDir { get; } Property Value int MinValue Get min value from {x,y}. public double MinValue { get; } Property Value double NaN Generate NAN vec. public static Vec2d NaN { get; } Property Value Vec2d (nan,nan) NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 2. NegativeInfinity Generate negative infinity vec. public static Vec2d NegativeInfinity { get; } Property Value Vec2d (-inf,-inf) PositiveInfinity Generate positive infinity vec. public static Vec2d PositiveInfinity { get; } Property Value Vec2d (inf,inf) Rank Dimension (i.e. Size) of the Vector. public int Rank { get; } Property Value int UnitX Generate vec (1,0). public static Vec2d UnitX { get; } Property Value Vec2d (1,0) UnitY Generate vec (0,1). public static Vec2d UnitY { get; } Property Value Vec2d (0,1) X Gets or sets the X coordinate value. public double X { get; set; } Property Value double Y Gets or sets the Y coordinate value. public double Y { get; set; } Property Value double Zero Generate vec (0,0). public static Vec2d Zero { get; } Property Value Vec2d (0,0) Methods All(double) Generate Vec2d with all components set to the given value. public static Vec2d All(double v) Parameters v double Returns Vec2d At(int) Member at direction. public ref double At(int dir) Parameters dir int direction Returns double member Cross(Vec2d) Cross. public double Cross(Vec2d src) Parameters src Vec2d src Returns double cross value Dot(Vec2d) Dot. public double Dot(Vec2d src) Parameters src Vec2d src Returns double dotted value Equals(Vec2d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Vec2d other) Parameters other Vec2d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(Vec2d, double) check equals for each component with tolerance. public bool Equals(Vec2d other, double toleranceForEachComponent) Parameters other Vec2d other vec toleranceForEachComponent double tolerance for each component Returns bool check equals for each component with tolerance. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ExpandMax(Vec2d) Find and expand maximum values from src. public void ExpandMax(Vec2d src) Parameters src Vec2d src ExpandMin(Vec2d) Find and expand minimum values from src. public void ExpandMin(Vec2d src) Parameters src Vec2d src ExpandToBox2d(Box2d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox2d(Box2d dst) Parameters dst Box2d Destination box GenNaN() Generate NAN vec. public static Vec2d GenNaN() Returns Vec2d (nan,nan) GenNegativeInfinity() Generate negative infinity vec. public static Vec2d GenNegativeInfinity() Returns Vec2d (-inf,-inf) GenOne() Generate vec (1,1). public static Vec2d GenOne() Returns Vec2d (1,1) GenPositiveInfinity() Generate positive infinity vec. public static Vec2d GenPositiveInfinity() Returns Vec2d (inf,inf) GenUnitX() Generate vec (1,0). public static Vec2d GenUnitX() Returns Vec2d (1,0) GenUnitY() Generate vec (0,1). public static Vec2d GenUnitY() Returns Vec2d (0,1) GenZero() Generate vec (0,0). public static Vec2d GenZero() Returns Vec2d (0,0) GetCosSquareWith(Vec2d) Get Cos(theta)^2. theta is the angle between this and src. This function is faster than GetCosWith(Vec2d) since it lacks one square root operation. public double GetCosSquareWith(Vec2d src) Parameters src Vec2d one of edge vector Returns double Cos(theta)^2 GetCosWith(Vec2d) Get cos(angle). The angle is between v and this. public double GetCosWith(Vec2d v) Parameters v Vec2d v Returns double cos(angle) GetCsvText(string) Get CSV text with specified format. public string GetCsvText(string format) Parameters format string Format string for each component Returns string CSV formatted string GetEachValueAbs() Get a new vector with each value set to its absolute value. public Vec2d GetEachValueAbs() Returns Vec2d A new vector with absolute values GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetMulEach(Vec2d) Get a new vector with each component multiplied with the corresponding component of the given vector. public Vec2d GetMulEach(Vec2d vec) Parameters vec Vec2d The vector to multiply with Returns Vec2d A new vector with multiplied components GetNormalized() Generate normalized vec. public Vec2d GetNormalized() Returns Vec2d Normalized vec GetRadian(Vec2d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. public double GetRadian(Vec2d v) Parameters v Vec2d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetTransform(Func) Get the new Vec2d by transforming each element by the function. public Vec2d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Vec2d Interpolate(Vec2d, Vec2d, double) Linear interpolate between a and b. public static Vec2d Interpolate(Vec2d a, Vec2d b, double alpha) Parameters a Vec2d a b Vec2d b alpha double ratio Returns Vec2d interpolation IsNormalized(double) Check if this vector is normalized. public bool IsNormalized(double toleranceSquare = 1E-07) Parameters toleranceSquare double Tolerance for checking if length squared is 1 Returns bool True if the vector is normalized MulEach(Vec2d) Multiply each component with the corresponding component of the given vector. public Vec2d MulEach(Vec2d vec) Parameters vec Vec2d The vector to multiply with Returns Vec2d this Normalize() Normalize. public Vec2d Normalize() Returns Vec2d this Set(Vec2d) Set values by copy. public Vec2d Set(Vec2d src) Parameters src Vec2d src Returns Vec2d this Set(vec2d) Set values by copy. public Vec2d Set(vec2d src) Parameters src vec2d src Returns Vec2d this Set(double, double) Set values. public Vec2d Set(double x, double y) Parameters x double x y double y Returns Vec2d this Set(double[]) Set values by array. public Vec2d Set(double[] xy) Parameters xy double[] double[]{x,y} Returns Vec2d this Set(Func) Set values using a function that maps direction index and current value to new value. public Vec2d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that maps direction index and current value to new value Returns Vec2d this Set(Func) Set values using a function that maps direction index to value. public Vec2d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that maps direction index to value Returns Vec2d this Set(int, double, double) Set values by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec2d Set(int dir, double a, double b) Parameters dir int direction offset a double value at direction (0+dir)%2 b double value at direction (1+dir)%2 Returns Vec2d this SetEachNanToZero() Set NaN to 0 for each value. public Vec2d SetEachNanToZero() Returns Vec2d this SetEachValueAbs() Set all member to absolute value. public Vec2d SetEachValueAbs() Returns Vec2d this ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string) To string with format: (x,y) public string ToString(string format) Parameters format string Format string for the double values Returns string Formatted string representation of the vector ToString(string, IFormatProvider) Returns a string representation of the vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the vector ToString(string, int) Format the vector with padding. public string ToString(string format, int leftPadding) Parameters format string Format string for each component leftPadding int Left padding for each component Returns string Formatted string Transform(Func) Transform each element by the function. public Vec2d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Vec2d WriteBin(BinaryWriter) Output to bytes: writer.Write(x); writer.Write(y); public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer Operators operator +(Vec2d, Vec2d) Plus. public static Vec2d operator +(Vec2d left, Vec2d right) Parameters left Vec2d a right Vec2d b Returns Vec2d a+b operator /(Vec2d, double) a/d. public static Vec2d operator /(Vec2d a, double d) Parameters a Vec2d a d double d Returns Vec2d a/d operator ==(Vec2d, Vec2d) Equality operator for comparing two Vec2d objects. public static bool operator ==(Vec2d left, Vec2d right) Parameters left Vec2d Left operand right Vec2d Right operand Returns bool True if the vectors are equal, false otherwise operator !=(Vec2d, Vec2d) Inequality operator for comparing two Vec2d objects. public static bool operator !=(Vec2d left, Vec2d right) Parameters left Vec2d Left operand right Vec2d Right operand Returns bool True if the vectors are not equal, false otherwise operator *(Vec2d, double) a*s. public static Vec2d operator *(Vec2d a, double s) Parameters a Vec2d a s double s Returns Vec2d a*s operator -(Vec2d, Vec2d) a-b. public static Vec2d operator -(Vec2d a, Vec2d b) Parameters a Vec2d a b Vec2d b Returns Vec2d a-b operator -(Vec2d) Negate. public static Vec2d operator -(Vec2d src) Parameters src Vec2d src Returns Vec2d Negate" }, "api/Hi.Geom.Vec2i.html": { "href": "api/Hi.Geom.Vec2i.html", "title": "Class Vec2i | HiAPI-C# 2025", "summary": "Class Vec2i Namespace Hi.Geom Assembly HiGeom.dll Basic 2D point (or vector). public class Vec2i : IEquatable, IFormattable Inheritance object Vec2i Implements IEquatable IFormattable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Vec2i(Vec2i) Copy ctor. public Vec2i(Vec2i src) Parameters src Vec2i src Vec2i(BinaryReader) Ctor by bytes: x = reader.ReadDouble(); y = reader.ReadDouble(); public Vec2i(BinaryReader reader) Parameters reader BinaryReader reader Vec2i(int, int) Ctor. public Vec2i(int x = 0, int y = 0) Parameters x int x y int y Vec2i(int, int, int) Ctor by direction offset. Direction 0,1 indicate x,y respectively. public Vec2i(int dir, int a, int b) Parameters dir int direction offset a int value at direction (0+dir)%3 b int value at direction (1+dir)%3 Vec2i(string) Ctor by string. The format is (x,y). public Vec2i(string src) Parameters src string src Fields x Value at x direction. public int x Field Value int y Value at y direction. public int y Field Value int Properties AbsSum Sum of abs(x) and abs(y). public int AbsSum { get; } Property Value int LengthSquare Length square. public int LengthSquare { get; } Property Value int Max Get max value from {x,y}. public int Max { get; } Property Value int MaxAbsDir Get the direction of the max absolute value. public int MaxAbsDir { get; } Property Value int MaxDir Get the direction of the max value. public int MaxDir { get; } Property Value int Min Get min value from {x,y}. public int Min { get; } Property Value int NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(int) * 2. One Generate vec (1,1). public static Vec2i One { get; } Property Value Vec2i (1,1) UnitX Generate vec (1,0). public static Vec2i UnitX { get; } Property Value Vec2i (1,0) UnitY Generate vec (0,1). public static Vec2i UnitY { get; } Property Value Vec2i (0,1) Zero Generate vec (0,0). public static Vec2i Zero { get; } Property Value Vec2i (0,0) Methods At(int) Member at direction. public ref int At(int dir) Parameters dir int direction Returns int member Cross(Vec2i) Cross. public int Cross(Vec2i src) Parameters src Vec2i src Returns int cross value Dot(Vec2i) Dot. public int Dot(Vec2i src) Parameters src Vec2i src Returns int dotted value Equals(Vec2i) Indicates whether the current object is equal to another object of the same type. public bool Equals(Vec2i other) Parameters other Vec2i An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GenOne() Generate vec (1,1). public static Vec2i GenOne() Returns Vec2i (1,1) GenUnitX() Generate vec (1,0). public static Vec2i GenUnitX() Returns Vec2i (1,0) GenUnitY() Generate vec (0,1). public static Vec2i GenUnitY() Returns Vec2i (0,1) GenZero() Generate vec (0,0). public static Vec2i GenZero() Returns Vec2i (0,0) GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. Output(BinaryWriter) Output to bytes: writer.Write(x); writer.Write(y); public void Output(BinaryWriter writer) Parameters writer BinaryWriter writer Set(Vec2i) Set values by copy. public Vec2i Set(Vec2i src) Parameters src Vec2i src Returns Vec2i this Set(int, int) Set values. public Vec2i Set(int x, int y) Parameters x int x y int y Returns Vec2i this Set(int, int, int) Set values by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec2i Set(int dir, int a, int b) Parameters dir int direction offset a int value at direction (0+dir)%3 b int value at direction (1+dir)%3 Returns Vec2i this Set(int[]) Set values by array. public Vec2i Set(int[] xy) Parameters xy int[] int[]{x,y} Returns Vec2i this SetEachValueAbs() Set all member to absolute value. public Vec2i SetEachValueAbs() Returns Vec2i this ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToString(string, IFormatProvider) Returns a string representation of the vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the vector Operators operator +(Vec2i, Vec2i) Plus. public static Vec2i operator +(Vec2i a, Vec2i b) Parameters a Vec2i a b Vec2i b Returns Vec2i a+b operator /(Vec2i, int) a/d. public static Vec2i operator /(Vec2i a, int d) Parameters a Vec2i a d int d Returns Vec2i a/d operator *(Vec2i, int) a*s. public static Vec2i operator *(Vec2i a, int s) Parameters a Vec2i a s int s Returns Vec2i a*s operator -(Vec2i, Vec2i) a-b. public static Vec2i operator -(Vec2i a, Vec2i b) Parameters a Vec2i a b Vec2i b Returns Vec2i a-b operator -(Vec2i) Negate. public static Vec2i operator -(Vec2i src) Parameters src Vec2i src Returns Vec2i Negate" }, "api/Hi.Geom.Vec3d.html": { "href": "api/Hi.Geom.Vec3d.html", "title": "Class Vec3d | HiAPI-C# 2025", "summary": "Class Vec3d Namespace Hi.Geom Assembly HiGeom.dll Basic 3D point (or vector). public class Vec3d : IEquatable, IExpandToBox3d, IBinaryIo, IWriteBin, ICsvRowIo, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IMultiplyOperators, IDivisionOperators, IVec, IFormattable, IToPresentDto Inheritance object Vec3d Implements IEquatable IExpandToBox3d IBinaryIo IWriteBin ICsvRowIo IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IMultiplyOperators IDivisionOperators IVec IFormattable IToPresentDto Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) 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 Vec3d() Ctor. public Vec3d() Vec3d(Polar3d) Ctor. public Vec3d(Polar3d src) Parameters src Polar3d src Vec3d(Vec2d, double) Initializes a new instance of the Vec3d class from a 2D vector and z coordinate. public Vec3d(Vec2d xy, double z) Parameters xy Vec2d The 2D vector providing x and y coordinates. z double The z coordinate. Vec3d(Vec3d) Copy ctor. public Vec3d(Vec3d src) Parameters src Vec3d src Vec3d(vec3d) ctor. public Vec3d(vec3d src) Parameters src vec3d src Vec3d(vec3f) ctor. public Vec3d(vec3f src) Parameters src vec3f src Vec3d(IEnumerable) Creates a vector from an enumerable collection of three double values. public Vec3d(IEnumerable src) Parameters src IEnumerable Source collection containing three double values Vec3d(double, double, double) Ctor. public Vec3d(double x, double y, double z) Parameters x double x y double y z double z Vec3d(Func) Creates a vector using a function that maps direction index to value. public Vec3d(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Vec3d(BinaryReader) Ctor by bytes: x = reader.ReadDouble(); y = reader.ReadDouble(); z = reader.ReadDouble(); public Vec3d(BinaryReader reader) Parameters reader BinaryReader reader Vec3d(int, double, double, double) Ctor by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Vec3d(string) Ctor by string. The format is (x,y,z). public Vec3d(string src) Parameters src string src Vec3d((double, double, double)) Ctor. public Vec3d((double, double, double) src) Parameters src (double, double, double) src Fields x Value at x direction. public double x Field Value double y Value at y direction. public double y Field Value double z Value at z direction. public double z Field Value double Properties AbsSum public double AbsSum { get; } Property Value double Sum of the abs {x,y,z}. Which is Math.Abs(x) + Math.Abs(y) + Math.Abs(z). AllOne public static Vec3d AllOne { get; } Property Value Vec3d Generate Vec3d(1, 1, 1). CsvText Csv text. public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. public string CsvTitleText { get; } Property Value string ElementNum Element number: 3 for (x,y,z). public static int ElementNum { get; } Property Value int IsAllFinite public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN public bool IsAllNaN { get; } Property Value bool is x,y,z all NaN. IsAllNegativeInfinity public bool IsAllNegativeInfinity { get; } Property Value bool is x,y,z all NegativeInfinity. IsAllPositiveInfinity public bool IsAllPositiveInfinity { get; } Property Value bool is x,y,z all PositiveInfinity. IsAnyFinite public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y,z finite. IsAnyNaN public bool IsAnyNaN { get; } Property Value bool Is any of {x,y,z} NaN. IsZero public bool IsZero { get; } Property Value bool Is zero vector. Which is x == 0 && y == 0 && z == 0. this[int] Gets or sets the element at the specified index. public double this[int dir] { get; set; } Parameters dir int Property Value double The element at the specified index. Length public double Length { get; } Property Value double Geometry length of this. LengthSquare public double LengthSquare { get; } Property Value double Geometry length ^ 2. Which is x * x + y * y + z * z. MaxAbsDir public int MaxAbsDir { get; } Property Value int Get the direction index with maximum absolute value. If the absolute of {x,y,z} is the biggest, return {0,1,2}. MaxDir public int MaxDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MaxValue public double MaxValue { get; } Property Value double The max value selected from {x,y,z}. Which is Math.Max(Math.Max(x, y), z). MinDir public int MinDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MinValue public double MinValue { get; } Property Value double The min value selected from {x,y,z}. Which is Math.Min(Math.Min(x, y), z). NaN public static Vec3d NaN { get; } Property Value Vec3d Generate Vec3d(double.NaN, double.NaN, double.NaN). NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NegativeInfinity public static Vec3d NegativeInfinity { get; } Property Value Vec3d Generate Vec3d(double.NegativeInfinity, double.NegativeInfinity, double.NegativeInfinity) PositiveInfinity public static Vec3d PositiveInfinity { get; } Property Value Vec3d Generate Vec3d(double.PositiveInfinity, double.PositiveInfinity, double.PositiveInfinity) Rank Dimension (i.e. Size) of the Vector. public int Rank { get; } Property Value int Text Gets or sets the vector as a string representation. public string Text { get; set; } Property Value string UnitX public static Vec3d UnitX { get; } Property Value Vec3d Generate Vec3d(1, 0, 0). UnitY public static Vec3d UnitY { get; } Property Value Vec3d Generate Vec3d(0, 1, 0). UnitZ public static Vec3d UnitZ { get; } Property Value Vec3d Generate Vec3d(0, 0, 1). X Value at x direction. public double X { get; set; } Property Value double XY Vec2d of X and Y. The getter gets a copied object. public Vec2d XY { get; set; } Property Value Vec2d Y Value at y direction. public double Y { get; set; } Property Value double Z Value at z direction. public double Z { get; set; } Property Value double Zero public static Vec3d Zero { get; } Property Value Vec3d Generate Vec3d(0, 0, 0). Methods All(double) Creates a vector with all components set to the specified value. public static Vec3d All(double v) Parameters v double Value to set for all components Returns Vec3d A new vector with all components set to the specified value At(int) Get the value at the dirction. Direction 0,1,2 are x,y,z. If direction index is larger than 2, the return value is at z direction. public ref double At(int dir) Parameters dir int direction index Returns double value at the direction BilinearInterpolate(Vec3d, Vec3d, Vec3d, Vec3d, double, double) Performs bilinear interpolation between four points. public static Vec3d BilinearInterpolate(Vec3d p00, Vec3d p01, Vec3d p10, Vec3d p11, double u, double v) Parameters p00 Vec3d Point at (0,0) p01 Vec3d Point at (0,1) p10 Vec3d Point at (1,0) p11 Vec3d Point at (1,1) u double Interpolation parameter in first dimension (0.0 to 1.0) v double Interpolation parameter in second dimension (0.0 to 1.0) Returns Vec3d The interpolated point Cross(Vec3d, Vec3d) Get a cross b. public static Vec3d Cross(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d a x b Dot(Vec3d) this dot src. public double Dot(Vec3d src) Parameters src Vec3d src Returns double dotted value Enumerate() Enumerates the components of the vector. public IEnumerable Enumerate() Returns IEnumerable An enumerable sequence of the vector's components (X, Y, Z) Equals(Vec3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Vec3d other) Parameters other Vec3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(Vec3d, double) check equals for each component with tolerance. public bool Equals(Vec3d other, double toleranceForEachComponent) Parameters other Vec3d other vec toleranceForEachComponent double tolerance for each component Returns bool check equals for each component with tolerance. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ExpandMax(Vec3d) Find and expand maximum values from src. public void ExpandMax(Vec3d src) Parameters src Vec3d src ExpandMin(Vec3d) Find and expand minimum values from src. public void ExpandMin(Vec3d src) Parameters src Vec3d src 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 GetCosSquareWith(Vec3d) Get Cos(theta)^2. theta is the angle between this and src. This function is faster than GetCosWith(Vec3d) since it lacks one square root operation. public double GetCosSquareWith(Vec3d src) Parameters src Vec3d one of edge vector Returns double Cos(theta)^2 GetCosWith(Vec3d) Get Cos(theta). theta is the angle between this and v. public double GetCosWith(Vec3d v) Parameters v Vec3d a vector Returns double Cos(theta) GetCross(Vec3d) Get this cross src. public Vec3d GetCross(Vec3d src) Parameters src Vec3d src Returns Vec3d GetCsvText(string) Gets the CSV text representation of this vector with the specified format. public string GetCsvText(string format) Parameters format string Format string for the double values Returns string CSV formatted string GetEachValueAbs() Creates a new vector with the absolute value of each component. public Vec3d GetEachValueAbs() Returns Vec3d A new vector with absolute values of each component GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetMulEach(Vec3d) Creates a new vector by multiplying each component of this vector with the corresponding component of another vector. public Vec3d GetMulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d A new vector with component-wise multiplication results GetMulWithoutTrans(Mat4d) Get a new object by this*mat without translation part. public Vec3d GetMulWithoutTrans(Mat4d mat) Parameters mat Mat4d transform matrix Returns Vec3d new Vec3d(x * mat.At(0, 0) + y * mat.At(1, 0) + z * mat.At(2, 0) , x* mat.At(0, 1) + y* mat.At(1, 1) + z* mat.At(2, 1) , x* mat.At(0, 2) + y* mat.At(1, 2) + z* mat.At(2, 2)) GetNormalized() Generate normalized vec. public Vec3d GetNormalized() Returns Vec3d Normalized vec GetRadian(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. public double GetRadian(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetRadian(Vec3d, Vec3d) Get angle between this and v. This function applies normal vector to determine the sign of angle. This vector is not required to be an unit vector. public double GetRadian(Vec3d v, Vec3d n) Parameters v Vec3d vector of ending edge. Not required to be an unit vector. n Vec3d normal vector. Not required to be an unit vector. Returns double angle in radian GetRadianByUnitVector(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. Both this and v should be unit vector. Much efficient than GetRadian(Vec3d). public double GetRadianByUnitVector(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetTransform(Func) Get the new Vec3d by transforming each element by the function. public Vec3d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d GetVec2dByPlaneDir(int) Gets a 2D vector by projecting the 3D vector onto a plane. public Vec2d GetVec2dByPlaneDir(int dir) Parameters dir int Direction index: 0 for YZ plane, 1 for ZX plane, 2 for XY plane Returns Vec2d A 2D vector representing the projection GetXRotation(double) Get rotated Vec3d along x direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetXRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetYRotation(double) Get rotated Vec3d along y direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetYRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetZRotation(double) Get rotated Vec3d along z direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetZRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d Interpolate(Vec3d, Vec3d, double) Interpolate from a to b with ratio alpha:(1-alpha). public static Vec3d Interpolate(Vec3d a, Vec3d b, double alpha) Parameters a Vec3d a b Vec3d b alpha double ratio Returns Vec3d a * (1 - alpha) + b * alpha IsNormalized(double) Checks if the vector is normalized (has a length of approximately 1). public bool IsNormalized(double toleranceSquare = 1E-07) Parameters toleranceSquare double Square of the tolerance value for comparing with 1 (default: 1e-7) Returns bool True if the vector is normalized within the specified tolerance MulEach(Vec3d) Multiplies each component of this vector with the corresponding component of another vector. public Vec3d MulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d This vector after multiplication MulWithoutTrans(Mat4d) this*=mat without translation part. public Vec3d MulWithoutTrans(Mat4d mat) Parameters mat Mat4d transformation matrix Returns Vec3d this See Also GetMulWithoutTrans(Mat4d) Normalize() Normalize this. public Vec3d Normalize() Returns Vec3d this Parse(string) If src is not null and not empty string, return Vec3d(string); otherwise return null. public static Vec3d Parse(string src) Parameters src string src Returns Vec3d parsed Vec3d ParseByCsv(string) Parses a vector from a CSV text string. public static Vec3d ParseByCsv(string csvText) Parameters csvText string CSV formatted string containing vector components Returns Vec3d A new vector parsed from the CSV text ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Set(Vec3d) Set values by copy. public Vec3d Set(Vec3d src) Parameters src Vec3d src Returns Vec3d this Set(vec3d) Set values by copy. public Vec3d Set(vec3d src) Parameters src vec3d src Returns Vec3d this Set(double, double, double) Set values. public Vec3d Set(double x, double y, double z) Parameters x double x y double y z double z Returns Vec3d this Set(double[]) Set values by array. public Vec3d Set(double[] xyz) Parameters xyz double[] double[]{x,y,z} Returns Vec3d this Set(Func) Sets vector components using a function that maps direction index and current value to new value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and current value, and returns the new value Returns Vec3d This vector after modification Set(Func) Sets vector components using a function that maps direction index to value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Returns Vec3d This vector after modification Set(int, double, double, double) Set values by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d Set(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Returns Vec3d this SetEachNanToZero() Set NaN to 0 for each value. public Vec3d SetEachNanToZero() Returns Vec3d this SetEachValueAbs() Set each value to absolute. public Vec3d SetEachValueAbs() Returns Vec3d this ToArray() return new double[] { x, y, z } public double[] ToArray() Returns double[] { x, y, z } ToBuf(double[]) Set x,y,z to the dst array. public void ToBuf(double[] dst) Parameters dst double[] dst ToBuf(double[], ref int) Set x,y,z to the dst array from postion p and increase p by the pushed number. public int ToBuf(double[] dst, ref int p) Parameters dst double[] dst p int position from dst Returns int Which is pushed number of double ToPresentDto() Convert Vec3d to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, x, y, z keys ToString() To representative string with format:(x,y,z). public override string ToString() Returns string Representative string ToString(string) To string with format: (x,y,z) public string ToString(string format) Parameters format string format of ToString(string) Returns string Representative string ToString(string, IFormatProvider) Returns a string representation of the vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the vector ToString(string, int) Converts the vector to a string with the specified format and left padding. public string ToString(string format, int leftPadding) Parameters format string Format string for the double values leftPadding int Number of characters to pad on the left of each value Returns string Formatted string representation of the vector Transform(Func) Transform each element by the function. public Vec3d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d TryParse(string, out Vec3d) Attempts to parse a string into a Vec3d. public static bool TryParse(string src, out Vec3d dst) Parameters src string The string to parse in format “(x,y,z)” dst Vec3d When this method returns, contains the Vec3d value if parsing succeeded, or null if parsing failed Returns bool true if parsing succeeded; otherwise, false TryParseLoose(string, out Vec3d) Attempts to parse a string into a Vec3d using a loose format. Accepts various delimiters (comma, semicolon, space) and removes brackets/parentheses. public static bool TryParseLoose(string text, out Vec3d dst) Parameters text string The string to parse. Can contain brackets, parentheses, or other delimiters. dst Vec3d When this method returns, contains the parsed Vec3d if successful, or Vec3d.NaN if parsing failed. Returns bool True if parsing was successful; otherwise, false. WriteBin(BinaryWriter) Output to bytes: writer.Write(x); writer.Write(y); writer.Write(z); public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer Operators operator +(Vec3d, Vec3d) Plus. public static Vec3d operator +(Vec3d left, Vec3d right) Parameters left Vec3d a right Vec3d b Returns Vec3d new Vec3d(a.x + b.x, a.y + b.y, a.z + b.z) operator /(Vec3d, double) Get a new object from a scaled by 1/d. public static Vec3d operator /(Vec3d a, double d) Parameters a Vec3d d double Returns Vec3d operator ==(Vec3d, Vec3d) Equality operator for comparing two Vec3d objects. public static bool operator ==(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are equal, false otherwise operator !=(Vec3d, Vec3d) Inequality operator for comparing two Vec3d objects. public static bool operator !=(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are not equal, false otherwise operator *(Vec3d, Mat4d) Get p*src. public static Vec3d operator *(Vec3d p, Mat4d src) Parameters p Vec3d point src Mat4d transmform matrix Returns Vec3d new Vec3d(p.x * src.At(0, 0) + p.y * src.At(1, 0) + p.z * src.At(2, 0) + src.At(3, 0) , p.x* src.At(0, 1) + p.y* src.At(1, 1) + p.z* src.At(2, 1) + src.At(3, 1) , p.x* src.At(0, 2) + p.y* src.At(1, 2) + p.z* src.At(2, 2) + src.At(3, 2)) operator *(Vec3d, double) Scale a by s. public static Vec3d operator *(Vec3d a, double s) Parameters a Vec3d vector s double scale Returns Vec3d new Vec3d(a.x * s, a.y * s, a.z * s) operator -(Vec3d, Vec3d) Minus. public static Vec3d operator -(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d new Vec3d(a.x - b.x, a.y - b.y, a.z - b.z) operator -(Vec3d) Get negate vector. public static Vec3d operator -(Vec3d src) Parameters src Vec3d src Returns Vec3d new Vec3d(-src.x, -src.y, -src.z)" }, "api/Hi.Geom.html": { "href": "api/Hi.Geom.html", "title": "Namespace Hi.Geom | HiAPI-C# 2025", "summary": "Namespace Hi.Geom Classes ArrayUtil Utility class for array operations. AxisAngle4d Axis(3d) and angle(1d) Box2d Lightweight 2d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box2d is Min and Max. Box2d.NoInit Flag for calling Box2d(NoInit). Box3d Lightweight 3d box. An orthogonal box which the edges are all parallel with Cartesian Coordinate. The data contains in a Box3d is Min and Max. Box3d.NoInit Flag for calling Box3d(NoInit). Cylindroid 3d Geometry of Cylindroid. DVec3d Dual Vec3d with p(Vec3d) and n(Vec3d). ExtendedCylinder An extensible cylinder geometry that generates a corresponding Cylindroid by the start section and the total length. Flat3d Represents a 3D plane defined by a unit normal vector and its signed distance from the origin. The plane equation is: Ax + By + Cz + d = 0, where (A,B,C) is the normal vector and d is the distance to origin. GeomCombination A class that manages multiple STL sources as a single source. GeomUtil Utility of Geometry. Mat4d 4x4 Matrix. MathNetUtil Utility class for MathNet.Numerics operations. MathUtil Math Utility. NativeFraction Native wrapper for C++ fraction_t<0> (unlimited precision fraction). A fraction consists of a numerator and denominator using unlimited precision integers. NativeStl Native Stl. For purpose of efficient swept volume. ObjUtil Wavefront OBJ writer for RGB-coloured triangle buffers. PairZr Value pair of Z and R. PairZrUtil Utility class for working with PairZr objects PlyUtil Stanford PLY writer for RGB-coloured triangle buffers. Polar3d Represents a point in 3D space using polar coordinates Segment3d Represents a 3D line segment defined by two endpoints. Stl STL (stereolithography). Composed by Triangles. Provide Stl File R/W. StlFile Represents an STL file with loading and saving capabilities StlFuncHost A class that hosts a function to generate STL geometry. StlUtil Utility for Stl. TransformationGeom Represents a geometric transformation that can be applied to a geometry object. This class combines a transformer with a target geometry to produce transformed geometric results. Tri3d Basic 3D Triangle. Tri3dUtil Utility of Tri3d. Include generator of triangles from points. Vec2d Basic 2D point (or vector). Vec2i Basic 2D point (or vector). Vec3d Basic 3D point (or vector). Structs Fraction Pure C# unlimited precision fraction. Interfaces IExpandToBox2d Object that can be expanded to a Box2d. IExpandToBox3d Object that can be expanded to a Box3d. IFlat3d Interface for a 3D plane that provides an anchor point and a normal vector. IGenStl Interface for generating STL geometry with a resolution. IGeomProperty Interface for objects that have a geometry property. IGetStl Interface for retrieving STL geometry data. IGetZrContour Interface for retrieving Z-R contour data for rotational geometries. IGetZrList Interface for getting a list of Z-R pairs. IStlSource Stl provider with xml support. ITri3d Interface for 3D triangles. IVec Interface for vector types with generic element type. IZrListSourceProperty Provides a source for obtaining an IGetZrList. Enums Dir Enumeration of coordinate axis directions in 3D space. FractionStatus Status flags for Fraction and NativeFraction. Corresponds to IS_PACKED_MASK and IS_EVALUATED_MASK in C++ fraction_base_t. Mat4d.IndexFlag Specifies the indexing method for matrix construction from vectors. Stl.StlType Stl file format." }, "api/Hi.HiNcKits.BasePathEnum.html": { "href": "api/Hi.HiNcKits.BasePathEnum.html", "title": "Enum BasePathEnum | HiAPI-C# 2025", "summary": "Enum BasePathEnum Namespace Hi.HiNcKits Assembly HiNc.dll Enumeration of base path types used in the HiNC system. [Flags] public enum BasePathEnum 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 AdminDir = 2 The administration directory path. None = 0 No specific path type. ProjectDir = 4 The project directory path. ResourceDir = 8 The resource directory path." }, "api/Hi.HiNcKits.HiNcHost.html": { "href": "api/Hi.HiNcKits.HiNcHost.html", "title": "Class HiNcHost | HiAPI-C# 2025", "summary": "Class HiNcHost Namespace Hi.HiNcKits Assembly HiNc.dll Rich HiNC Service. Host class for HiNC functionality that provides project management, path resolution, and DB integration. public class HiNcHost : IDisposable Inheritance object HiNcHost Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors HiNcHost(ProxyProjectService, ILogger) Initializes a new instance of the HiNcHost class with a proxy project service. public HiNcHost(ProxyProjectService proxyProjectService, ILogger logger = null) Parameters proxyProjectService ProxyProjectService The proxy project service to use. logger ILogger Optional logger instance. Fields HiNcUserDbMetaName Gets the name of the HiNC user database metadata. public const string HiNcUserDbMetaName = \"UserDbMeta\" Field Value string HiNcUserDbName Gets the name of the HiNC user database. public const string HiNcUserDbName = \"HiNcUserDb\" Field Value string Properties AdminDirectory Admin absolute directory. public string AdminDirectory { get; set; } Property Value string AdminExtendedNamedPath Gets the admin extended named path. public ExtendedNamedPath AdminExtendedNamedPath { get; } Property Value ExtendedNamedPath AdminNamedPath Gets the admin named path. public NamedPath AdminNamedPath { get; } Property Value NamedPath CacheDbId Gets the cache database ID. public static string CacheDbId { get; set; } Property Value string IdentityStorage Gets the SQLite identity storage instance (for user authentication). public SqliteIdentityStorage IdentityStorage { get; } Property Value SqliteIdentityStorage LocalProjectService Gets the local project service from the proxy project service. public LocalProjectService LocalProjectService { get; } Property Value LocalProjectService MachiningProject Gets the machining project from the local project service. public MachiningProject MachiningProject { get; } Property Value MachiningProject ProjectDirectory Project Absolute Directory. public string ProjectDirectory { get; } Property Value string ProjectExtendedNamedPath Gets the project extended named path. public ExtendedNamedPath ProjectExtendedNamedPath { get; } Property Value ExtendedNamedPath ProjectNamedPath Gets the project named path. public NamedPath ProjectNamedPath { get; } Property Value NamedPath ProjectRelativeDirectory Gets the relative project directory path. public string ProjectRelativeDirectory { get; } Property Value string RelativeProjectPath Gets the relative project path from the proxy project service. public string RelativeProjectPath { get; } Property Value string ResourceDir Resource absolute directory. public string ResourceDir { get; } Property Value string ResourceExtendedNamedPath Gets the resource extended named path. public ExtendedNamedPath ResourceExtendedNamedPath { get; } Property Value ExtendedNamedPath ResourceNamedPath Gets the resource named path. public NamedPath ResourceNamedPath { get; } Property Value NamedPath ResourceRelDir Relative directory from AdminDirectory for resource. public string ResourceRelDir { get; set; } Property Value string StepStorage Gets the SQLite step storage instance (for milling step data). public SqliteStepStorage StepStorage { get; } Property Value SqliteStepStorage Methods CloseProject() Closes the current project. public void CloseProject() CopyResourceIfNotExisted() Copies resources if they don't already exist in the target location. public void CopyResourceIfNotExisted() 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 GetExtendedNamedPathByNamePath(string) Gets an extended named path by its name path. public ExtendedNamedPath GetExtendedNamedPathByNamePath(string namePath) Parameters namePath string The name path to look up. Returns ExtendedNamedPath The extended named path for the specified name path, or null if not found. GetExtendedNamedPathByPath(string) Gets an extended named path by its path. public ExtendedNamedPath GetExtendedNamedPathByPath(string path) Parameters path string The path to look up. Returns ExtendedNamedPath The extended named path with the specified path, or null if not found. GetExtendedNamedPathByUriPara(string) GetExtendedNamedPath By blazor page parameter. public ExtendedNamedPath GetExtendedNamedPathByUriPara(string uriPara) Parameters uriPara string Returns ExtendedNamedPath GetExtendedNamedPathList(params BasePathEnum[]) Gets a list of extended named paths for the specified base path types. public List GetExtendedNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of extended named paths. GetNamedPathByName(string) Gets a named path by its name. public NamedPath GetNamedPathByName(string name) Parameters name string The name of the path to retrieve Returns NamedPath The named path with the specified name, or null if not found GetNamedPathByPath(string) Gets a named path by its path. public NamedPath GetNamedPathByPath(string path) Parameters path string The path to look up. Returns NamedPath The named path with the specified path, or null if not found. GetNamedPathList(params BasePathEnum[]) Gets a list of named paths for the specified base path types. public List GetNamedPathList(params BasePathEnum[] basePathEnums) Parameters basePathEnums BasePathEnum[] The base path types to include. Returns List A list of named paths. LoadProjectByRelativePath(string) Loads a project from the specified relative file path. public void LoadProjectByRelativePath(string relativeFilePathFromAdminRoot) Parameters relativeFilePathFromAdminRoot string The relative file path from the admin directory root NewProjectByRelFile(string) Creates a new project from a relative file path. public void NewProjectByRelFile(string relFilePath) Parameters relFilePath string The relative file path from the admin directory Reg(XFactory) Bootstraps XML-factory registration for the HiNC host. Equivalent to Reg(XFactory); entry points that construct HiNcHost directly (without going through LocalProjectService) should call this once at startup. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ReloadProject() Reloads the current project. public void ReloadProject() SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory root SaveProject() Save project in the current path. public void SaveProject() ShowMessageBoard(string, string, BootstrapTheme) Shows a message board with specified title, message and theme. public void ShowMessageBoard(string title, string message, BootstrapTheme bootstrapThemeColor) Parameters title string The title of the message board message string The message to display bootstrapThemeColor BootstrapTheme The bootstrap theme color for the message board Events OnShownMessageBoard Event raised when a message board is shown. public event ShowMessageBoardDelegate OnShownMessageBoard Event Type ShowMessageBoardDelegate" }, "api/Hi.HiNcKits.LocalApp.html": { "href": "api/Hi.HiNcKits.LocalApp.html", "title": "Class LocalApp | HiAPI-C# 2025", "summary": "Class LocalApp Namespace Hi.HiNcKits Assembly HiNc.dll Local application initialization and cleanup utilities. public static class LocalApp Inheritance object LocalApp Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields DefaultLocalAppConfigPath Path to the configuration file. public const string DefaultLocalAppConfigPath = \"hinc-host-config.xml\" Field Value string Properties LocalAppConfig Gets or sets the host configuration. public static LocalAppConfig LocalAppConfig { get; set; } Property Value LocalAppConfig Methods AppBegin(LocalAppConfig, ILogger) Initializes the application with the specified configuration. public static void AppBegin(LocalAppConfig localAppConfig, ILogger logger) Parameters localAppConfig LocalAppConfig The local application configuration. logger ILogger Logger used for startup diagnostics. AppBegin(ILogger, string) Initializes the application with the specified cache database path. public static void AppBegin(ILogger logger, string cacheDbPath = null) Parameters logger ILogger Logger instance for startup diagnostics. cacheDbPath string The path to the SQLite cache database. If null, uses default path. AppBeginWithConfigFile(ILogger, string) Initializes the application with configuration from a file. public static void AppBeginWithConfigFile(ILogger logger, string hostConfigPath = null) Parameters logger ILogger Logger used when loading configuration and initializing caches. hostConfigPath string Path to the host configuration file. Uses default path if null. AppEnd() Cleans up the application by stopping services and logging out licenses. public static void AppEnd()" }, "api/Hi.HiNcKits.LocalAppConfig.html": { "href": "api/Hi.HiNcKits.LocalAppConfig.html", "title": "Class LocalAppConfig | HiAPI-C# 2025", "summary": "Class LocalAppConfig Namespace Hi.HiNcKits Assembly HiNc.dll Configuration for host-related settings. public class LocalAppConfig Inheritance object LocalAppConfig 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) Constructors LocalAppConfig() Initializes a new instance. public LocalAppConfig() LocalAppConfig(XElement, string) Initializes a new instance of the LocalAppConfig class from XML data. public LocalAppConfig(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths Properties CacheDbPath Gets or sets the cache database path (SQLite database). public string CacheDbPath { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string) public XElement MakeXmlSource(string baseDirectory, string relFile) Parameters baseDirectory string relFile string Returns XElement" }, "api/Hi.HiNcKits.ProxyConfig.html": { "href": "api/Hi.HiNcKits.ProxyConfig.html", "title": "Class ProxyConfig | HiAPI-C# 2025", "summary": "Class ProxyConfig Namespace Hi.HiNcKits Assembly HiNc.dll Configuration for proxy-related settings. public class ProxyConfig : IMakeXmlSource Inheritance object ProxyConfig Implements IMakeXmlSource 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) Constructors ProxyConfig() Default constructor public ProxyConfig() ProxyConfig(XElement, string) Initializes a new instance of the ProxyConfig class from XML data. public ProxyConfig(XElement src, string baseDirectory) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths Properties AdminDirectory Gets or sets the admin directory path. public string AdminDirectory { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.HiNcKits.ResourceSeeder.html": { "href": "api/Hi.HiNcKits.ResourceSeeder.html", "title": "Class ResourceSeeder | HiAPI-C# 2025", "summary": "Class ResourceSeeder Namespace Hi.HiNcKits Assembly HiNc.dll Seeds the shipped default resources (Resource/** from the HiNc-Resource content package, next to the executable) into the admin resource directory, honoring the ResourceDefaultMarker ownership convention: Marked items (X.default.Ext files, Name.default/ folders) are system territory — they are copied in, refreshed when the shipped bytes change, and deleted when no longer shipped. Unmarked items belong to the user and are never touched. A version stamp file at the destination root records the last-seeded HiNc-Resource version; when it matches, the whole pass is skipped, so steady-state startup cost is one small file read. public static class ResourceSeeder Inheritance object ResourceSeeder Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Remarks One-time migration for pre-marker installs: an unmarked twin of a shipped item (same path with the marker stripped) whose bytes equal the shipped bytes is absorbed — deleted so the marked copy replaces it. A twin with different bytes is a user customization and is left alone. Unmarked files in the source tree are ignored entirely; stale additive-only build output therefore never propagates to the admin folder. All failures are logged as warnings — seeding never throws. Fields ResourceAssemblyFileName Assembly file probed (next to the executable) for the shipped resource version. public const string ResourceAssemblyFileName = \"HiNc-Resource.dll\" Field Value string VersionStampFileName Version stamp file name written at the destination resource root. public const string VersionStampFileName = \".hinc-resource-version\" Field Value string Methods Seed(string, ILogger) Seeds the shipped defaults into adminResourceDirectory. Source is Resource/ under BaseDirectory (the process CWD is not stable enough to anchor on). Never throws. public static void Seed(string adminResourceDirectory, ILogger logger) Parameters adminResourceDirectory string Absolute path of the admin Resource root. logger ILogger Sink for the pass summary and warnings." }, "api/Hi.HiNcKits.html": { "href": "api/Hi.HiNcKits.html", "title": "Namespace Hi.HiNcKits | HiAPI-C# 2025", "summary": "Namespace Hi.HiNcKits Classes HiNcHost Rich HiNC Service. Host class for HiNC functionality that provides project management, path resolution, and DB integration. LocalApp Local application initialization and cleanup utilities. LocalAppConfig Configuration for host-related settings. ProxyConfig Configuration for proxy-related settings. ResourceSeeder Seeds the shipped default resources (Resource/** from the HiNc-Resource content package, next to the executable) into the admin resource directory, honoring the ResourceDefaultMarker ownership convention: Marked items (X.default.Ext files, Name.default/ folders) are system territory — they are copied in, refreshed when the shipped bytes change, and deleted when no longer shipped. Unmarked items belong to the user and are never touched. A version stamp file at the destination root records the last-seeded HiNc-Resource version; when it matches, the whole pass is skipped, so steady-state startup cost is one small file read. Enums BasePathEnum Enumeration of base path types used in the HiNC system." }, "api/Hi.Licenses.AuthFeature.html": { "href": "api/Hi.Licenses.AuthFeature.html", "title": "Enum AuthFeature | HiAPI-C# 2025", "summary": "Enum AuthFeature Namespace Hi.Licenses Assembly HiDisp.dll Internal Use Only. public enum AuthFeature 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 AdvancedPhysics = 19 Advanced physics feature. CollisionDetectionNoLimit = 6 Collision detection with no limit feature. CubeTreeNoLimit = 2 CubeTree with no limit feature. CubeTreeStepLimit = 8 CubeTree with step limit feature. CuttingParameterConversion = 20 Cutting parameter conversion feature. FreeSwept = 13 Free swept feature. HiApi = 1 HiApi feature. HiApiSubstitute = 16 HiApi substitute feature. If no HiApi licensed, HiApiSubstitute takes the same effect. IsoCL = 5 IsoCL feature. IsoNC = 4 IsoNC feature. MillingForceNoLimit = 3 Milling force with no limit feature. MillingForceStepLimit = 17 Milling force with step limit feature. MtBuilder = 12 MtBuilder feature. NcComposition = 22 NC composition feature: registering external (non-built-in) processing units into the SoftNc pipeline, and executing NC-embedded C# scripts. Without it the built-in dialects run unchanged; external units are skipped with a diagnostic. OptNcNoLimit = 14 OptNc with no limit feature. PostProcessNoLimit = 7 Post process with no limit feature. SuppressDefaultLogo = 21 Suppress default logo feature." }, "api/Hi.Licenses.AuthorizationFailedEventArgs.html": { "href": "api/Hi.Licenses.AuthorizationFailedEventArgs.html", "title": "Class AuthorizationFailedEventArgs | HiAPI-C# 2025", "summary": "Class AuthorizationFailedEventArgs Namespace Hi.Licenses Assembly HiDisp.dll Event arguments for authorization failure events. public class AuthorizationFailedEventArgs : EventArgs Inheritance object EventArgs AuthorizationFailedEventArgs Inherited Members EventArgs.Empty 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 AuthorizationFailedEventArgs() Initializes a new instance of the AuthorizationFailedEventArgs class. public AuthorizationFailedEventArgs() AuthorizationFailedEventArgs(string) Initializes a new instance of the AuthorizationFailedEventArgs class with a specified error message. public AuthorizationFailedEventArgs(string msg) Parameters msg string The error message associated with the authorization failure. Properties Msg Gets or sets the error message associated with the authorization failure. public string Msg { get; set; } Property Value string" }, "api/Hi.Licenses.BlockType.html": { "href": "api/Hi.Licenses.BlockType.html", "title": "Enum BlockType | HiAPI-C# 2025", "summary": "Enum BlockType Namespace Hi.Licenses Assembly HiDisp.dll Block type. public enum BlockType 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 NoBlock = 0 No block. NoLicense = 2 No license. Block. ReachStepLimit = 1 Reach step limit. Block." }, "api/Hi.Licenses.License.html": { "href": "api/Hi.Licenses.License.html", "title": "Class License | HiAPI-C# 2025", "summary": "Class License Namespace Hi.Licenses Assembly HiDisp.dll License of this module. public static class License Inheritance object License Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields CoreDll Core dll path. public const string CoreDll = \"core.dll\" Field Value string Methods AbortIfNotLoggedIn(AuthFeature) Aborts the application if a specific feature is not logged in. public static void AbortIfNotLoggedIn(AuthFeature feature) Parameters feature AuthFeature The feature to check. GetProducerInfo() Get Producer Info. public static string GetProducerInfo() Returns string Producer Info. IsFeatureAuth(AuthFeature) Checks if a specific feature is authorized. public static bool IsFeatureAuth(AuthFeature authFeature) Parameters authFeature AuthFeature The feature to check. Returns bool True if the feature is authorized; otherwise, false. IsLoggedIn(AuthFeature) Checks if a specific feature is logged in. public static bool IsLoggedIn(AuthFeature feature) Parameters feature AuthFeature The feature to check. Returns bool True if the feature is logged in; otherwise, false. LogInAll() Attempts to log in to all available features. public static List LogInAll() Returns List An enumeration of successfully logged in features. LogOut(AuthFeature) Logs out from a specific feature. public static void LogOut(AuthFeature feature) Parameters feature AuthFeature The feature to log out from. LogOutAll() Logs out from all features. public static void LogOutAll() Login(AuthFeature) Logs in to a specific feature. public static bool Login(AuthFeature feature) Parameters feature AuthFeature The feature to log in to. Returns bool True if login was successful; otherwise, false. SafelyEndLicenseRoutineCheck() Safely ends the license routine check. public static void SafelyEndLicenseRoutineCheck() Events AbortMessageAction Event handler for license abort events. public static event Action AbortMessageAction Event Type Action" }, "api/Hi.Licenses.LicenseType.html": { "href": "api/Hi.Licenses.LicenseType.html", "title": "Enum LicenseType | HiAPI-C# 2025", "summary": "Enum LicenseType Namespace Hi.Licenses Assembly HiDisp.dll Defines the types of licenses available. public enum LicenseType 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 NoLicense = 0 No license available. StepLimit = 2 License with step limitations. UnInit = 3 License not initialized. Unlimit = 1 Unlimited license." }, "api/Hi.Licenses.html": { "href": "api/Hi.Licenses.html", "title": "Namespace Hi.Licenses | HiAPI-C# 2025", "summary": "Namespace Hi.Licenses Classes AuthorizationFailedEventArgs Event arguments for authorization failure events. License License of this module. Enums AuthFeature Internal Use Only. BlockType Block type. LicenseType Defines the types of licenses available." }, "api/Hi.Machining.FreeformRemover.html": { "href": "api/Hi.Machining.FreeformRemover.html", "title": "Class FreeformRemover | HiAPI-C# 2025", "summary": "Class FreeformRemover Namespace Hi.Machining Assembly HiMech.dll Represents a freeform cutting tool that can be used in machining operations. This cutter type supports complex geometries for both the noble (upper) part and the shaper (cutting) part. public class FreeformRemover : ICutter, IGetSweptable, IVolumeRemover, IAnchoredDisplayee, IDisplayee, ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IAnchoredCollidableStem, IAnchoredCollidableNode, IAnchoredCollidableBased, IExpandToBox3d, IDuplicate, IDisposable, IClearCache, INameNote Inheritance object FreeformRemover Implements ICutter IGetSweptable IVolumeRemover IAnchoredDisplayee IDisplayee ITopo IGetAsmb IGetAnchor IGetTopoIndex IGetAnchoredDisplayeeList IGetFletchBuckle IMakeXmlSource IAbstractNote IAnchoredCollidableStem IAnchoredCollidableNode IAnchoredCollidableBased IExpandToBox3d IDuplicate IDisposable IClearCache INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) CutterUtil.GetCutterBodyCoolingArea_mm2(ICutter) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The FreeformRemover class provides functionality for: Managing complex cutting tool geometries Supporting both spinning and non-spinning cutting operations Handling collision detection and display Managing tool assembly and anchoring Supporting XML serialization and deserialization Constructors FreeformRemover() Initializes a new instance. public FreeformRemover() Remarks This constructor initializes the cutter with default settings and creates the necessary anchors and topology bricks for both the noble and shaper parts. FreeformRemover(XElement, string, string, IProgress, object[]) Initializes a new instance from XML data. public FreeformRemover(XElement src, string baseDirectory, string relFile, IProgress progress, object[] res) Parameters src XElement The XML element containing the cutter data. baseDirectory string The base directory for resolving relative paths. relFile string The relative file path for resolving references. progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resources for initialization. Properties AbstractNote Gets a brief description of the cutter, including its height. public string AbstractNote { get; } Property Value string Remarks The abstract note includes the cutter type and its height dimension, formatted as \"Freeform-H{this.GetBox3d().Dim.Z}\". CollidableName Gets the name used for collision detection purposes. public string CollidableName { get; } Property Value string CutterTip Gets the cutter tip anchor point. On the same location of GeomAnchor. public Anchor CutterTip { get; } Property Value Anchor Remarks The cutter tip represents the reference point for the cutting edge or surface. This point is used for positioning and orientation calculations during machining operations. GeomAnchor StrutGeom and ShaperGeom locate on this anchor. On the same location of CutterTip. public Anchor GeomAnchor { get; } Property Value Anchor GeomToHolderBranch Gets the branch that transforms from GeomAnchor to Hi.Machining.FreeformRemover.HolderBuckle. public Branch GeomToHolderBranch { get; } Property Value Branch GeomToHolderTransformer Gets or sets the transformer from GeomAnchor to Hi.Machining.FreeformRemover.HolderBuckle. public ITransformer GeomToHolderTransformer { get; set; } Property Value ITransformer IsSpinningCutter Gets or sets a value indicating whether this is a spinning cutting tool. public bool IsSpinningCutter { get; set; } Property Value bool Remarks This property affects how the cutter interacts with the workpiece during machining operations. Spinning cutters typically perform rotary cutting operations, while non-spinning cutters may be used for other types of machining. KeepHolderBuckleOnTop When true, automatically translates the holder buckle to be above the highest geometry point. public bool KeepHolderBuckleOnTop { get; set; } Property Value bool Name Name. public string Name { get; set; } Property Value string Note Note. public string Note { get; set; } Property Value string ShaperGeom Gets or sets the shaper (cutting) part geometry of the cutter. public IGetStl ShaperGeom { get; set; } Property Value IGetStl Remarks The shaper geometry represents the cutting portion of the tool that directly interacts with the workpiece during machining operations. ShaperTopoBrick Gets the topology brick representing the shaper (cutting) part of the cutter. public ITopoBrick ShaperTopoBrick { get; } Property Value ITopoBrick StrutGeom Gets or sets the strut (upper) part geometry of the cutter. public IGetStl StrutGeom { get; set; } Property Value IGetStl Remarks The noble geometry represents the non-cutting portion of the tool, typically including the tool holder and shank. This geometry is important for collision checking and visualization. StrutTopoBrick Gets the topology brick representing the upper (noble) part of the cutter. public ITopoBrick StrutTopoBrick { get; } Property Value ITopoBrick XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears all cached data associated with the cutter. public void ClearCache() Remarks This includes clearing the cached sweptable and solid representations of both the noble and shaper parts of the cutter. Display(Bind) Displays the cutter using the provided binding context. public void Display(Bind bind) Parameters bind Bind The binding context for display operations. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. Duplicate(params object[]) Creates a deep copy of the current instance. public object Duplicate(params object[] res) Parameters res object[] Additional resources for duplication. Returns object A new instance with copied geometry data. ExpandToBox3d(Box3d) Expands the given bounding box to include the cutter's geometry. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The bounding box to expand. GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredCollidables() Gets the list of anchored collidable nodes contained by this stem. public List GetAnchoredCollidables() Returns List A list of anchored collidable nodes. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. public Anchor GetFletchBuckle() Returns Anchor buckle anchor GetShaperDisplayee() Gets the shaper displayee for visualization purposes. public IAnchoredDisplayee GetShaperDisplayee() Returns IAnchoredDisplayee An IAnchoredDisplayee representing the shaper (cutting) part of the cutter. Remarks This method creates a display representation of the shaper geometry, which can be either the raw geometry if it implements IDisplayee, or the topology brick representation. GetStrutAnchoredDisplayee() Gets the noble (upper) part displayee for visualization purposes. public AnchoredDisplayee GetStrutAnchoredDisplayee() Returns AnchoredDisplayee An AnchoredDisplayee representing the noble part of the cutter with modified display properties. Remarks This method creates a display representation of the noble geometry with slightly darker coloring to distinguish it from the shaper part during visualization. GetSweptable(double) Gets the sweptable representation of the cutter for swept volume calculations. public Sweptable GetSweptable(double fractionTolerance) Parameters fractionTolerance double The tolerance value for swept volume calculations. Returns Sweptable A Sweptable object representing the cutter's swept volume, or null if the shaper geometry is not available. Remarks The sweptable representation is cached for performance. Use ClearCache to reset the cached data. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Machining.ICutter.html": { "href": "api/Hi.Machining.ICutter.html", "title": "Interface ICutter | HiAPI-C# 2025", "summary": "Interface ICutter Namespace Hi.Machining Assembly HiMech.dll Interface of cutter. public interface ICutter : IGetSweptable, IVolumeRemover, IAnchoredDisplayee, IDisplayee, ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IAnchoredCollidableStem, IAnchoredCollidableNode, IAnchoredCollidableBased, IExpandToBox3d, IDuplicate, IDisposable, IClearCache, INameNote Inherited Members IGetSweptable.GetSweptable(double) IDisplayee.Display(Bind) IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetFletchBuckle.GetFletchBuckle() IMakeXmlSource.MakeXmlSource(string, string, bool) IAbstractNote.AbstractNote IAnchoredCollidableStem.GetAnchoredCollidables() IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() IExpandToBox3d.ExpandToBox3d(Box3d) IDuplicate.Duplicate(params object[]) IDisposable.Dispose() IClearCache.ClearCache() INameNote.Name INameNote.Note Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) CutterUtil.GetCutterBodyCoolingArea_mm2(ICutter) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties CutterThemeColor The default theme color for cutter body visualization. public static Vec3d CutterThemeColor { get; } Property Value Vec3d CutterTip Gets the anchor point representing the tip of the cutter. Anchor CutterTip { get; } Property Value Anchor The anchor point at the cutter tip, or null if the shaper topology brick is not available. Remarks The cutter tip is the reference point for the cutting tool, typically located at the end of the shaper part. This point is used for positioning and orientation calculations during machining operations. IsSpinningCutter Is cutter spining when machining. bool IsSpinningCutter { get; } Property Value bool Is cutter spining when machining. ShankThemeColor The default theme color for shank visualization. public static Vec3d ShankThemeColor { get; } Property Value Vec3d ShaperTopoBrick cutable part of cutter. the part cut the workpiece if overlapped. ITopoBrick ShaperTopoBrick { get; } Property Value ITopoBrick StrutTopoBrick uncutable part of cutter. the part triggers collision to workpiece if overlapped. ITopoBrick StrutTopoBrick { get; } Property Value ITopoBrick" }, "api/Hi.Machining.ICutterAnchorable.html": { "href": "api/Hi.Machining.ICutterAnchorable.html", "title": "Interface ICutterAnchorable | HiAPI-C# 2025", "summary": "Interface ICutterAnchorable Namespace Hi.Machining Assembly HiMech.dll IGetAnchor of cutter. [Obsolete] public interface ICutterAnchorable : IGetSweptable, IVolumeRemover, IGetAnchor, IGetTopoIndex Inherited Members IGetSweptable.GetSweptable(double) IGetAnchor.GetAnchor() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object)" }, "api/Hi.Machining.IGetSweptable.html": { "href": "api/Hi.Machining.IGetSweptable.html", "title": "Interface IGetSweptable | HiAPI-C# 2025", "summary": "Interface IGetSweptable Namespace Hi.Machining Assembly HiCbtr.dll Interface of Get Sweptable. public interface IGetSweptable : IVolumeRemover 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) Methods GetSweptable(double) Get Sweptable. Sweptable GetSweptable(double fractionTolerance) Parameters fractionTolerance double The fraction tolerance for the sweptable. Returns Sweptable Sweptable" }, "api/Hi.Machining.IMachiningTool.html": { "href": "api/Hi.Machining.IMachiningTool.html", "title": "Interface IMachiningTool | HiAPI-C# 2025", "summary": "Interface IMachiningTool Namespace Hi.Machining Assembly HiMech.dll Interface for machining tools that combine a holder and a cutter. public interface IMachiningTool : IDisplayee, IExpandToBox3d, ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IDuplicate, IClearCache, IGetFluteNum Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetFletchBuckle.GetFletchBuckle() IMakeXmlSource.MakeXmlSource(string, string, bool) IAbstractNote.AbstractNote IDuplicate.Duplicate(params object[]) IClearCache.ClearCache() IGetFluteNum.GetFluteNum() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MillingToolUtil.GetFullH(IMachiningTool) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Cutter Gets the cutting tool. ICutter Cutter { get; } Property Value ICutter ExposedCutterBendingPara_umdN Gets the exposed cutter bending parameter in micrometers per Newton. double ExposedCutterBendingPara_umdN { get; } Property Value double ExposedCutterHeight_mm Gets or sets the exposed cutter height in millimeters. double ExposedCutterHeight_mm { get; set; } Property Value double ExposedCutterZDeflectionPara_umdN Gets the exposed cutter Z-axis deflection parameter in micrometers per Newton. double ExposedCutterZDeflectionPara_umdN { get; } Property Value double Holder Gets the tool holder. IHolder Holder { get; } Property Value IHolder Note Gets or sets the note for this machining tool. string Note { get; set; } Property Value string SpindleBuckleToToolTipLength Gets the length from spindle buckle to tool tip in millimeters. double SpindleBuckleToToolTipLength { get; } Property Value double ToolTip Gets the tool tip anchor point. Anchor ToolTip { get; } Property Value Anchor" }, "api/Hi.Machining.IVolumeRemover.html": { "href": "api/Hi.Machining.IVolumeRemover.html", "title": "Interface IVolumeRemover | HiAPI-C# 2025", "summary": "Interface IVolumeRemover Namespace Hi.Machining Assembly HiCbtr.dll Only inherit from IGetInitStickConvex and IGetSweptable. public interface IVolumeRemover 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)" }, "api/Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.CollidableComponentEnum.html", "title": "Enum CollidableComponentEnum | HiAPI-C# 2025", "summary": "Enum CollidableComponentEnum Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Defines the components of a machining setup that can participate in collision detection. public enum CollidableComponentEnum 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 CutterFlute = 4 Cutter Flute. CutterShank = 3 Cutter Shank. Fixture = 1 Fixture. ToolHolder = 2 Tool Holder. Workpiece = 0 Workpiece." }, "api/Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.IGetMachiningEquipment.html", "title": "Interface IGetMachiningEquipment | HiAPI-C# 2025", "summary": "Interface IGetMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Interface for objects that can provide access to a machining equipment instance. public interface IGetMachiningEquipment 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) Methods GetMachiningEquipment() Get MachiningEquipment. MachiningEquipment GetMachiningEquipment() Returns MachiningEquipment MachiningEquipment GetMillingEquipment() Source-compatible delegate for callers written against the pre-rename name; the equipment has been machining-scoped (not milling-only) since MillingEquipment became MachiningEquipment. [Obsolete(\"Renamed to GetMachiningEquipment.\")] MachiningEquipment GetMillingEquipment() Returns MachiningEquipment MachiningEquipment" }, "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.IMachiningEquipment.html", "title": "Interface IMachiningEquipment | HiAPI-C# 2025", "summary": "Interface IMachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining equipment. public interface IMachiningEquipment : IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain Inherited Members IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetProgramCl.GetProgramCl() IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetMachiningChain.GetMachiningChain() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) MachiningEquipmentUtil.GetProgramToPnMat4d(IMachiningEquipment) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Fixture Fixture of workpiece. Fixture Fixture { get; set; } Property Value Fixture MachiningTool Milling tool. IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool TableToComp Component transformation from table. ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee" }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipment.html", "title": "Class MachiningEquipment | HiAPI-C# 2025", "summary": "Class MachiningEquipment Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. public class MachiningEquipment : IMachiningEquipment, IDisplayee, IExpandToBox3d, IMakeXmlSource, IGetAnchoredDisplayeeList, IGetProgramCl, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetMachiningChain, IGetMachiningEquipment Inheritance object MachiningEquipment Implements IMachiningEquipment IDisplayee IExpandToBox3d IMakeXmlSource IGetAnchoredDisplayeeList IGetProgramCl IGetAsmb IGetAnchor IGetTopoIndex IGetMachiningChain IGetMachiningEquipment Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningEquipmentUtil.AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) MachiningEquipmentUtil.GetMachinePositionAtProgramZero(IMachiningEquipment) MachiningEquipmentUtil.GetMachinePositionAtTableBuckleZero(IMachiningEquipment) MachiningEquipmentUtil.GetProgramToPnMat4d(IMachiningEquipment) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningEquipment() Ctor. public MachiningEquipment() MachiningEquipment(XElement, string, string, IProgress) Initializes a new instance of the MachiningEquipment class from XML data. public MachiningEquipment(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the equipment configuration. baseDirectory string The base directory for resolving relative file paths. relFile string The relative file path for XML serialization. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb of the entire equipment. public Asmb Asmb { get; } Property Value Asmb BackgroundTemperature_C Gets or sets the background temperature in Celsius. This is a convenience property that converts between Celsius and Kelvin. public double BackgroundTemperature_C { get; set; } Property Value double BackgroundTemperature_K Gets or sets the background temperature in Kelvin. This represents the ambient temperature of the machining environment. public double BackgroundTemperature_K { get; set; } Property Value double CoolantHeatCondition Gets or sets the coolant heat condition settings. This includes coolant temperature and heat transfer coefficients. public CoolantHeatCondition CoolantHeatCondition { get; set; } Property Value CoolantHeatCondition CoolantHeatConditionFile Gets or sets the file path of the coolant heat condition (WorkpieceMaterial pattern: when set, XML IO externalizes CoolantHeatCondition to this side-file; when null the condition serializes inline). public string CoolantHeatConditionFile { get; set; } Property Value string Fixture Fixture. public Fixture Fixture { get; set; } Property Value Fixture MachiningChain Body of the equipment. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningTool Milling tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool SpindleCapability Gets or sets the spindle capability configuration. This defines the operational capabilities and limits of the spindle. public SpindleCapability SpindleCapability { get; set; } Property Value SpindleCapability SpindleCapabilityFile Gets or sets the file path of the spindle capability configuration. This is used for XML serialization and file management. public string SpindleCapabilityFile { get; set; } Property Value string TableToComp Transformer of the branch from table buckle to workpiece side buckle. Note that the workpiece side buckle links to Fixture if fixture exist; otherwise, it links to Workpiece if workpiece exist. If Workpiece either Fixture do not exist, this property makes no effect. public ITransformer TableToComp { get; set; } Property Value ITransformer Workpiece Workpiece. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceDisplayee Displayee for workpiece rendering. Set by the runtime service layer. public IDisplayee WorkpieceDisplayee { get; set; } Property Value IDisplayee XName Name for XML IO. public static string XName { get; } Property Value string Methods Detect(bool) Performs collision detection. public MechCollisionResult Detect(bool addFluteAndWorkpieceDetection) Parameters addFluteAndWorkpieceDetection bool Whether to include flute and workpiece in detection. Returns MechCollisionResult Significant collision result. Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetMachiningChain() Gets the machining chain instance. public IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance. GetMachiningEquipment() Get MachiningEquipment. public MachiningEquipment GetMachiningEquipment() Returns MachiningEquipment MachiningEquipment GetMillingEquipment() Source-compatible delegate for callers written against the pre-rename name — the interface's default member is not reachable through a concrete-typed reference, so it is restated here. [Obsolete(\"Renamed to GetMachiningEquipment.\")] public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment This equipment. GetProgramCl() Get CL (Cutter Location). Where Point is tool tip position; Normal is tool orientation. public DVec3d GetProgramCl() Returns DVec3d CL GetToolTipXyzOnProgramZero() Get tool tip xyz from workpiece geom anchor. public Vec3d GetToolTipXyzOnProgramZero() Returns Vec3d if no MachiningTool or no Workpiece equiping, return null; otherwise, return the XYZ from workpiece geomanchor to tool tip. GetTransformFromRootToProgramZero() Gets the transform matrix from the root coordinate system to the program zero coordinate system. public Mat4d GetTransformFromRootToProgramZero() Returns Mat4d A 4x4 transformation matrix representing the coordinate system transformation. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. PrepareCollidableItems() Prepares all collidable items for collision detection. This method should be called before performing collision detection. public void PrepareCollidableItems() Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ResetCollisionFlags() Resets all collision flags to their default states. This should be called after collision detection is complete, and by a runtime reset so no part stays painted red. public void ResetCollisionFlags() Tooling(int, MachiningToolHouse) Set MachiningTool by toolId and toolHouse. public bool Tooling(int toolId, MachiningToolHouse toolHouse) Parameters toolId int tool ID toolHouse MachiningToolHouse tool house Returns bool true if tool changed; otherwise, false. Exceptions ToolNotFoundException Throw If toolId does not exist on toolHouse." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndex.html", "title": "Class MachiningEquipmentCollisionIndex | HiAPI-C# 2025", "summary": "Class MachiningEquipmentCollisionIndex Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Represents a collision index for machining equipment components. This class manages collision detection between different parts of the machining equipment. public class MachiningEquipmentCollisionIndex : ICollisionIndex, IGetCollidable, IMakeXmlSource, IToXElement Inheritance object MachiningEquipmentCollisionIndex Implements ICollisionIndex IGetCollidable IMakeXmlSource IToXElement Inherited Members object.Equals(object, object) 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 MachiningEquipmentCollisionIndex(MachiningEquipment, string) Initializes a new instance of the MachiningEquipmentCollisionIndex class with the specified equipment and key. public MachiningEquipmentCollisionIndex(MachiningEquipment equipment, string key) Parameters equipment MachiningEquipment The machining equipment to associate with this collision index. key string The key identifying the component in the collision system. MachiningEquipmentCollisionIndex(string) Initializes a new instance of the MachiningEquipmentCollisionIndex class with the specified key. public MachiningEquipmentCollisionIndex(string key) Parameters key string The key identifying the component in the collision system. MachiningEquipmentCollisionIndex(XElement, IGetMachiningEquipment) Initializes a new instance of the MachiningEquipmentCollisionIndex class from XML data. public MachiningEquipmentCollisionIndex(XElement src, IGetMachiningEquipment equipment) Parameters src XElement The XML element containing the collision index configuration. equipment IGetMachiningEquipment The equipment provider interface. Fields XName Gets the XML element name for serialization. public static string XName Field Value string Properties Anchor Gets the anchor point for the component identified by this index. public Anchor Anchor { get; } Property Value Anchor Remarks The anchor point returned depends on the component key: Workpiece: Geometry anchor Fixture: Geometry anchor ToolHolder: Root anchor of the holder CutterShank: Root anchor of the upper beam topo brick CutterFlute: Root anchor of the shaper topo brick Other: Machine tool component anchor Equipment Gets or sets the machining equipment associated with this collision index. When set, updates the component anchor and collidable based on the equipment's solid machining chain. public IMachiningEquipment Equipment { get; set; } Property Value IMachiningEquipment Key Gets the key identifying the component in the collision system. public string Key { get; } Property Value string WorkpieceMeshedGeomGetter Getter for meshed geometry of the workpiece. Set by the service layer. public Func WorkpieceMeshedGeomGetter { get; set; } Property Value Func Methods Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetCollidable() Gets the collidable object for the component identified by this index. public ICollidable GetCollidable() Returns ICollidable The collidable object representing the component's geometry. The type of collidable returned depends on the component key: Workpiece: Meshed geometry Fixture: Solid collidable ToolHolder: Cylindroid or freeform holder solid CutterShank: Upper beam topo brick solid CutterFlute: Shaper topo brick solid Other: Machine tool component collidable GetHashCode() Gets a hash code for the current object. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentCollisionIndexPairsSource.html", "title": "Class MachiningEquipmentCollisionIndexPairsSource | HiAPI-C# 2025", "summary": "Class MachiningEquipmentCollisionIndexPairsSource Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Source of CollisionIndexPair. The adjacent solids will not be added to the CollisionIndexPairs. public class MachiningEquipmentCollisionIndexPairsSource : ICollisionIndexPairsSource, IGetCollisionIndexPairs, IMakeXmlSource Inheritance object MachiningEquipmentCollisionIndexPairsSource Implements ICollisionIndexPairsSource IGetCollisionIndexPairs IMakeXmlSource 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) Constructors MachiningEquipmentCollisionIndexPairsSource(IMachiningChain, HashSet) Initializes a new instance of the MachiningEquipmentCollisionIndexPairsSource class with a specified machining chain and excluded pairs. public MachiningEquipmentCollisionIndexPairsSource(IMachiningChain src, HashSet excludedPairs) Parameters src IMachiningChain The solid machining chain to build collision pairs from. excludedPairs HashSet The set of collision pairs to exclude from collision detection. Remarks This constructor builds the default collision index pairs from the provided machining chain and removes the specified excluded pairs from consideration. MachiningEquipmentCollisionIndexPairsSource(IMachiningChain, string) Initializes a new instance of the MachiningEquipmentCollisionIndexPairsSource class with a specified machining chain and excluded pairs string. public MachiningEquipmentCollisionIndexPairsSource(IMachiningChain src, string excludedPairsString = \"\") Parameters src IMachiningChain The solid machining chain to build collision pairs from. excludedPairsString string A string representation of collision pairs to exclude, in the format \"[Key1][Key2];[Key3][Key4]\". Remarks This constructor builds the default collision index pairs from the provided machining chain and removes the pairs specified in the excludedPairsString from consideration. MachiningEquipmentCollisionIndexPairsSource(XElement, IGetMachiningChain) Initializes a new instance of the MachiningEquipmentCollisionIndexPairsSource class from XML data. public MachiningEquipmentCollisionIndexPairsSource(XElement src, IGetMachiningChain res) Parameters src XElement The XML element containing the collision index pairs configuration. res IGetMachiningChain The solid machining chain reference used to build default index pairs. Fields XName Gets the XML element name used for serialization. public static string XName Field Value string Methods GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Static constructor that initializes XML serialization support. public static void Reg(XFactory factory = null) Parameters factory XFactory Remarks Registers the XML factory for deserializing MachiningEquipmentCollisionIndexPairsSource instances and ensures required XML element names are initialized." }, "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.MachiningEquipmentUtil.html", "title": "Class MachiningEquipmentUtil | HiAPI-C# 2025", "summary": "Class MachiningEquipmentUtil Namespace Hi.Machining.MachiningEquipmentUtils Assembly HiMech.dll Utility methods for working with machining equipment. public static class MachiningEquipmentUtil Inheritance object MachiningEquipmentUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d) Places Fixture under the kinematic chain so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoOffset (a G54/G55/… entry). Other anchors (FixtureBuckle, ProgramZeroAnchor, WorkpieceBuckle) must already be at their intended geometric positions (typically via the buckle “general rule”: bottom/top centers of geom). Only GeomToTableTransformer is mutated. Returns the assigned translation, or null when workpiece / fixture / Xyzabc machine tool is missing. The alignment is computed in the machine-coordinate (MC) zero state: the assembly is reflected and every IDynamicRegular axis is set to Step = 0 before querying displacements. The live equipment may have its axes moved, which would otherwise distort the ToolBuckle -> FixtureTableBuckle leg (it crosses the X/Y/Z/A/B/C axes) and break the vector-chain assumption that the legs share a common orientation — isoOffset is itself an MC-zero quantity. public static Vec3d AlignWorkpieceProgramZeroToIso(this IMachiningEquipment equipment, Vec3d isoOffset) Parameters equipment IMachiningEquipment isoOffset Vec3d Returns Vec3d GetIsoCoordinatePosition(IMachiningEquipment, Vec3d) Get ISO coordinate position from the g54seriesOffset. public static Vec3d GetIsoCoordinatePosition(this IMachiningEquipment equipment, Vec3d g54seriesOffset) Parameters equipment IMachiningEquipment g54seriesOffset Vec3d Returns Vec3d GetMachinePositionAtProgramZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at program zero. The machine coordinate are all assumed to be zero. public static Vec3d GetMachinePositionAtProgramZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetMachinePositionAtTableBuckleZero(IMachiningEquipment) Gets the machine coordinate when the attacher is at table buckle zero. public static Vec3d GetMachinePositionAtTableBuckleZero(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Vec3d The machine coordinate vector. GetProgramToPnMat4d(IMachiningEquipment) Gets the rigid transform that maps a point in program (workpiece) coordinates — the ProgramZeroAnchor frame — into the kinematic Pn frame (the chain's table-buckle anchor frame that XyzabcSolver solves in). Both anchors live on the same rigid table-side subtree (the table-buckle→fixture→workpiece leg crosses no machine axis), so the transform is pose-independent and is queried on the live assembly — no MC-zero reflection needed (this runs per parsed motion block; a whole-assembly TopoReflection clone here would dominate large-file parse time). Falls back to identity (program frame ≡ table-buckle frame) when the workpiece has no ProgramZeroAnchor; returns null when the chain has no table buckle. public static Mat4d GetProgramToPnMat4d(this IMachiningEquipment equipment) Parameters equipment IMachiningEquipment The machining equipment. Returns Mat4d The program→Pn transform, or null." }, "api/Hi.Machining.MachiningEquipmentUtils.html": { "href": "api/Hi.Machining.MachiningEquipmentUtils.html", "title": "Namespace Hi.Machining.MachiningEquipmentUtils | HiAPI-C# 2025", "summary": "Namespace Hi.Machining.MachiningEquipmentUtils Classes MachiningEquipment Machining Equipment. Include the machining chain, workpiece, tool and fixture, etc.. MachiningEquipmentCollisionIndex Represents a collision index for machining equipment components. This class manages collision detection between different parts of the machining equipment. MachiningEquipmentCollisionIndexPairsSource Source of CollisionIndexPair. The adjacent solids will not be added to the CollisionIndexPairs. MachiningEquipmentUtil Utility methods for working with machining equipment. Interfaces IGetMachiningEquipment Interface for objects that can provide access to a machining equipment instance. IMachiningEquipment Machining equipment. Enums CollidableComponentEnum Defines the components of a machining setup that can participate in collision detection." }, "api/Hi.Machining.MachiningToolHouse.html": { "href": "api/Hi.Machining.MachiningToolHouse.html", "title": "Class MachiningToolHouse | HiAPI-C# 2025", "summary": "Class MachiningToolHouse Namespace Hi.Machining Assembly HiMech.dll Tool House. public class MachiningToolHouse : Dictionary, IDictionary, ICollection>, IReadOnlyDictionary, IReadOnlyCollection>, IEnumerable>, IDictionary, ICollection, IEnumerable, IDeserializationCallback, ISerializable, INcDependency, IMakeXmlSource Inheritance object Dictionary MachiningToolHouse Implements IDictionary ICollection> IReadOnlyDictionary IReadOnlyCollection> IEnumerable> IDictionary ICollection IEnumerable IDeserializationCallback ISerializable INcDependency IMakeXmlSource Inherited Members Dictionary.Add(int, IMachiningTool) Dictionary.Clear() Dictionary.ContainsKey(int) Dictionary.ContainsValue(IMachiningTool) Dictionary.EnsureCapacity(int) Dictionary.GetAlternateLookup() Dictionary.GetEnumerator() Dictionary.OnDeserialization(object) Dictionary.Remove(int) Dictionary.Remove(int, out IMachiningTool) Dictionary.TrimExcess() Dictionary.TrimExcess(int) Dictionary.TryAdd(int, IMachiningTool) Dictionary.TryGetAlternateLookup(out Dictionary.AlternateLookup) Dictionary.TryGetValue(int, out IMachiningTool) Dictionary.Comparer Dictionary.Count Dictionary.Capacity Dictionary.this[int] Dictionary.Keys Dictionary.Values 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) DictionaryUtil.Retrieve(Dictionary, K, out V, bool) DictionaryUtil.GetOrCreate(IDictionary, TKey, TValue) DictionaryUtil.GetOrCreate(IDictionary, TKey, Func) DictionaryUtil.TryGetValueByKeys(IDictionary, IEnumerable, out TValue) StringUtil.ToDotSplitedString(IEnumerable) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningToolHouse() Ctor. public MachiningToolHouse() MachiningToolHouse(XElement, string, string, IProgress) Ctor. public MachiningToolHouse(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths relFile string Relative file path progress IProgress The progress reporter. Properties XName Name for XML IO. public static string XName { get; } Property Value string Methods CreateStickMillingTool() Create a new Tool for UI. The tool ID is 1 if no tool existed; otherwise, the tool ID is the max tool ID plus 1. public KeyValuePair CreateStickMillingTool() Returns KeyValuePair the generated tool id and the generated tool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetToolId(int, IMachiningTool) the function Typically used if the tool has already in the tool house. public void SetToolId(int toolId, IMachiningTool millingTool) Parameters toolId int millingTool IMachiningTool Exceptions ArgumentException throw if toolId has already existed." }, "api/Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html": { "href": "api/Hi.Machining.MachiningVolumeRemovalProc.StepMotionSnapshot.html", "title": "Class MachiningVolumeRemovalProc.StepMotionSnapshot | HiAPI-C# 2025", "summary": "Class MachiningVolumeRemovalProc.StepMotionSnapshot Namespace Hi.Machining Assembly HiMech.dll Represents a snapshot of the machining motion state. public record MachiningVolumeRemovalProc.StepMotionSnapshot : IEquatable Inheritance object MachiningVolumeRemovalProc.StepMotionSnapshot Implements IEquatable 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) Constructors StepMotionSnapshot(DVec3d, DVec3d, SeqPair, Dictionary, double[], bool, IMachiningTool, WorkpieceService, double, CoolantHeatCondition, SortedList) Represents a snapshot of the machining motion state. public StepMotionSnapshot(DVec3d GeomCl, DVec3d ProgramCl, SeqPair Seq, Dictionary AnchorTransformDictionary, double[] McValues, bool EnableSweeping, IMachiningTool MachiningTool, WorkpieceService WorkpieceService, double BackgroundTemperature_K, CoolantHeatCondition CoolantHeatCondition, SortedList FluteZToDzList) Parameters GeomCl DVec3d The geometric CL point. ProgramCl DVec3d The program CL point. Seq SeqPair The sequence pair of transformation matrices. AnchorTransformDictionary Dictionary Dictionary mapping anchors to their transformation matrices. McValues double[] Array of machine values. EnableSweeping bool Whether sweeping is enabled. MachiningTool IMachiningTool The machining tool being used. WorkpieceService WorkpieceService Service that owns the workpiece being machined. BackgroundTemperature_K double Background temperature in Kelvin. CoolantHeatCondition CoolantHeatCondition The coolant heat condition. FluteZToDzList SortedList Sorted list mapping flute Z positions to their deltas. Properties AnchorTransformDictionary Dictionary mapping anchors to their transformation matrices. public Dictionary AnchorTransformDictionary { get; init; } Property Value Dictionary BackgroundTemperature_K Background temperature in Kelvin. public double BackgroundTemperature_K { get; init; } Property Value double CoolantHeatCondition The coolant heat condition. public CoolantHeatCondition CoolantHeatCondition { get; init; } Property Value CoolantHeatCondition EnableSweeping Whether sweeping is enabled. public bool EnableSweeping { get; init; } Property Value bool FluteZToDzList Sorted list mapping flute Z positions to their deltas. public SortedList FluteZToDzList { get; init; } Property Value SortedList GeomCl The geometric CL point. public DVec3d GeomCl { get; init; } Property Value DVec3d MachiningTool The machining tool being used. public IMachiningTool MachiningTool { get; init; } Property Value IMachiningTool McValues Array of machine values. public double[] McValues { get; init; } Property Value double[] ProgramCl The program CL point. public DVec3d ProgramCl { get; init; } Property Value DVec3d Seq The sequence pair of transformation matrices. public SeqPair Seq { get; init; } Property Value SeqPair Workpiece The workpiece data model. public Workpiece Workpiece { get; } Property Value Workpiece WorkpieceService Service that owns the workpiece being machined. public WorkpieceService WorkpieceService { get; init; } Property Value WorkpieceService" }, "api/Hi.Machining.MachiningVolumeRemovalProc.html": { "href": "api/Hi.Machining.MachiningVolumeRemovalProc.html", "title": "Class MachiningVolumeRemovalProc | HiAPI-C# 2025", "summary": "Class MachiningVolumeRemovalProc Namespace Hi.Machining Assembly HiMech.dll Handles the machining volume removal process and related operations. public class MachiningVolumeRemovalProc Inheritance object MachiningVolumeRemovalProc 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) Constructors MachiningVolumeRemovalProc(Func, Func) Initializes a new instance of the MachiningVolumeRemovalProc class. public MachiningVolumeRemovalProc(Func machiningEquipmentGetter, Func workpieceServiceGetter) Parameters machiningEquipmentGetter Func workpieceServiceGetter Func Properties ClMachiningValve Gets the CL machining valve used to control the machining process. public ClMachiningValve ClMachiningValve { get; } Property Value ClMachiningValve Methods ClearCache() Clears the internal cache, including the CL machining valve state and step-related caches. public void ClearCache() StepAssignDummyAttach(WorkpieceService, ClStrip, DVec3d) Creates a dummy attachment point in the CL strip. public static ClStripPos StepAssignDummyAttach(WorkpieceService workpieceService, ClStrip clStrip, DVec3d programCl) Parameters workpieceService WorkpieceService Service that owns the workpiece to attach to. clStrip ClStrip The CL strip to add the attachment to. programCl DVec3d The program CL point for the attachment. Returns ClStripPos The created CL strip position. StepGetGeomBoolCache(ICutter, double, SeqPair, bool, bool?) Gets a geometric boolean cache for the current step based on cutter and motion parameters. public static GeomBoolCache StepGetGeomBoolCache(ICutter cutter, double stepPreferredCubeWidth, SeqPair seq, bool enableSweeping, bool? isFluteTouchingWorkpiece) Parameters cutter ICutter The cutter to use for the operation. stepPreferredCubeWidth double The preferred cube width for discretization. seq SeqPair The sequence pair of transformation matrices. enableSweeping bool Whether to enable sweeping operation. isFluteTouchingWorkpiece bool? Optional flag indicating if the flute is touching the workpiece. Returns GeomBoolCache A geometric boolean cache containing the operation data. Remarks Note that it is hard to know if flute is touching the workpiece by sweeping without making sweeping volume. Checking by non-sweeping geometry may miss the touching part of the sweeping volume. Hence isFluteTouchingWorkpiece should be kept null and be considered obsolete. There is no performance gain from that parameter. Events CutterChanged Event that is triggered when the cutter is changed, providing the previous and current cutter. public event Action> CutterChanged Event Type Action>" }, "api/Hi.Machining.MatInterpolationKit.html": { "href": "api/Hi.Machining.MatInterpolationKit.html", "title": "Class MatInterpolationKit | HiAPI-C# 2025", "summary": "Class MatInterpolationKit Namespace Hi.Machining Assembly HiMech.dll Provides functionality for interpolating between two transformation matrices. public class MatInterpolationKit Inheritance object MatInterpolationKit 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) Constructors MatInterpolationKit(Mat4d, Mat4d) Initializes a new instance of the MatInterpolationKit class with two matrices. public MatInterpolationKit(Mat4d m0, Mat4d m1) Parameters m0 Mat4d The first matrix. m1 Mat4d The second matrix. Properties Mat0 Gets the first matrix. public Mat4d Mat0 { get; } Property Value Mat4d Mat1 Gets the second matrix. public Mat4d Mat1 { get; } Property Value Mat4d RotationAxisAngle Gets the rotation axis and angle between the two matrices. public AxisAngle4d RotationAxisAngle { get; } Property Value AxisAngle4d Trans Gets the translation vector between the two matrices. public Vec3d Trans { get; } Property Value Vec3d Methods GetInterpolation(double) Gets an interpolated matrix between the two matrices. public Mat4d GetInterpolation(double alpha) Parameters alpha double The interpolation factor between 0 and 1. Returns Mat4d The interpolated matrix." }, "api/Hi.Machining.MatRelation.html": { "href": "api/Hi.Machining.MatRelation.html", "title": "Enum MatRelation | HiAPI-C# 2025", "summary": "Enum MatRelation Namespace Hi.Machining Assembly HiMech.dll Defines the relationship between two matrices. public enum MatRelation 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 Identity = 0 Matrices are identical. Linear = 1 Matrices have a linear relationship. NonLinear = 2 Matrices have a non-linear relationship." }, "api/Hi.Machining.MatRelationUtil.html": { "href": "api/Hi.Machining.MatRelationUtil.html", "title": "Class MatRelationUtil | HiAPI-C# 2025", "summary": "Class MatRelationUtil Namespace Hi.Machining Assembly HiMech.dll Utility methods for determining relationships between matrices. public static class MatRelationUtil Inheritance object MatRelationUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMatRelation(SeqPair) Gets the relationship between two matrices in a sequence pair. public static MatRelation GetMatRelation(SeqPair seq) Parameters seq SeqPair The sequence pair containing two matrices. Returns MatRelation The relationship between the matrices. GetMatRelation(Mat4d, Mat4d) Gets the relationship between two matrices. public static MatRelation GetMatRelation(Mat4d m0, Mat4d m1) Parameters m0 Mat4d The first matrix. m1 Mat4d The second matrix. Returns MatRelation The relationship between the matrices." }, "api/Hi.Machining.Sweptable.html": { "href": "api/Hi.Machining.Sweptable.html", "title": "Class Sweptable | HiAPI-C# 2025", "summary": "Class Sweptable Namespace Hi.Machining Assembly HiCbtr.dll Sweptable geometry. public class Sweptable : IGetSweptable, IVolumeRemover, IExpandToBox3d, IDisposable Inheritance object Sweptable Implements IGetSweptable IVolumeRemover 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Sweptable(Stl, double) Ctor. public Sweptable(Stl stl, double nativeTopoStlFractionTolerance) Parameters stl Stl stl nativeTopoStlFractionTolerance double Fraction tolerance for native topology STL. Properties NativeStl Get geometry. public NativeStl NativeStl { get; } Property Value NativeStl geoemtry NativeTopoStl3d Get geometry. public NativeTopoStl3d NativeTopoStl3d { get; } Property Value NativeTopoStl3d geoemtry NativeTopoStl3wfr Gets the native topology STL with fraction tolerance. public NativeTopoStl3wfr NativeTopoStl3wfr { get; } Property Value NativeTopoStl3wfr Stl Gets the STL geometry. public Stl Stl { get; } Property Value Stl Methods 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 GetSweptable(double) Get Sweptable. public Sweptable GetSweptable(double fractionTolerance) Parameters fractionTolerance double The fraction tolerance for the sweptable. Returns Sweptable Sweptable Sweep(Mat4d, Mat4d) Get swept geometry. public CachedTris Sweep(Mat4d pre, Mat4d cur) Parameters pre Mat4d previous transform matrix cur Mat4d current transform matrix Returns CachedTris Swept geometry Sweep(Mat4d, double) Sweep. only available for the geometry that does not contains near point or points on the same line on the same plane. public CachedTris Sweep(Mat4d cur, double fractionTolerance) Parameters cur Mat4d Current transform matrix fractionTolerance double Fraction tolerance for the operation Returns CachedTris Swept geometry as cached triangles" }, "api/Hi.Machining.SweptableUtil.html": { "href": "api/Hi.Machining.SweptableUtil.html", "title": "Class SweptableUtil | HiAPI-C# 2025", "summary": "Class SweptableUtil Namespace Hi.Machining Assembly HiCbtr.dll Util for Sweptable. public static class SweptableUtil Inheritance object SweptableUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AddBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool) Add volume by sweeping volume — the boolean-union dual of RemoveBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool). Deposits the swept solid into the geometry (additive manufacturing: weld / cladding / FDM bead), rather than removing it. public static UnmanagedAddition AddBySweepingVolume(this CubeTree cubeTree, IGetSweptable sweptable, Mat4d beginMat, Mat4d endMat, double preferredCubeWidth = 0, double fractionTolerance = 0, bool enableBuildingContactContours = false, bool isAggressiveAdd = false) Parameters cubeTree CubeTree geom to be volume-added sweptable IGetSweptable swaptable beginMat Mat4d previous transformation matrix in sequence endMat Mat4d current transformation matrix in sequence preferredCubeWidth double preferred cube width for the operation, defaults to cubeTree's resolution if 0 fractionTolerance double fraction tolerance for the sweptable, defaults to preferredCubeWidth * 1e-4 if 0 enableBuildingContactContours bool enable building contours of the newly created surface isAggressiveAdd bool whether to use aggressive adding mode Returns UnmanagedAddition Addition RemoveBySweepingVolume(CubeTree, IGetSweptable, Mat4d, Mat4d, double, double, bool, bool) Remove volume by sweeping volume. public static UnmanagedSubstraction RemoveBySweepingVolume(this CubeTree cubeTree, IGetSweptable sweptable, Mat4d beginMat, Mat4d endMat, double preferredCubeWidth = 0, double fractionTolerance = 0, bool enableBuildingContactContours = false, bool isAggressiveCut = false) Parameters cubeTree CubeTree geom to be volume-removed sweptable IGetSweptable swaptable beginMat Mat4d previous transformation matrix in sequence endMat Mat4d current transformation matrix in sequence preferredCubeWidth double preferred cube width for the operation, defaults to cubeTree's resolution if 0 fractionTolerance double fraction tolerance for the sweptable, defaults to preferredCubeWidth * 1e-4 if 0 enableBuildingContactContours bool enable building contact contours isAggressiveCut bool whether to use aggressive cutting mode Returns UnmanagedSubstraction Removal" }, "api/Hi.Machining.ToolNotFoundException.html": { "href": "api/Hi.Machining.ToolNotFoundException.html", "title": "Class ToolNotFoundException | HiAPI-C# 2025", "summary": "Class ToolNotFoundException Namespace Hi.Machining Assembly HiMech.dll Exception thrown when a tool with the specified ID is not found. public class ToolNotFoundException : Exception, ISerializable Inheritance object Exception ToolNotFoundException Implements ISerializable Inherited Members Exception.GetBaseException() Exception.GetType() Exception.ToString() Exception.Data Exception.HelpLink Exception.HResult Exception.InnerException Exception.Message Exception.Source Exception.StackTrace Exception.TargetSite Exception.SerializeObjectState object.Equals(object) object.Equals(object, object) object.GetHashCode() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ToolNotFoundException(int) Initializes a new instance of the ToolNotFoundException class with the specified tool ID. public ToolNotFoundException(int toolId) Parameters toolId int The ID of the tool that was not found. ToolNotFoundException(int, string) Initializes a new instance of the ToolNotFoundException class with the specified tool ID and error message. public ToolNotFoundException(int toolId, string msg) Parameters toolId int The ID of the tool that was not found. msg string The error message that explains the reason for the exception. Properties ToolId Gets or sets the ID of the tool that was not found. public int ToolId { get; set; } Property Value int" }, "api/Hi.Machining.html": { "href": "api/Hi.Machining.html", "title": "Namespace Hi.Machining | HiAPI-C# 2025", "summary": "Namespace Hi.Machining Classes FreeformRemover Represents a freeform cutting tool that can be used in machining operations. This cutter type supports complex geometries for both the noble (upper) part and the shaper (cutting) part. MachiningToolHouse Tool House. MachiningVolumeRemovalProc Handles the machining volume removal process and related operations. MachiningVolumeRemovalProc.StepMotionSnapshot Represents a snapshot of the machining motion state. MatInterpolationKit Provides functionality for interpolating between two transformation matrices. MatRelationUtil Utility methods for determining relationships between matrices. Sweptable Sweptable geometry. SweptableUtil Util for Sweptable. ToolNotFoundException Exception thrown when a tool with the specified ID is not found. Interfaces ICutter Interface of cutter. ICutterAnchorable IGetAnchor of cutter. IGetSweptable Interface of Get Sweptable. IMachiningTool Interface for machining tools that combine a holder and a cutter. IVolumeRemover Only inherit from IGetInitStickConvex and IGetSweptable. Enums MatRelation Defines the relationship between two matrices." }, "api/Hi.MachiningProcs.AllowNoActiveSessionAttribute.html": { "href": "api/Hi.MachiningProcs.AllowNoActiveSessionAttribute.html", "title": "Class AllowNoActiveSessionAttribute | HiAPI-C# 2025", "summary": "Class AllowNoActiveSessionAttribute Namespace Hi.MachiningProcs Assembly HiNc.dll Marks a session-scoped controller action as callable without an active session, exempting it from RequireActiveSessionAttribute. Use on the session lifecycle entry points (BeginSession / EndSession), which by definition run when no session exists yet. [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] public sealed class AllowNoActiveSessionAttribute : Attribute Inheritance object Attribute AllowNoActiveSessionAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() 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)" }, "api/Hi.MachiningProcs.AllowNoLoadedProjectAttribute.html": { "href": "api/Hi.MachiningProcs.AllowNoLoadedProjectAttribute.html", "title": "Class AllowNoLoadedProjectAttribute | HiAPI-C# 2025", "summary": "Class AllowNoLoadedProjectAttribute Namespace Hi.MachiningProcs Assembly HiNc.dll Marks a project-level controller action as callable without a loaded project, exempting it from RequireLoadedProjectAttribute. Use on the endpoints that create or load a project (which by definition run when no project is open yet). [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] public sealed class AllowNoLoadedProjectAttribute : Attribute Inheritance object Attribute AllowNoLoadedProjectAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() 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)" }, "api/Hi.MachiningProcs.ApiActionResult.html": { "href": "api/Hi.MachiningProcs.ApiActionResult.html", "title": "Class ApiActionResult | HiAPI-C# 2025", "summary": "Class ApiActionResult Namespace Hi.MachiningProcs Assembly HiNc.dll The shared outcome envelope for a web-API action: whether it succeeded and the messages it reported, in order. Returned by the project-level surface (LocalProjectServiceController) and, on the no-active-session boundary, by the session-scoped surface (SessionShellController via RequireActiveSessionAttribute). A REST / AI caller therefore reads the progress / success / error notifications inline in the HTTP response instead of only out-of-band via the SignalR sinks, and can branch on Success without parsing severities. public record ApiActionResult : IEquatable Inheritance object ApiActionResult Implements IEquatable 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) Constructors ApiActionResult(bool, IReadOnlyList) The shared outcome envelope for a web-API action: whether it succeeded and the messages it reported, in order. Returned by the project-level surface (LocalProjectServiceController) and, on the no-active-session boundary, by the session-scoped surface (SessionShellController via RequireActiveSessionAttribute). A REST / AI caller therefore reads the progress / success / error notifications inline in the HTTP response instead of only out-of-band via the SignalR sinks, and can branch on Success without parsing severities. public ApiActionResult(bool Success, IReadOnlyList Messages) Parameters Success bool False when any reported message is an error; true otherwise. Messages IReadOnlyList The messages reported during the call, in arrival order. Properties Messages The messages reported during the call, in arrival order. public IReadOnlyList Messages { get; init; } Property Value IReadOnlyList Success False when any reported message is an error; true otherwise. public bool Success { get; init; } Property Value bool Methods FromCollector(MessageCollector, bool?) Builds a result from a per-call MessageCollector. Success is inferred as “no error-severity message was reported” unless success overrides it. public static ApiActionResult FromCollector(MessageCollector collector, bool? success = null) Parameters collector MessageCollector The per-call sink whose messages to flatten. success bool? Explicit success flag, or null to infer from the messages. Returns ApiActionResult The outcome envelope. NoActiveSession() The canonical “no active session” result: a single configuration error telling the caller to start a session first. Returned (with HTTP 409) by RequireActiveSessionAttribute when a session-scoped endpoint is invoked outside a session. public static ApiActionResult NoActiveSession() Returns ApiActionResult An unsuccessful envelope carrying the guidance message. NoProjectLoaded() The canonical “no project loaded” result: a single configuration error telling the caller to create or load a project first. Returned (with HTTP 409) by RequireLoadedProjectAttribute when a project-level endpoint is invoked before any project is open. public static ApiActionResult NoProjectLoaded() Returns ApiActionResult An unsuccessful envelope carrying the guidance message." }, "api/Hi.MachiningProcs.ConfigStepFunc.html": { "href": "api/Hi.MachiningProcs.ConfigStepFunc.html", "title": "Delegate ConfigStepFunc | HiAPI-C# 2025", "summary": "Delegate ConfigStepFunc Namespace Hi.MachiningProcs Assembly HiMech.dll Delegate for configuring a milling step with additional arguments. public delegate object ConfigStepFunc(MachiningStep millingStep, object arg) Parameters millingStep MachiningStep The milling step to configure. arg object Additional arguments for configuration. Returns object The configuration result. 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)" }, "api/Hi.MachiningProcs.IMachiningProjectGetter.html": { "href": "api/Hi.MachiningProcs.IMachiningProjectGetter.html", "title": "Interface IMachiningProjectGetter | HiAPI-C# 2025", "summary": "Interface IMachiningProjectGetter Namespace Hi.MachiningProcs Assembly HiNc.dll Interface for objects that can provide a MachiningProject instance. public interface IMachiningProjectGetter 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) Methods GetMachiningProject() Gets the MachiningProject instance. MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance." }, "api/Hi.MachiningProcs.IProjectService.html": { "href": "api/Hi.MachiningProcs.IProjectService.html", "title": "Interface IProjectService | HiAPI-C# 2025", "summary": "Interface IProjectService Namespace Hi.MachiningProcs Assembly HiNc.dll Interface for services that manage machining projects. public interface IProjectService : IMachiningProjectGetter Inherited Members IMachiningProjectGetter.GetMachiningProject() 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 MachiningProject Gets or sets the machining project instance. MachiningProject MachiningProject { get; set; } Property Value MachiningProject Methods GetLocalProjectService() Get Local Project Service as base-service. LocalProjectService GetLocalProjectService() Returns LocalProjectService Local Project Service" }, "api/Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html": { "href": "api/Hi.MachiningProcs.LocalProjectService.MachiningProjectChangedDelegate.html", "title": "Delegate LocalProjectService.MachiningProjectChangedDelegate | HiAPI-C# 2025", "summary": "Delegate LocalProjectService.MachiningProjectChangedDelegate Namespace Hi.MachiningProcs Assembly HiNc.dll Delegate for machining project changed events. public delegate void LocalProjectService.MachiningProjectChangedDelegate(MachiningProject project, string projectPath) Parameters project MachiningProject The new machining project. projectPath string The path to the project file. 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)" }, "api/Hi.MachiningProcs.LocalProjectService.html": { "href": "api/Hi.MachiningProcs.LocalProjectService.html", "title": "Class LocalProjectService | HiAPI-C# 2025", "summary": "Class LocalProjectService Namespace Hi.MachiningProcs Assembly HiNc.dll Root(Local) project service. Apply absolute file path. public class LocalProjectService : IProjectService, IMachiningProjectGetter, IMachiningService, IGetMachiningEquipment, IStepPropertyAccessHost, IDisposable Inheritance object LocalProjectService Implements IProjectService IMachiningProjectGetter IMachiningService IGetMachiningEquipment IStepPropertyAccessHost 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks LocalProjectService handles the runtime data and cache generally not requires configuration IO. Compare to MachiningProject, LocalProjectService also handles events that does not reset on the MachiningProject been reloaded. Constructors LocalProjectService(ILogger) Ctor. public LocalProjectService(ILogger logger = null) Parameters logger ILogger Optional logger instance. Properties ActiveNcRunner Gets the active NC runner based on EnableSoftNcRunner. public INcRunner ActiveNcRunner { get; } Property Value INcRunner BaseDirectory Gets the project base directory (relative-path root). public string BaseDirectory { get; } Property Value string BoundSelectorHost Gets the bound selector host for managing selection boundaries. public BoundSelectorHost BoundSelectorHost { get; } Property Value BoundSelectorHost ClRunner Gets the NX-CL (CLSF) runner of the project (NxClRunner); null when there is no project. public INcRunner ClRunner { get; } Property Value INcRunner ClStrip Gets the cutter location strip containing the machining steps. public ClStrip ClStrip { get; } Property Value ClStrip CsvRunner Gets the CSV runner — the CSV suit's pipeline (GeneralCsvRunner); null when there is no project. public INcRunner CsvRunner { get; } Property Value INcRunner DictionaryColorGuide Gets the color guide for dictionary-based coloring. public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide EnablePauseOnFailure Gets or sets whether to pause execution on failure. public bool EnablePauseOnFailure { get; set; } Property Value bool EnableSoftNcRunner Switches between SoftNcRunner and the legacy HardNcRunner. Default true (2026-07-17): SoftNcRunner is the flagship NC pipeline; set false to fall back to HardNcRunner for the features that still depend on it (e.g. Hi.NcOpt.NcOptProc optimization reads NcLines). Will be removed when HardNcRunner is fully replaced. public bool EnableSoftNcRunner { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool Fixture Gets or sets the fixture. public Fixture Fixture { get; set; } Property Value Fixture Global global variable for SessionShell. Not save on XML. public Dictionary Global { get; set; } Property Value Dictionary InspectingKey Gets or sets the current inspecting key for visualization. When set, updates the inspecting quantity function. public string InspectingKey { get; set; } Property Value string InspectingQuantityFunc Gets the function that retrieves the quantity value for the current inspecting key. public Func InspectingQuantityFunc { get; } Property Value Func IsCollisionDetectionEnabled Gets whether collision detection is currently enabled. public bool IsCollisionDetectionEnabled { get; } Property Value bool LastMillingParaTrainResult Snapshot of the most recent TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara, IProgress) / ReTrainMillingPara(SampleFlag, double, string, CancellationToken, IProgress) outcome — sampleFlags, correlation R, filtered sample count, output file and the built parameter's XML — so a caller (e.g. the webservice) can read the training result without re-opening the output .mp file. Service lifetime, last-wins; null until the first training call completes. Deliberately not cleared by ResetRuntime(IProgress) so the result stays readable after a post-run reset. public MillingParaTrainResult LastMillingParaTrainResult { get; } Property Value MillingParaTrainResult Logger Gets the logger instance for this service. public ILogger Logger { get; } Property Value ILogger MachiningActRunner Gets the machining act runner responsible for executing machining operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningChain Gets or sets the machining chain. public IMachiningChain MachiningChain { get; set; } Property Value IMachiningChain MachiningChainFile Gets or sets the file path of the solid machining chain. This is used for XML serialization and file management. public string MachiningChainFile { get; set; } Property Value string MachiningEquipment Gets or sets the machining equipment used for milling. Updates related components when changed. public MachiningEquipment MachiningEquipment { get; set; } Property Value MachiningEquipment MachiningMotionResolution Gets or sets the machining motion resolution strategy (project-level; backed by MachiningActRunner). public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningProject Gets or sets the machining project. The setter runs the full change lifecycle (teardown of the outgoing project, then Hi.MachiningProcs.LocalProjectService.OnMachiningProjectChanged()), so external assignment — e.g. through MachiningProject or a desktop host — can no longer bypass the hooks and leave the runner config un-wired (equipment-split P2). public MachiningProject MachiningProject { get; set; } Property Value MachiningProject MachiningProjectPath public string MachiningProjectPath { get; set; } Property Value string MachiningResolution_mm Gets the machining resolution (mm) — the act-runner value, or the workpiece bottom resolution when unset. Set via SetMachiningResolution_mm(double, IProgress) (have-both: the caller injects the message host). Seeded from InitResolution when a project is loaded/assigned; an explicit setting then survives ResetRuntime(IProgress) and workpiece swaps. public double MachiningResolution_mm { get; } Property Value double MachiningSession Gets the current machining session. public MachiningSession MachiningSession { get; set; } Property Value MachiningSession MachiningTool Gets or sets the machining tool. public IMachiningTool MachiningTool { get; set; } Property Value IMachiningTool MachiningToolHouse Gets or sets the machining tool house containing tool configurations. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingStepLuggageReader Gets the reader for accessing milling step luggage data. public ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcDiagnosticProgress NC-pipeline diagnostic sink on the IMessage channel — sibling of StepDiagnosticProgress. Stable for the service lifetime (created in the ctor, only Cleared on reset, never swapped per session). public NcDiagnosticProgress NcDiagnosticProgress { get; } Property Value NcDiagnosticProgress NcManipulationDiagnosticProgress Gets the NC-manipulation diagnostic sink — the second diagnostic home, for operations that rework an already-played NC/CL program (writeback conversion, NC optimization) as opposed to the play-time pipeline diagnostics in NcDiagnosticProgress. Keeping the two scenarios in separate homes lets a play reset clear run diagnostics without discarding manipulation results, and vice versa; each manipulation run clears this home at its start so it always holds the latest run. public NcDiagnosticProgress NcManipulationDiagnosticProgress { get; } Property Value NcDiagnosticProgress NcOptProc Gets the NC optimization processor for optimizing NC programs. public NcOptProc NcOptProc { get; } Property Value NcOptProc NcRunner Gets the legacy NC runner. public HardNcRunner NcRunner { get; } Property Value HardNcRunner PacePlayer Gets the pace player for controlling execution pace of milling operations. public PacePlayer PacePlayer { get; } Property Value PacePlayer ProjectDirectory Gets the directory containing the machining project. public string ProjectDirectory { get; } Property Value string ScriptOptions Project-level Roslyn script options for session script execution. Initialized from DefaultScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionShell Gets the shell API for the active session. Created at BeginSession(), nulled at EndSession(); null outside a session — its lifetime is unified with MachiningSession, so a non-null instance always implies an active session. public SessionShell SessionShell { get; } Property Value SessionShell ShellProgress Session-level routine / lifecycle message sink on the IMessage channel (cache reset, file progress, …). Owned by MachiningSession (truly session-scoped); null outside a session. Use null-safely. public ShellProgress ShellProgress { get; } Property Value ShellProgress SoftNcRunner Facade over the active suit's NC pipeline (MachiningProject.NcRunnerSuit.SoftNcRunner). The getter is null-safe (returns null when there is no project/suit). The setter is the single rewiring entry point: it assigns the suit's runner and re-binds everything that depends on it (proxy hosts, kinematics provider, session script dictionaries, and the per-session NcRunnerSessionState). public SoftNcRunner SoftNcRunner { get; set; } Property Value SoftNcRunner StepDiagnosticProgress Step-anchored message sink on the IMessage channel, threaded through the runner / act-processing chain. public StepDiagnosticProgress StepDiagnosticProgress { get; } Property Value StepDiagnosticProgress StepPropertyAccessDictionary Gets the dictionary mapping property keys to their access methods. public ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping Workpiece Gets or sets the workpiece to be machined. Ensures proper initialization of workpiece properties. public Workpiece Workpiece { get; set; } Property Value Workpiece WorkpieceService Gets the workpiece runtime service. public WorkpieceService WorkpieceService { get; } Property Value WorkpieceService XyzabcSolver Gets the shared kinematics solver — the third topology entity of the equipment split, owned by the service (runtime side) rather than the persisted project graph. Rebuilt by Hi.MachiningProcs.LocalProjectService.BuildCoordinateConverter() whenever the machine chain changes. public XyzabcSolver XyzabcSolver { get; } Property Value XyzabcSolver Methods Act(IAct, ISentenceCarrier, CancellationToken?) Executes an act and collects all results. public void Act(IAct act, ISentenceCarrier sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to execute. sourceCommand ISentenceCarrier The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. BeginNcRunner() Prepares the NC runner for a play session by initializing the workpiece meshed geometry (when not already initialized), reporting progress through ShellProgress. public void BeginNcRunner() BeginSession() Initiate a simulation session. Clear the state from previous session (if existed). public void BeginSession() CheckStrokeLimitOnStep() Checks stroke limit at the current MC position. Uses IStrokeLimitConfig when EnableSoftNcRunner is active, otherwise falls back to CheckStrokeLimit(DVec3d, IProgress). public bool CheckStrokeLimitOnStep() Returns bool True if within limits or no limits configured. CloseProject() Closes the current project. public void CloseProject() ConvertClToNcFiles(string, IProgress) Converts the CLSF play of the current session into Fanuc NC files (writeback synthesis — MSYS tilt becomes G68.2, RTCP becomes G43.4). Play a CL file on an XYZABC machine chain first, then convert; see ConvertClToNcFiles(string, string, IProgress). public IReadOnlyList ConvertClToNcFiles(string relNcFileTemplate = \"Output/[NcName].nc\", IProgress messageProgress = null) Parameters relNcFileTemplate string Output path template; [NcName] is replaced by the source file name. messageProgress IProgress Optional message sink for lifecycle reporting. Returns IReadOnlyList Written NC file paths, relative to the project base directory. 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 EnableCollisionDetection(bool, IProgress) Enables or disables collision detection. When enabling, prepares the collidable items; when disabling, resets collision flags. Progress is reported to the injected messageProgress. public void EnableCollisionDetection(bool value, IProgress messageProgress = null) Parameters value bool Whether collision detection should be enabled. messageProgress IProgress Sink-agnostic message host for progress reporting. EndSession() Ends the current machining session and releases associated resources. public void EndSession() FixedPace(double, double) Creates a fixed machining motion resolution with the specified linear (mm) and rotary (deg) resolutions. public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. Returns FixedMachiningMotionResolution GetInspectingKeyPresentName(StringLocalizer) Gets the localized presentation name for the current inspecting key. public string GetInspectingKeyPresentName(StringLocalizer stringLocalizer) Parameters stringLocalizer StringLocalizer The string localizer to use for localization Returns string The localized presentation name GetLocalProjectService() Get Local Project Service as base-service. public LocalProjectService GetLocalProjectService() Returns LocalProjectService Local Project Service GetMachiningEquipment() Get MachiningEquipment. public MachiningEquipment GetMachiningEquipment() Returns MachiningEquipment MachiningEquipment GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Source-compatible delegate for callers written against the pre-rename name — the interface's default member is not reachable through a concrete-typed reference, so it is restated here. [Obsolete(\"Renamed to GetMachiningEquipment.\")] public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment The loaded project's equipment, or null when none is loaded. GetSessionShell() Returns the session shell that exposes the runtime surface of the active machining session. public ISessionShell GetSessionShell() Returns ISessionShell LoadProject(string) Loads a project by file path relative to the admin directory. public void LoadProject(string projectPath) Parameters projectPath string The absolute file path NewProject(string) Creates a new project by file path. public void NewProject(string projectPath) Parameters projectPath string The absolute file path PlayBrandNcFile(string, string) Plays a famous-brand NC code file from the specified path with pace control (no kind dispatch — always the brand runner). public void PlayBrandNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths relFilePath string Relative path to the NC file PlayClFile(string, string) Plays an NX-CL (CLSF) file from the specified path. public void PlayClFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CLSF file. PlayCsvFile(string, string) Plays a CSV file from the specified path. public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. PlayNc(string, string) Plays NC commands from raw text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program PlayNcFile(string, string, NcKind) Plays an NC program file from the specified path, the runner picked by kind (Auto = by file extension: known CL/CSV extensions map to those runners, anything else plays as brand NC). public void PlayNcFile(string baseDirectory, string relFilePath, NcKind kind = NcKind.Auto) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the NC program file. kind NcKind Which runner plays the file; Auto detects by extension. PowerReset() Performs a controller power reset, modelling a power-off / power-on cycle: Every IPowerResettable dependency clears its volatile subset. Persistent dependency state (controller parameters, Fanuc #500-#999, etc.) is left intact. The active MachiningSession's NcRunnerSessionState is reset so the per-layer SyntaxPiece dataflow — including Vars.Volatile, modal carries, and the init seed — is dropped. The next RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) call re-initialises everything from scratch. Without the second step, calling PowerReset while a project is loaded would leave volatile commons alive across the supposed power cycle (they live in the SyntaxPiece JSON dataflow rather than in any IPowerResettable dependency). public void PowerReset() ProcAct(IAct, ISentenceCarrier, CancellationToken?) Processes an act and returns the results. public IEnumerable ProcAct(IAct act, ISentenceCarrier sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to process. sourceCommand ISentenceCarrier The source command that triggered the act. cancellationToken CancellationToken? Cancellation token to cancel the operation. Returns IEnumerable Enumerable of results from processing the act. ReTrainMillingPara(SampleFlag, double, string, CancellationToken, IProgress) Train Milling Parameter. public void ReTrainMillingPara(SampleFlag sampleFlags, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, IProgress messageProgress = null) Parameters sampleFlags SampleFlag outlierRatio double dstRelFile string cancellationToken CancellationToken messageProgress IProgress ReadNcRunnerSuit(string) Reads an NcRunnerSuit from relFile (project relative) and makes it the active suit — switching the active parser (NC or CSV) — then re-binds every host hookup (see Hi.MachiningProcs.LocalProjectService.RewireForActiveSuit()). Refused while an NC program is playing: the runner's per-session layers are mid-enumeration and cannot be safely reset (an IProgress error is reported instead). public void ReadNcRunnerSuit(string relFile) Parameters relFile string RefreshDrawing() Refreshes the visual display of the milling course. public void RefreshDrawing() Reg(XFactory) Bootstraps XML-factory registration for the simulation pipeline. Entry points must call this once at startup before any project XML is deserialized. Pass a custom XFactory for test isolation, or null to populate Default. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory RegisterStepVariable(string, string, string, string, Func) Registers a step variable so downstream components (strip charts, CSV exports, scripting) can read it from MachiningStep. Idempotent on key. public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key. name string Human-readable name; may equal key. unit string Physical unit name (PhysicsUnit); nullable. formatString string Display format string; nullable. variableFunc Func Optional value extractor; nullable when the value comes from the step's flex dictionary. ReloadProject() Reloads the current project. public void ReloadProject() ResetRuntime(IProgress) Reset the runtime states including: meshed geometry, collision flags, machine tool position, CL strips, message buffer and etc.. MachiningResolution_mm is deliberately left untouched so an explicit setting survives resets; it is seeded from InitResolution only when a project is loaded/assigned. public void ResetRuntime(IProgress messageProgress = null) Parameters messageProgress IProgress RunBrandNcFile(string, string) Runs a famous-brand NC code file from the specified path (no kind dispatch — always the brand runner). public IEnumerable RunBrandNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. If the value is null, BaseDirectory substitutes the value. relFilePath string Relative path to the NC file. Returns IEnumerable An enumerable of actions to be executed. RunClFile(string, string) Runs an NX-CL (CLSF) file from the specified path. public IEnumerable RunClFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CLSF file. Returns IEnumerable An enumerable of actions to be executed. RunCsvFile(string, string) Runs a CSV file from the specified path. public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the CSV file. Returns IEnumerable An enumerable of actions to be executed. RunNc(string, string) Runs NC commands from raw text. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string The NC command text to execute fileNameAlternative string Alternative name to associate with the NC program Returns IEnumerable An enumerable of actions to be executed RunNcFile(string, string, NcKind) Runs an NC program file from the specified path, the runner picked by kind (Auto = by file extension: known CL/CSV extensions map to those runners, anything else runs as brand NC). public IEnumerable RunNcFile(string baseDirectory, string relFilePath, NcKind kind = NcKind.Auto) Parameters baseDirectory string Base directory for resolving relative paths. relFilePath string Relative path to the NC program file. kind NcKind Which runner runs the file; Auto detects by extension. Returns IEnumerable An enumerable of actions to be executed. RunToLineEnd() Advances the player by one NC/CSV line and pauses. public void RunToLineEnd() SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string projectPath) Parameters projectPath string The absolute file path SaveProject() Save project by project path. public void SaveProject() SetMachiningResolution_mm(double, IProgress) Sets the machining resolution (mm). Progress is reported to the injected messageProgress. public void SetMachiningResolution_mm(double value, IProgress messageProgress = null) Parameters value double The machining resolution in millimeters. messageProgress IProgress Sink-agnostic message host for progress reporting. TrainMillingPara(SampleFlag, bool, double, string, CancellationToken, ICuttingPara, IProgress) Train Milling Parameter. public void TrainMillingPara(SampleFlag sampleFlags, bool enableFzOnlyDuringDrilling, double outlierRatio, string dstRelFile, CancellationToken cancellationToken, ICuttingPara paraTemplate, IProgress messageProgress = null) Parameters sampleFlags SampleFlag enableFzOnlyDuringDrilling bool outlierRatio double dstRelFile string cancellationToken CancellationToken paraTemplate ICuttingPara messageProgress IProgress UpdateByMachiningChain() Updates components when the machining chain changes. public void UpdateByMachiningChain() UpdateByMachiningEquipment() Call on MachiningEquipment Or MachiningChainChanged. i.e. Update By MachiningEquipment Or MachiningChain. The function is called on MachiningEquipment and its delegate property changed. If the changing is raised outer from THIS service, this updating function should be manual called. public void UpdateByMachiningEquipment() UpdateIdealMillingToolOffsetTableByToolHouse() Updates the ideal milling tool offset table based on the current tool house configuration. public void UpdateIdealMillingToolOffsetTableByToolHouse() WriteNcRunnerSuit(string) Writes the active NcRunnerSuit to relFile (project relative). Pure file IO — does not update any in-memory pointer. public void WriteNcRunnerSuit(string relFile) Parameters relFile string WriteShotFile(TimeSpan, string, IProgress) Writes time-based shot data to a file with the specified sampling period. public void WriteShotFile(TimeSpan samplingPeriod, string relFileTemplate = \"Output/[NcName].shot.csv\", IProgress messageProgress = null) Parameters samplingPeriod TimeSpan The time period between samples relFileTemplate string Template for the output file path, can include [NcName] placeholder messageProgress IProgress Optional caller-supplied progress sink for start/finish messages. WriteStepFile(string, IProgress) Writes step-based data to a file. public void WriteStepFile(string relFileTemplate = \"Output/[NcName].step.csv\", IProgress messageProgress = null) Parameters relFileTemplate string Template for the output file path, can include [NcName] placeholder messageProgress IProgress Optional caller-supplied progress sink for start/finish messages. Events MachiningProjectChanged Event raised when the machining project changes. public event LocalProjectService.MachiningProjectChangedDelegate MachiningProjectChanged Event Type LocalProjectService.MachiningProjectChangedDelegate MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate OnNcFileRan Event triggered after an NC file is executed. public event Action OnNcFileRan Event Type Action OnShellMessageAdded App-lifetime bridge for ShellProgress appends. Because ShellProgress is session-scoped (recreated at BeginSession(), null outside a session), a consumer that wants every session's shell messages subscribes here once instead of chasing the swapping instance — BeginSession() re-wires the bridge to the new sink each session, the same way OnSourcedActEntry is bridged. Carries the append index and the message. public event Action OnShellMessageAdded Event Type Action OnShellMessageCleared App-lifetime bridge for ShellProgress clears (see OnShellMessageAdded). public event Action OnShellMessageCleared Event Type Action OnSourcedActEntry App-lifetime event triggered for each SourcedActEntry produced during NC/CSV execution. public event Action OnSourcedActEntry Event Type Action OnSyntaxPieceRan Raised after each SyntaxPiece has been run during NC execution (app lifetime). public event Action OnSyntaxPieceRan Event Type Action OnUpdatedInspectingQuantityFunc Event triggered when the inspecting quantity function is updated. public event Action OnUpdatedInspectingQuantityFunc Event Type Action WorkpieceChanged Event that is raised when the workpiece is changed. public event Action> WorkpieceChanged Event Type Action> Remarks This event is triggered whenever the workpiece property is modified. Subscribers can use this event to respond to changes in the workpiece configuration, such as updating visualizations or recalculating machining parameters. The event provides both the previous and new workpiece values through a SeqPair." }, "api/Hi.MachiningProcs.LocalProjectServiceController.html": { "href": "api/Hi.MachiningProcs.LocalProjectServiceController.html", "title": "Class LocalProjectServiceController | HiAPI-C# 2025", "summary": "Class LocalProjectServiceController Namespace Hi.MachiningProcs Assembly HiNc.dll HTTP controller exposing the project-level (session-independent) operations of Hi.MachiningProcs.LocalProjectServiceController.LocalProjectService — the lean API-user surface, parallel to SessionShellController (which mirrors the session-scoped SessionShell). A controller mirrors exactly one body; project-level settings belong here, not bolted onto the session controller. [ApiController] [Route(\"api/[controller]/[action]\")] [ProducesResponseType(typeof(ApiActionResult), 409)] public class LocalProjectServiceController : ControllerBase Inheritance object ControllerBase LocalProjectServiceController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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) Remarks This controller also demonstrates the per-request message-return pattern: each mutating action injects a fresh MessageCollector into the have-both project-level function (one taking IProgress messageProgress) and returns the collected IMessage items in its HTTP response. A REST / AI caller therefore sees the progress / success / error notifications inline in the response, rather than only out-of-band via the SignalR broadcast. The shared ApiActionResult envelope is also used by the session-scoped surface: RequireActiveSessionAttribute returns it (with HTTP 409) to answer a “no active session” call, rather than throwing a null-reference 500. Constructors LocalProjectServiceController(LocalProjectService) Initializes a new instance. Hi.MachiningProcs.LocalProjectServiceController.LocalProjectService is a DI singleton. public LocalProjectServiceController(LocalProjectService projectService) Parameters projectService LocalProjectService Methods EnableCollisionDetection(bool) Enables or disables collision detection and returns the messages reported during the call (e.g. the “preparing collision items” progress / done notifications). [HttpPost] public ApiActionResult EnableCollisionDetection(bool value) Parameters value bool Whether collision detection should be enabled. Returns ApiActionResult IsCollisionDetectionEnabled() Gets whether collision detection is currently enabled (project-level read; no session needed). [HttpGet] public bool IsCollisionDetectionEnabled() Returns bool SetMachiningResolution_mm(double) Sets the machining resolution (mm) and returns the messages reported during the call. [HttpPost] public ApiActionResult SetMachiningResolution_mm(double value) Parameters value double The machining resolution in millimeters. Returns ApiActionResult" }, "api/Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html": { "href": "api/Hi.MachiningProcs.MachiningActRunner.MachiningStepBuiltDelegate.html", "title": "Delegate MachiningActRunner.MachiningStepBuiltDelegate | HiAPI-C# 2025", "summary": "Delegate MachiningActRunner.MachiningStepBuiltDelegate Namespace Hi.MachiningProcs Assembly HiMech.dll Delegate for configuring a step with previous and current step information. public delegate void MachiningActRunner.MachiningStepBuiltDelegate(MachiningStep preStep, MachiningStep curStep) Parameters preStep MachiningStep The previous milling step. curStep MachiningStep The current milling step. 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)" }, "api/Hi.MachiningProcs.MachiningActRunner.html": { "href": "api/Hi.MachiningProcs.MachiningActRunner.html", "title": "Class MachiningActRunner | HiAPI-C# 2025", "summary": "Class MachiningActRunner Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. public class MachiningActRunner : IDisposable Inheritance object MachiningActRunner Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningActRunner(Action, Action>, Func, Func, Func, Action) Initializes a new instance. public MachiningActRunner(Action reportException, Action> stepStorageWriter, Func machiningToolHouseGetter, Func machiningEquipmentGetter, Func workpieceServiceGetter, Action resetMillingStepLuggageDbAction) Parameters reportException Action Error sink for the runner's background infrastructure tasks (bulk writer flush, attachment-memory loose runner) which run outside any single call. Request-scoped progress is passed by method argument, not held here. stepStorageWriter Action> The action to write milling step luggages to storage. machiningToolHouseGetter Func The getter function for the machining tool house. machiningEquipmentGetter Func The getter function for the machining equipment. workpieceServiceGetter Func The getter function for the workpiece runtime service. resetMillingStepLuggageDbAction Action Action to reset the milling step luggage database. Fields InternalMachiningStepBuilt Internal callback fired when a step is built (same timing as MachiningStepBuilt); used by host services before UI subscribers. public MachiningActRunner.MachiningStepBuiltDelegate InternalMachiningStepBuilt Field Value MachiningActRunner.MachiningStepBuiltDelegate Properties ClStrip Gets the cutter location strip. public ClStrip ClStrip { get; } Property Value ClStrip Config Gets or sets the runner configuration. public MachiningActRunnerConfig Config { get; set; } Property Value MachiningActRunnerConfig EnableMotionDependentMachiningResolution EnableMotionDependentMachiningResolution. It works on feed per cycle and feed per tooth motion resolution. MachiningResolution_mm changed by the LinearResolution_mm. public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableSweeping Gets whether sweeping is enabled based on the motion resolution type. public bool EnableSweeping { get; } Property Value bool GrpcPostStepAction Gets or sets the action to be performed after each step for GRPC service. This is for internal use only. public static Action GrpcPostStepAction { get; set; } Property Value Action MachiningMotionResolution Gets or sets the machining motion resolution. public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution_mm Gets or sets the preferred cube width for steps. public double MachiningResolution_mm { get; set; } Property Value double MachiningToolHouse Gets or sets the machining tool house. public MachiningToolHouse MachiningToolHouse { get; } Property Value MachiningToolHouse MachiningVolumeRemovalProc Gets the machining volume removal processor. public MachiningVolumeRemovalProc MachiningVolumeRemovalProc { get; } Property Value MachiningVolumeRemovalProc ShellThreadStepIndex The motion-step index currently managed on the shell session main thread — the index the next ClStripPos will receive, read straight from StripPosesCount (the strip is the single source of truth). Decoupled from the parallel-physics StepTaskBundle.StepIndex, which tracks a different (emit-thread) progress and may diverge. Use this to anchor a StepDiagnostic to its motion step. public int ShellThreadStepIndex { get; } Property Value int StateActRunner Gets the state act runner. This property is provided as a member value getter and should not be modified. public StateActRunner StateActRunner { get; } Property Value StateActRunner XyzabcChain Gets the XYZABC kinematic chain if the current machining chain supports it; otherwise null. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() Adjusts the APT cutter STL resolution based on NC resolution and workpiece resolution. public void AdjustAptCutterStlResolutionByNcResolutionAndWorkpieceResolution() 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 ExpandToActMcStep(IAct, StepDiagnosticProgress) Expands an act into machine control steps. public IEnumerable ExpandToActMcStep(IAct act, StepDiagnosticProgress stepDiagnosticProgress) Parameters act IAct The act to expand. stepDiagnosticProgress StepDiagnosticProgress Progress sink for cutter-location strip / per-step updates. Returns IEnumerable A sequence of machine control steps. GetMillingActRunner() Gets the current milling act runner instance. public MachiningActRunner GetMillingActRunner() Returns MachiningActRunner The current milling act runner instance. ProcAct(IAct, MachiningSession, IMachiningService, ISentenceCarrier, CancellationToken, StepDiagnosticProgress) Processes an act with the given parameters. public IEnumerable ProcAct(IAct act, MachiningSession machiningSession, IMachiningService host, ISentenceCarrier sourceCommand, CancellationToken cancellationToken, StepDiagnosticProgress stepDiagnosticProgress) Parameters act IAct The act to process. machiningSession MachiningSession The milling session. host IMachiningService The milling step host. sourceCommand ISentenceCarrier The source command. cancellationToken CancellationToken The cancellation token. stepDiagnosticProgress StepDiagnosticProgress Progress sink for cutter-location strip / per-step updates. Returns IEnumerable A sequence of processed objects. ResetMillingStepLuggageDb(StepDiagnosticProgress, IProgress) Resets the milling step luggage database. public void ResetMillingStepLuggageDb(StepDiagnosticProgress stepDiagnosticProgress, IProgress messageHost) Parameters stepDiagnosticProgress StepDiagnosticProgress The step-aligned IMessage-channel sink. messageHost IProgress Sink-agnostic IMessage host; injected by the caller, may be null outside a session. ResetStateAndClStrip(StepDiagnosticProgress, IProgress) Resets the state and cutter location strip. public void ResetStateAndClStrip(StepDiagnosticProgress stepDiagnosticProgress, IProgress messageHost) Parameters stepDiagnosticProgress StepDiagnosticProgress The step-aligned IMessage-channel sink. messageHost IProgress Sink-agnostic IMessage host; injected by the caller, may be null outside a session. UpdateByMachiningChain() Update By MachiningChain. Internal Use Only. public void UpdateByMachiningChain() UpdateByMachiningEquipment() Update By Hi.MachiningProcs.MachiningActRunner.MachiningEquipment. Internal Use Only. public void UpdateByMachiningEquipment() WaitAll() Waits for all pending operations to complete. public void WaitAll() WarnIfCurrentToolCutterGeometryUnreasonable(MachiningSession, StepDiagnosticProgress, int?) Emit one-shot session ConfigurationErrors naming the root cause when the currently equipped tool's MillingCutter has an unreasonable upper-beam / shank geometry (see GetUpperBeamGeometryIssues()) — e.g. an ExtendedCylinder beam whose FullLength sits below the flute height. Before this check, such a setting surfaced only as a per-step NullReferenceException cascade inside the thermal physics, with nothing naming the beam. Additionally emits a Cutter-Shank–ThermalModelUnavailable ConfigurationWarning when the shank thermal model cannot be built for a reason no geometry issue names (e.g. no beam configured at all) — this is the once-per-tool announcement of the silent per-step fallback in MillingTemperatureUtil.GetStepTemperature, which is deliberately quiet at the fallback site to avoid per-step message flooding. Gated by EnablePhysics; deduped per tool reference via WarnedCutterGeometryTools, mirroring WarnIfCurrentToolFluteMaterialMissing(MachiningSession, StepDiagnosticProgress, int?) (same two emission points: each IActTooling and BeginSession). public void WarnIfCurrentToolCutterGeometryUnreasonable(MachiningSession machiningSession, StepDiagnosticProgress stepDiagnosticProgress, int? toolId = null) Parameters machiningSession MachiningSession stepDiagnosticProgress StepDiagnosticProgress toolId int? WarnIfCurrentToolFluteCountZero(MachiningSession, StepDiagnosticProgress, int?) Emit a one-shot session warning if the currently equipped Hi.MachiningProcs.MachiningActRunner.MachiningEquipment.MachiningTool is a MillingCutter whose flute count resolves to zero (a null or empty Fluting). A zero flute count silently poisons the physics chain with nothing naming the tool: feed-per-tooth divides by zero, the force side fills Vec3d.NaN for every rotation division and the thermal side returns null. Gated by EnablePhysics; deduped per tool reference via WarnedFluteCountZeroTools, mirroring WarnIfCurrentToolFluteMaterialMissing(MachiningSession, StepDiagnosticProgress, int?) (same two emission points: each IActTooling and BeginSession). public void WarnIfCurrentToolFluteCountZero(MachiningSession machiningSession, StepDiagnosticProgress stepDiagnosticProgress, int? toolId = null) Parameters machiningSession MachiningSession stepDiagnosticProgress StepDiagnosticProgress toolId int? WarnIfCurrentToolFluteMaterialMissing(MachiningSession, StepDiagnosticProgress, int?) Emit a one-shot session warning if the currently equipped Hi.MachiningProcs.MachiningActRunner.MachiningEquipment.MachiningTool is a MillingCutter without a FluteMaterial. Gated by EnablePhysics; deduped per tool reference via WarnedFluteMaterialMissingTools so each offending tool is mentioned at most once per session. Pass toolId when known (e.g. from an IActTooling) and the warning will name the ID; omit it (the BeginSession path) and the warning falls back to “the currently equipped tool” — the equipped tool may have been set externally and not appear in MachiningToolHouse, so reverse-looking up an ID is unreliable and reference equality is the right unit of dedup anyway. public void WarnIfCurrentToolFluteMaterialMissing(MachiningSession machiningSession, StepDiagnosticProgress stepDiagnosticProgress, int? toolId = null) Parameters machiningSession MachiningSession stepDiagnosticProgress StepDiagnosticProgress toolId int? Events MachiningStepBuilt event to configure steps. The first parameter is the previous step; the second parameter is the current step. The previous step is null if no previous step exists. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate UiPostStepAction Event raised after each step for UI updates. This is for internal use only. public event Action UiPostStepAction Event Type Action" }, "api/Hi.MachiningProcs.MachiningActRunnerConfig.html": { "href": "api/Hi.MachiningProcs.MachiningActRunnerConfig.html", "title": "Class MachiningActRunnerConfig | HiAPI-C# 2025", "summary": "Class MachiningActRunnerConfig Namespace Hi.MachiningProcs Assembly HiMech.dll Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. public class MachiningActRunnerConfig : IMakeXmlSource Inheritance object MachiningActRunnerConfig Implements IMakeXmlSource 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) Constructors MachiningActRunnerConfig() Initializes a new instance. public MachiningActRunnerConfig() MachiningActRunnerConfig(XElement, string, IProgress) Initializes a new instance of the MachiningActRunnerConfig class from XML. public MachiningActRunnerConfig(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The source XML element. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties EnableCollisionDetection Gets or sets whether collision detection is enabled. public bool EnableCollisionDetection { get; set; } Property Value bool EnableDeflectionTransformation Gets or sets whether deflection transformation is enabled. Note: This feature is pending testing. public bool EnableDeflectionTransformation { get; set; } Property Value bool EnableNativeMillingPhysics Gets or sets whether the per-step physics runs on the native (core.dll) kernels. Default is true, and in shipping builds the native kernel is the only physics implementation: setting this to false requires the managed reference implementation (the non-shipping HiMech.PhysicsRef assembly, registered at startup by dev/test hosts) and throws without it. Both implementations produce the same results. Runtime-only (not persisted to project XML), in the EnableSoftNcRunner progressive-switch convention. Delegates to the kernel-level switch on EnableNativeMillingPhysics, which is process-global like RotationDivisionNum. public bool EnableNativeMillingPhysics { get; set; } Property Value bool EnablePauseOnFailure Enable Pause On Failure Detected. Only take effect if the EnableStrokeLimitCheck or EnableCollisionDetection is enabled. public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. public bool EnablePhysics { get; set; } Property Value bool EnableStrokeLimitCheck Gets or sets whether stroke limit checking is enabled. public bool EnableStrokeLimitCheck { get; set; } Property Value bool EnableWearEffect Gets or sets whether to enable coating wear effects. Note: This function is not fully prepared yet. Only affects further wear by the wear coefficient of inner material. public bool EnableWearEffect { get; set; } Property Value bool InitSpindleTemperature_C Gets or sets the initial spindle temperature in Celsius. public double InitSpindleTemperature_C { get; set; } Property Value double InitSpindleTemperature_K Gets or sets the initial spindle temperature in Kelvin. The temperature is initialized when a working session is restarted or a new session is started. public double InitSpindleTemperature_K { get; set; } Property Value double IsIdealOffsetDependentOnToolHouse Gets or sets whether the ideal tool offset is automatically populated from the tool house geometry before simulation. public bool IsIdealOffsetDependentOnToolHouse { get; set; } Property Value bool XName Gets the XML element name for serialization. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html": { "href": "api/Hi.MachiningProcs.MachiningParallelProc.StepTaskBundle.html", "title": "Class MachiningParallelProc.StepTaskBundle | HiAPI-C# 2025", "summary": "Class MachiningParallelProc.StepTaskBundle Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a bundle of tasks related to a milling step. public class MachiningParallelProc.StepTaskBundle Inheritance object MachiningParallelProc.StepTaskBundle 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) Constructors StepTaskBundle(double, double) Initializes a new instance of the MachiningParallelProc.StepTaskBundle class with background and spindle temperatures. public StepTaskBundle(double backgroundTemperature_K, double spindleTemperature_K) Parameters backgroundTemperature_K double The background temperature in Kelvin. spindleTemperature_K double The spindle temperature in Kelvin. Properties MachineMotionStep Gets the machining step. public MachineMotionStep MachineMotionStep { get; } Property Value MachineMotionStep StepIndex Gets the index of the step. public int StepIndex { get; } Property Value int Methods Wait(CancellationToken) Waits for the completion of the post-sequential physics task. public void Wait(CancellationToken token) Parameters token CancellationToken The cancellation token." }, "api/Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html": { "href": "api/Hi.MachiningProcs.MachiningParallelProc.SubstractionResult.html", "title": "Class MachiningParallelProc.SubstractionResult | HiAPI-C# 2025", "summary": "Class MachiningParallelProc.SubstractionResult Namespace Hi.MachiningProcs Assembly HiMech.dll Represents the result of a subtraction operation. public record MachiningParallelProc.SubstractionResult : IEquatable Inheritance object MachiningParallelProc.SubstractionResult Implements IEquatable 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) Constructors SubstractionResult(Substraction, ClStripPos) Represents the result of a subtraction operation. public SubstractionResult(Substraction Substraction, ClStripPos ClStripPos) Parameters Substraction Substraction ClStripPos ClStripPos Properties ClStripPos public ClStripPos ClStripPos { get; init; } Property Value ClStripPos Substraction public Substraction Substraction { get; init; } Property Value Substraction" }, "api/Hi.MachiningProcs.MachiningParallelProc.html": { "href": "api/Hi.MachiningProcs.MachiningParallelProc.html", "title": "Class MachiningParallelProc | HiAPI-C# 2025", "summary": "Class MachiningParallelProc Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a parallel processing system for milling operations that manages various tasks such as sweeping, subtraction, force calculation, and physics simulation. public class MachiningParallelProc : IDisposable Inheritance object MachiningParallelProc Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningParallelProc(MachiningActRunner) Initializes a new instance of the MachiningParallelProc class. public MachiningParallelProc(MachiningActRunner millingActRunner) Parameters millingActRunner MachiningActRunner The machining act runner to manage milling operations. Properties MachiningActRunner Gets the machining act runner that manages the milling operations. public MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner Methods Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the MachiningParallelProc and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool True to release both managed and unmanaged resources; false to release only unmanaged resources. WaitAll() Waits for all tasks to complete. public void WaitAll()" }, "api/Hi.MachiningProcs.MachiningProject.html": { "href": "api/Hi.MachiningProcs.MachiningProject.html", "title": "Class MachiningProject | HiAPI-C# 2025", "summary": "Class MachiningProject Namespace Hi.MachiningProcs Assembly HiNc.dll Represents a milling project that manages the execution, simulation, and analysis of NC programs. public class MachiningProject : IDisposable, IMakeXmlSource, IMachiningProjectGetter Inheritance object MachiningProject Implements IDisposable IMakeXmlSource IMachiningProjectGetter 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) Constructors MachiningProject(string) Initializes a new instance with the specified directory. public MachiningProject(string baseDirectory) Parameters baseDirectory string Base directory for file operations MachiningProject(XElement, string, IProgress) Initializes a new instance from XML data. public MachiningProject(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ApiVersion Gets the API version from the HiNc assembly (where MachiningProject is defined). public static Version ApiVersion { get; } Property Value Version BaseDirectory Gets the base directory where project files are located. public string BaseDirectory { get; } Property Value string ClsfRunnerSuit A third runner suit dedicated to the NX-CL (CLSF) pipeline (NxClRunner), held alongside the NC NcRunnerSuit and the CsvRunnerSuit. Backs LocalProjectService.ClRunner. public NcRunnerSuit ClsfRunnerSuit { get; set; } Property Value NcRunnerSuit CsvRunnerSuit A second runner suit dedicated to the CSV pipeline (the flagship GeneralCsvRunner), held alongside the NC NcRunnerSuit. Backs LocalProjectService.CsvRunner; the suit owns the CSV column config (replacing the former flat CsvRunnerConfig project member). public NcRunnerSuit CsvRunnerSuit { get; set; } Property Value NcRunnerSuit DictionaryColorGuide public DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide MachiningActRunnerConfig Gets or sets the configuration for the milling act runner. public MachiningActRunnerConfig MachiningActRunnerConfig { get; set; } Property Value MachiningActRunnerConfig MachiningToolHouse Gets or sets the machining tool house containing tool configurations. public MachiningToolHouse MachiningToolHouse { get; set; } Property Value MachiningToolHouse MachiningToolHouseFile Gets or sets the file path to the milling tool house configuration. public string MachiningToolHouseFile { get; set; } Property Value string MillingGuide Gets or sets the milling guide containing visualization and analysis configurations. public MillingGuide MillingGuide { get; set; } Property Value MillingGuide NcEnv Gets or sets the NC environment settings. public HardNcEnv NcEnv { get; set; } Property Value HardNcEnv NcRunnerSuit The active runner suit — the per-machine SoftNcRunner (plus its optional side-file path) bundled with the per-workpiece PerCaseNcDependencyList its proxies resolve against. The suit is the proxies' INcDependencyListHost; swap the whole suit (e.g. via LocalProjectService.ReadNcRunnerSuit) to switch the active parser within a session. The project XML serializes the suit's two members flat for back-compat. public NcRunnerSuit NcRunnerSuit { get; set; } Property Value NcRunnerSuit PlayerCommand Gets the command to execute when playing the machining project. public ISessionCommand PlayerCommand { get; set; } Property Value ISessionCommand TimeMapping Gets or sets the time mapping for synchronizing different time-based data streams. public TimeMapping TimeMapping { get; set; } Property Value TimeMapping XName Name for XML IO. public static string XName { get; } Property Value string Methods 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 GetMachiningEquipment() public MachiningEquipment GetMachiningEquipment() Returns MachiningEquipment GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. GetMillingEquipment() Source-compatible delegate for callers written against the pre-rename name. [Obsolete(\"Renamed to GetMachiningEquipment.\")] public MachiningEquipment GetMillingEquipment() Returns MachiningEquipment The project's equipment. LoadFile(string, IProgress) Loads a machining project from the specified file path. public static MachiningProject LoadFile(string projectFilePath, IProgress progress) Parameters projectFilePath string Path to the project file to load progress IProgress Progress reporter for XML deserialization. Returns MachiningProject A new machining project instance loaded from the file MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer (and its legacy aliases) with the given XFactory (or Default when factory is null), and chains Reg(factory) on dependents so the registration graph is observable. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MachiningProcs.MachiningSession.html": { "href": "api/Hi.MachiningProcs.MachiningSession.html", "title": "Class MachiningSession | HiAPI-C# 2025", "summary": "Class MachiningSession Namespace Hi.MachiningProcs Assembly HiMech.dll Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. Implements IDisposable to clean up SessionWriters on session end. public class MachiningSession : IDisposable Inheritance object MachiningSession Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningSession(IMachiningService) Creates a machining session bound to its hosting IMachiningService. public MachiningSession(IMachiningService host) Parameters host IMachiningService Properties CurrentSourceCommand Gets or sets the current source command being processed. public IIndexedFileLine CurrentSourceCommand { get; set; } Property Value IIndexedFileLine FileIndexOnRunCommand File index counter, auto-incremented per RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) call within this session. Legacy use only. Read and incremented by HardNcRunner and CsvRunner. SoftNcRunner no longer touches this field — it allocates file indices through FileIndexCounterDependency, which both the runner and inlined-subprogram syntaxes (SubProgramCallSyntax) share so every loaded file (top-level program plus every M98 / M198 inline, including each L repetition) gets a distinct index. Do not introduce new readers; the field will be removed once the legacy runners retire. public int FileIndexOnRunCommand { get; set; } Property Value int Host The project-level service hosting this session — injected so the session can reach project-level resources (act runner, NC runners, player, sinks, base directory, …) it needs to run NC program lines. public IMachiningService Host { get; } Property Value IMachiningService IsNcOptOptionListUpdatedByStep Internal Use Only. public bool IsNcOptOptionListUpdatedByStep { get; set; } Property Value bool IsRunningNcLines True while an NC program file is actively being played through the runner (the paced PlayNcFile(string, string, NcKind) loop). A runner-suit switch must not run while this is true: the runner's RunNcLines iterator is mid-enumeration and holds this session's SyntaxPieceLayers, so resetting NcRunnerSessionState underneath it would corrupt the in-flight walk. The switch entry point checks this and refuses otherwise. public bool IsRunningNcLines { get; } Property Value bool IsSteppingSentence True while the player is stepping sentence-by-sentence (pauses at each source-command boundary). Session-run state. public bool IsSteppingSentence { get; set; } Property Value bool NcConversions Writeback conversions retained from the latest ConvertClToNcFiles(string, string, IProgress) run (one per written NC file, in written order): the destination SyntaxPiece streams plus the src↔dst Hi.NcParsers.NcWriteback.NcPieceMaps. This is the hook point for GUI cross-navigation (click a source line ↔ jump to its converted lines). Cleared at the start of each conversion run. public List NcConversions { get; } Property Value List NcOptOption Gets or sets the NC optimization options for UI operations. public NcOptOption NcOptOption { get; set; } Property Value NcOptOption NcOptimizations Writeback conversions retained from the latest OptimizeNcFiles(string, string, ICuttingPara, IProgress, CancellationToken, Func, Action) run (one per written optimized NC file, in written order): the destination SyntaxPiece streams plus the src↔dst Hi.NcParsers.NcWriteback.NcPieceMaps, for GUI cross-navigation. Deliberately separate from NcConversions so a conversion run and an optimization run do not clear each other's results. Cleared at the start of each optimization run. public List NcOptimizations { get; } Property Value List NcRunnerSessionState Per-session NC pipeline state shared across RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) calls. Holds lazy-initialized NcDiagnosticProgress and the per-layer LazyLinkedList chain used for cross-file modal continuity. public NcRunnerSessionState NcRunnerSessionState { get; } Property Value NcRunnerSessionState PacePlayee Internal set only. public PacePlayee PacePlayee { get; set; } Property Value PacePlayee PostBlockScripts Per-line scripts injected externally (without modifying NC files). Key: FileLineIndex of the NC block. Value: C# script text to execute after the NC block. Consumed by CsScriptEndSemantic. public Dictionary PostBlockScripts { get; } Property Value Dictionary PreBlockScripts Per-line scripts injected externally (without modifying NC files). Key: FileLineIndex of the NC block. Value: C# script text to execute before the NC block. Consumed by CsScriptBeginSemantic. public Dictionary PreBlockScripts { get; } Property Value Dictionary SessionWriters StreamWriters registered during the session (e.g. by diagnostic output methods). Key: relative output file path. Disposed automatically when the session ends. public Dictionary SessionWriters { get; } Property Value Dictionary ShellProgress Session-level routine / lifecycle message sink on the IMessage channel (cache reset, file progress, session start/done). Owned here so it is truly session-scoped — created with the session, released at EndSession. public ShellProgress ShellProgress { get; } Property Value ShellProgress StepIndexToNcOptOptionSortedList Gets or sets the mapping of step indices to NC optimization options. For internal use only. Takes effect during internal optimization process. public SortedList StepIndexToNcOptOptionSortedList { get; set; } Property Value SortedList StepTaskBundle Gets or sets the current step task bundle. public MachiningParallelProc.StepTaskBundle StepTaskBundle { get; set; } Property Value MachiningParallelProc.StepTaskBundle WarnedCutterGeometryTools Tools already surfaced via an unreasonable cutter-geometry ConfigurationError (see WarnIfCurrentToolCutterGeometryUnreasonable(MachiningSession, StepDiagnosticProgress, int?)). Same keying and emission-point rationale as WarnedFluteMaterialMissingTools. public HashSet WarnedCutterGeometryTools { get; } Property Value HashSet WarnedFluteCountZeroTools Tools already surfaced via a zero-flute-count ConfigurationWarning (see WarnIfCurrentToolFluteCountZero(MachiningSession, StepDiagnosticProgress, int?)). Same keying and emission-point rationale as WarnedFluteMaterialMissingTools. public HashSet WarnedFluteCountZeroTools { get; } Property Value HashSet WarnedFluteMaterialMissingTools Tools already surfaced via “FluteMaterial not set” warning. Keyed by IMachiningTool reference so the dedup is stable across the two emission points: ProcAct(IAct, MachiningSession, IMachiningService, ISentenceCarrier, CancellationToken, StepDiagnosticProgress) at each IActTooling, and BeginSession for the tool that may already be equipped before the session begins (which has no tool ID to dedup with). Reference equality is more precise than tool ID — the same tool object equipped twice should warn once, regardless of how it was reached. public HashSet WarnedFluteMaterialMissingTools { get; } Property Value HashSet Methods BeginPreserve() Begins a preserve section in the optimization process. public void BeginPreserve() ConvertClToNcFiles(string, string, IProgress) Converts the CLSF play of this session into Fanuc NC files — writeback synthesis mode, two stages (Hi.NcParsers.NcWriteback.NcSynthesisConverter over Hi.NcParsers.NcWriteback.FanucNcSentenceComposer): walks the final SyntaxPieceLayers layer, groups pieces per source file, converts each group into a destination piece stream with the src↔dst map (stage one; retained in NcConversions), and serializes the destination stream to text (stage two, ToLines(IEnumerable)). The synthesis re-serializes the brand-neutral sections into Fanuc vocabulary (MSYS tilt → G68.2, RTCP → G43.4, motions → G00/G01/G02/G03 with rotary words). Requires a prior play (e.g. PlayClFile(string, string)) on an XYZABC machine chain — a pure-CL milling device leaves no machine-solved sections to serialize. Conversion diagnostics go to the manipulation home (NcManipulationDiagnosticProgress, cleared at run start) — not to the play-time NcDiagnosticProgress. GUI consumers observe that home directly (webservice: NC Manipulation message tab); messageProgress carries only the lifecycle messages. public IReadOnlyList ConvertClToNcFiles(string baseDirectory, string relNcFileTemplate = \"Output/[NcName].nc\", IProgress messageProgress = null) Parameters baseDirectory string Project root; null falls back to BaseDirectory. relNcFileTemplate string Output path template; [NcName] is replaced by the source file name, [NcFile] by its slash-flattened relative path. messageProgress IProgress Optional message sink for lifecycle reporting; session callers inject the shell sink, out-of-session callers pass their own (or null). Returns IReadOnlyList Written NC file paths, relative to baseDirectory. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() EndPreserve() Ends a preserve section in the optimization process. public void EndPreserve() GetToolPhysicsPack(int) Gets the frozen physics pack for a tool id — building it on first access — or null when the id is not in the tool house. The para-dependent members are keyed to the current workpiece cutting para. Safe to call from parallel step tasks: the pack is immutable and published atomically, and a concurrent rebuild computes identical content. public MillingToolPhysicsPack GetToolPhysicsPack(int toolId) Parameters toolId int The tool-house id of the tool. Returns MillingToolPhysicsPack The frozen pack, or null for an unknown tool id. InvalidateToolPhysicsPacks() Drops every cached physics pack so the next access rebuilds from the live objects. Called by the paths that know the tool/cutter/para state may have changed: every run-op start (RunNcLines(INcRunner, string, IEnumerable, CancellationToken), so edits made between plays always take effect) and the tool-change act. An editor that must take effect in the middle of a running play calls this explicitly — otherwise a mid-play edit lands on the next play, which is also the only mode with a deterministic outcome. public void InvalidateToolPhysicsPacks() OptimizeNcFiles(string, string, ICuttingPara, IProgress, CancellationToken, Func, Action) Optimizes the NC program played in this session (SoftNc pipeline) and writes the optimized NC files: classifies the final SyntaxPieceLayers layer, solves the per-step feed adjustments from milling physics, patches the F words onto the verbatim source text and writes one output file per source NC file by relNcFileTemplate. Conversions are retained in NcOptimizations; piece-anchored diagnostics go to the manipulation home (NcManipulationDiagnosticProgress, cleared at run start). Requires a prior play and a logged-in OptNcNoLimit license. public List OptimizeNcFiles(string baseDirectory, string relNcFileTemplate, ICuttingPara millingPara, IProgress messageProgress, CancellationToken cancellationToken, Func luggageGetter = null, Action clearLuggageCache = null) Parameters baseDirectory string Project root; null falls back to BaseDirectory. relNcFileTemplate string Output path template; [NcName] is replaced by the source file name, [NcFile] by its slash-flattened relative path. millingPara ICuttingPara The cutting parameters; null disables physics-computable optimization. messageProgress IProgress Optional message sink for lifecycle / progress reporting. cancellationToken CancellationToken Cancellation token to cancel the operation. luggageGetter Func Optional thread-safe map from step index to MillingStepLuggage; defaults to MillingStepLuggageReader. clearLuggageCache Action Optional end-of-run cache clear hook; defaults to the luggage reader's cache clear. Returns List Written NC file paths, relative to baseDirectory. PlayBrandNcFile(string, string) Plays a famous-brand NC code file with pace control (no kind dispatch — always ActiveNcRunner). public void PlayBrandNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string PlayClFile(string, string) Plays an NX-CL (CLSF) file with pace control. public void PlayClFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string PlayCsvFile(string, string) Plays a CSV file with pace control. public void PlayCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string PlayNc(string, string) Plays NC text with pace control. public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string fileNameAlternative string PlayNcFile(string, string, NcKind) Plays an NC program file with pace control, the runner picked by kind (Auto = by file extension, see DetectByPath(string)). public void PlayNcFile(string baseDirectory, string relFilePath, NcKind kind = NcKind.Auto) Parameters baseDirectory string relFilePath string kind NcKind Preserve() Preserves one line of NC code in the optimization process. public void Preserve() RunBrandNcFile(string, string) Runs a famous-brand NC code file (no pacing, no kind dispatch — always ActiveNcRunner); returns the player actions. public IEnumerable RunBrandNcFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string Returns IEnumerable RunClFile(string, string) Runs an NX-CL (CLSF) file (no pacing); returns the player actions. public IEnumerable RunClFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string Returns IEnumerable RunCsvFile(string, string) Runs a CSV file (no pacing); returns the player actions. public IEnumerable RunCsvFile(string baseDirectory, string relFilePath) Parameters baseDirectory string relFilePath string Returns IEnumerable RunMachiningStepBuilt(MachiningStep, MachiningStep) Internal use only. Invokes MachiningStepBuilt. public void RunMachiningStepBuilt(MachiningStep preStep, MachiningStep curStep) Parameters preStep MachiningStep curStep MachiningStep RunMachiningStepSelected(MachiningStep) Internal use only. Invokes MachiningStepSelected. public void RunMachiningStepSelected(MachiningStep machiningStep) Parameters machiningStep MachiningStep RunNc(string, string) Runs NC text (no pacing); returns the player actions. public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string fileNameAlternative string Returns IEnumerable RunNcFile(string, string, NcKind) Runs an NC program file (no pacing), the runner picked by kind (Auto = by file extension, see DetectByPath(string)); returns the player actions. public IEnumerable RunNcFile(string baseDirectory, string relFilePath, NcKind kind = NcKind.Auto) Parameters baseDirectory string relFilePath string kind NcKind Returns IEnumerable RunNcFileRan() Internal use only. Invokes NcFileRan. public void RunNcFileRan() RunNcLines(INcRunner, string, IEnumerable, CancellationToken) Runs the NC program lines through ncRunner, producing the player actions. Session-scoped run loop; reaches project-level resources via Host. public IEnumerable RunNcLines(INcRunner ncRunner, string relNcFilePath, IEnumerable lines, CancellationToken cancellationToken) Parameters ncRunner INcRunner The NC runner that parses and runs the lines. relNcFilePath string Name/path associated with the program. lines IEnumerable The NC/CSV lines to run. cancellationToken CancellationToken Cancellation token. Returns IEnumerable The sequence of player actions. RunSourcedActEntry(SourcedActEntry) Internal use only. Invokes SourcedActEntry. public void RunSourcedActEntry(SourcedActEntry entry) Parameters entry SourcedActEntry RunSyntaxPieceRan(SyntaxPiece) Internal use only. Invokes SyntaxPieceRan. public void RunSyntaxPieceRan(SyntaxPiece syntaxPiece) Parameters syntaxPiece SyntaxPiece UpdateNcOptOptionMapIfNeeded(int) Records the current NcOptOption at stepIndex when it differs from the most recently recorded one, so the map stays a sparse list of change points — which is what its readers expect: they resolve a step's option by GetFloor (see UpdateNcOptOption(Action) and the optimization procs), so an unchanged stretch needs no entries at all. Internal use only. public bool UpdateNcOptOptionMapIfNeeded(int stepIndex) Parameters stepIndex int The index of the step to update. Returns bool True if the map was updated; otherwise, false. Events MachiningStepBuilt Event triggered when a machining step is built. public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Event triggered when a machining step is selected. public event Action MachiningStepSelected Event Type Action NcFileRan Event triggered after an NC/CSV file finishes running (session-scoped). Bridged to the app-lifetime LocalProjectService.OnNcFileRan in BeginSession. public event Action NcFileRan Event Type Action OnCurrentLineEnd Event raised when the current line ends. The event buffer is cleared on every line change. public event Action OnCurrentLineEnd Event Type Action SourcedActEntry Event triggered for each SourcedActEntry produced during NC/CSV execution. public event Action SourcedActEntry Event Type Action SyntaxPieceRan Event triggered when a syntax piece has been executed. public event Action SyntaxPieceRan Event Type Action" }, "api/Hi.MachiningProcs.MessageDto.html": { "href": "api/Hi.MachiningProcs.MessageDto.html", "title": "Class MessageDto | HiAPI-C# 2025", "summary": "Class MessageDto Namespace Hi.MachiningProcs Assembly HiNc.dll One reported IMessage, flattened for JSON transport. public record MessageDto : IEquatable Inheritance object MessageDto Implements IEquatable 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) Constructors MessageDto(string, string, string, string) One reported IMessage, flattened for JSON transport. public MessageDto(string Severity, string Category, string Id, string Notification) Parameters Severity string The importance level (Message / Success / Progress / Warning / Error). Category string The classification (System / Unsupported / Validation / Configuration). Id string The structured id used for filtering / suppression; may be null. Notification string The end-user friendly text. Properties Category The classification (System / Unsupported / Validation / Configuration). public string Category { get; init; } Property Value string Id The structured id used for filtering / suppression; may be null. public string Id { get; init; } Property Value string Notification The end-user friendly text. public string Notification { get; init; } Property Value string Severity The importance level (Message / Success / Progress / Warning / Error). public string Severity { get; init; } Property Value string Methods From(IMessage) Flattens one IMessage into a transport DTO. public static MessageDto From(IMessage message) Parameters message IMessage The message to flatten. Returns MessageDto The flattened DTO." }, "api/Hi.MachiningProcs.MillingUtil.html": { "href": "api/Hi.MachiningProcs.MillingUtil.html", "title": "Class MillingUtil | HiAPI-C# 2025", "summary": "Class MillingUtil Namespace Hi.MachiningProcs Assembly HiMech.dll Provides utility methods for milling calculations and operations. public static class MillingUtil Inheritance object MillingUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetFeedPerCycle_mm(double, double) Calculates the feed per cycle in millimeters. public static double GetFeedPerCycle_mm(double feedrate_mmds, double spindleSpeed_radds) Parameters feedrate_mmds double The feed rate in millimeters per second. spindleSpeed_radds double The spindle speed in radians per second. Returns double The feed per cycle in millimeters. GetFeedPerTooth_mm(double, double, int) Calculates the feed per tooth in millimeters. public static double GetFeedPerTooth_mm(double feedrate_mmds, double spindleSpeed_radds, int fluteNum) Parameters feedrate_mmds double The feed rate in millimeters per second. spindleSpeed_radds double The spindle speed in radians per second. fluteNum int The number of flutes on the tool. Returns double The feed per tooth in millimeters. GetFeedrate_mmds(double, double, int) Calculates the feed rate in millimeters per second. public static double GetFeedrate_mmds(double feedPerTooth_mmdrev, double spindleSpeed_radds, int fluteNum) Parameters feedPerTooth_mmdrev double The feed per tooth in millimeters per revolution. spindleSpeed_radds double The spindle speed in radians per second. fluteNum int The number of flutes on the tool. Returns double The feed rate in millimeters per second. GetFluteZToDzListByGapResolutionSwitch(SortedList, double, Box3d, List) Gets a list of Z coordinates and their corresponding delta Z values for flute engagement, with resolution switching based on chip height. public static SortedList GetFluteZToDzListByGapResolutionSwitch(SortedList fluteZToDzListByWorkpieceResolution, double workpieceResolution, Box3d boundingBoxOnToolRunningCoordinate, List fluteZAscendentZrContour) Parameters fluteZToDzListByWorkpieceResolution SortedList The initial list of Z coordinates and delta Z values based on workpiece resolution. workpieceResolution double The resolution of the workpiece. boundingBoxOnToolRunningCoordinate Box3d The bounding box of the tool path in tool running coordinates. fluteZAscendentZrContour List The ascending Z coordinates of the flute contour. Returns SortedList A sorted list of Z coordinates and their corresponding delta Z values." }, "api/Hi.MachiningProcs.NcKind.html": { "href": "api/Hi.MachiningProcs.NcKind.html", "title": "Enum NcKind | HiAPI-C# 2025", "summary": "Enum NcKind Namespace Hi.MachiningProcs Assembly HiMech.dll Kind of an NC program file — selects which of the session's runners plays it (ActiveNcRunner / ClRunner / CsvRunner). public enum NcKind 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 Auto = 0 Detect from the file extension — see DetectByPath(string). BrandNc = 1 Famous-brand controller code (G-code dialects) — the catch-all default. Cl = 2 NX-CL (CLSF) cutter-location file. Csv = 3 CSV control table. Remarks Vocabulary note: Nc is the umbrella term for any machine-readable program the session can play (brand controller code, CL, CSV — matching INcRunner / RunNcFile); BrandNc is the narrow term for the famous-brand controller dialects (Fanuc / Siemens / Heidenhain G-code families)." }, "api/Hi.MachiningProcs.NcKindUtil.html": { "href": "api/Hi.MachiningProcs.NcKindUtil.html", "title": "Class NcKindUtil | HiAPI-C# 2025", "summary": "Class NcKindUtil Namespace Hi.MachiningProcs Assembly HiMech.dll NcKind helpers. public static class NcKindUtil Inheritance object NcKindUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods DetectByPath(string) Detects an NC program file's NcKind from its extension. CL (.cl / .cls / .clsf) and CSV (.csv) are closed extension sets; everything else — the open world of brand controller extensions (.nc, .ptp, .tap, .h, …) — maps to BrandNc, so an exotic brand extension can never be misrouted. public static NcKind DetectByPath(string filePath) Parameters filePath string Returns NcKind" }, "api/Hi.MachiningProcs.NcRunnerSessionState.html": { "href": "api/Hi.MachiningProcs.NcRunnerSessionState.html", "title": "Class NcRunnerSessionState | HiAPI-C# 2025", "summary": "Class NcRunnerSessionState Namespace Hi.MachiningProcs Assembly HiMech.dll NC pipeline state held on a MachiningSession and shared across multiple RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) calls within that session. The per-layer SyntaxPieceLayers are extended via AppendSource(IEnumerable) for each subsequent file so that Previous/Next connectivity (and thus ModalCarrySyntax deep-clone) crosses file boundaries. public sealed class NcRunnerSessionState : IDisposable Inheritance object NcRunnerSessionState Implements IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 EffectiveNcDependencyList Proxy-resolved dependency list — output of GetEffectiveNcDependencyList(), computed once on the first RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) call and reused for every file and pipeline stage in the session so each INcDependencyProxy resolves to one stable instance. Set only by RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) (and cleared by Reset()); readable for inspection. public List EffectiveNcDependencyList { get; } Property Value List EffectiveNcInitializationList Session-scoped initializer list used to seed the init SyntaxPiece — gated like EffectiveNcSyntaxList. public List EffectiveNcInitializationList { get; } Property Value List EffectiveNcSemanticList Session-scoped semantic list actually driven over the final syntax layer — gated like EffectiveNcSyntaxList. public List EffectiveNcSemanticList { get; } Property Value List EffectiveNcSyntaxList Session-scoped syntax list actually driven by the layer pipeline — stamped at session initialization by ResolveEffectivePipeline(SoftNcRunner, NcRunnerSessionState, NcDiagnosticProgress). Same reference as NcSyntaxList unless the composition gate skipped external units for this session; the runner's persisted list is never mutated. public List EffectiveNcSyntaxList { get; } Property Value List EffectiveSegmenter Session-scoped segmenter actually used to split NC text — the runner's own Segmenter, or the built-in fallback when the composition gate rejected an external one. public ISegmenter EffectiveSegmenter { get; } Property Value ISegmenter FreezeExecutedPieces Whether executed SyntaxPieces are frozen to their compact UTF-8 form (Freeze()) once they leave the executing window. Default true — a session retains every executed piece for its whole lifetime, and the live JsonObject graph costs ~13× the frozen bytes (multi-million-line programs OOM a client machine without this). Set false only for A/B measurement or when a custom post-play consumer must mutate executed pieces in place. public bool FreezeExecutedPieces { get; set; } Property Value bool InitializedByNcRunner The runner whose first RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) call built the pipeline. The layer count and the cached EffectiveNcDependencyList are sized/bound to THIS runner, so a subsequent call from a DIFFERENT runner (e.g. a CSV play after a brand-NC play in the same session) must be refused — it would index past the layer list or silently run with the wrong dependency list. Cleared by Reset(). public INcRunner InitializedByNcRunner { get; } Property Value INcRunner IsInitialized True after the first call has built the layered pipeline. public bool IsInitialized { get; } Property Value bool SyntaxPieceLayers One LazyLinkedList per pipeline layer. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..NcSyntaxList.Count are the post-NcSyntax layers. Subsequent RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) calls extend each layer in place via AppendSource(IEnumerable). public List> SyntaxPieceLayers { get; set; } Property Value List> Methods DeferFreeze(SyntaxPiece) Hands an executed piece to the deferred-freeze window: it stays live for the next Hi.MachiningProcs.NcRunnerSessionState.FreezeLagPieceCount piece boundaries, then freezes. No-op when FreezeExecutedPieces is false or piece is null. Called by RunNcLines(INcRunner, string, IEnumerable, CancellationToken) at each source-command boundary — the point where the previous piece's syntax builds and semantics have all completed. public void DeferFreeze(SyntaxPiece piece) Parameters piece SyntaxPiece Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() FlushDeferredFreezes() Freezes everything still in the deferred-freeze window. Called at the end-of-play action (after the act runner's WaitAll) so a finished play retains only frozen pieces; when FreezeExecutedPieces is false the window is just dropped. public void FlushDeferredFreezes() Reset() Drops the per-layer pipeline state so the next RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) call re-builds from scratch. Use this for a controller power reset (where in-flight SyntaxPiece JSON dataflow — including Vars.Volatile, modal carries, and the init seed — must vanish) without disposing the owning MachiningSession itself. Idempotent and reusable: after Reset() the object is in the same lazy-uninitialised state as a freshly constructed instance, so the first subsequent RunNcLines hits the !IsInitialized branch and re-creates everything. public void Reset()" }, "api/Hi.MachiningProcs.ProjectFileBusyException.html": { "href": "api/Hi.MachiningProcs.ProjectFileBusyException.html", "title": "Class ProjectFileBusyException | HiAPI-C# 2025", "summary": "Class ProjectFileBusyException Namespace Hi.MachiningProcs Assembly HiNc.dll Thrown when a project-file operation (New / Load / Save / SaveAs / Reload) is requested while another one is already in progress. The newcomer is cancelled rather than queued; controllers surface this as HTTP 409 Conflict. public sealed class ProjectFileBusyException : Exception, ISerializable Inheritance object Exception ProjectFileBusyException Implements ISerializable Inherited Members Exception.GetBaseException() Exception.GetType() Exception.ToString() Exception.Data Exception.HelpLink Exception.HResult Exception.InnerException Exception.Message Exception.Source Exception.StackTrace Exception.TargetSite object.Equals(object) object.Equals(object, object) object.GetHashCode() object.ReferenceEquals(object, object) 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 ProjectFileBusyException() Initializes a new instance with the default busy message. public ProjectFileBusyException()" }, "api/Hi.MachiningProcs.ProxyProjectService.html": { "href": "api/Hi.MachiningProcs.ProxyProjectService.html", "title": "Class ProxyProjectService | HiAPI-C# 2025", "summary": "Class ProxyProjectService Namespace Hi.MachiningProcs Assembly HiNc.dll Delegate (User-based) Project Service. Apply relative file path from AdminDirectory. public class ProxyProjectService : IProjectService, IMachiningProjectGetter Inheritance object ProxyProjectService Implements IProjectService IMachiningProjectGetter 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) Constructors ProxyProjectService(LocalProjectService, ProxyConfig) Initializes a new instance of the ProxyProjectService class. public ProxyProjectService(LocalProjectService localProjectService, ProxyConfig proxyConfig) Parameters localProjectService LocalProjectService The local project service. proxyConfig ProxyConfig The proxy configuration options. Properties AdminDirectory Gets the admin directory path from the proxy configuration. public string AdminDirectory { get; set; } Property Value string LocalProjectService Gets the local project service instance. public LocalProjectService LocalProjectService { get; } Property Value LocalProjectService ProxyConfig Gets the proxy configuration options. public ProxyConfig ProxyConfig { get; } Property Value ProxyConfig RelativeProjectPath Gets the project path relative to the AdminDirectory. public string RelativeProjectPath { get; } Property Value string Methods CloseProject() Closes the current project. public void CloseProject() GetLocalProjectService() Get Local Project Service as base-service. public LocalProjectService GetLocalProjectService() Returns LocalProjectService Local Project Service GetMachiningProject() Gets the MachiningProject instance. public MachiningProject GetMachiningProject() Returns MachiningProject The MachiningProject instance. LoadProject(string) Loads a project by file path relative to the admin directory. public void LoadProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory root NewProject(string) Creates a new project by file path relative to the admin directory. public void NewProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory ReloadProject() Reloads the current project. public void ReloadProject() SaveAsProject(string) Saves the current project to a specified relative file path. public void SaveAsProject(string relativeFilePath) Parameters relativeFilePath string The relative file path from the admin directory root SaveProject() Saves the current project. public void SaveProject()" }, "api/Hi.MachiningProcs.RenderingFlag.html": { "href": "api/Hi.MachiningProcs.RenderingFlag.html", "title": "Enum RenderingFlag | HiAPI-C# 2025", "summary": "Enum RenderingFlag Namespace Hi.MachiningProcs Assembly HiNc.dll Flags that control which elements are rendered in the visualization. public enum RenderingFlag 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 ClStrip = 1 Cutter location strip rendering flag. ColorScaleBar = 10 Color scale bar rendering flag. Category: Foreground. DimensionBar = 9 Dimension bar rendering flag. Category: Foreground. Dummy = 0 Dummy placeholder flag. Fixture = 4 Fixture rendering flag. Category: Solid. HeidenhainCoordinate = 8 Heidenhain Coordinate rendering flag. Category: Anchor (Coordinate Mark). IsoCoordinate = 7 Iso Coordinate rendering flag. Category: Anchor (Coordinate Mark). Mech = 5 Mechanical components rendering flag. This flag covers the flags WorkpieceGeom, Tool and Fixture. Category: Solid. ProgramZero = 6 Program Zero rendering flag. Category: Anchor (Coordinate Mark). Tool = 3 Tool rendering flag. Category: Solid. WorkpieceGeom = 2 Workpiece geometry rendering flag. Category: Solid." }, "api/Hi.MachiningProcs.RequireActiveSessionAttribute.html": { "href": "api/Hi.MachiningProcs.RequireActiveSessionAttribute.html", "title": "Class RequireActiveSessionAttribute | HiAPI-C# 2025", "summary": "Class RequireActiveSessionAttribute Namespace Hi.MachiningProcs Assembly HiNc.dll Action filter for the session-scoped web-API surface: before a guarded action runs, verifies a machining session is active (SessionShell is non-null). When none is active it short-circuits with HTTP 409 and an NoActiveSession() envelope, so a REST / AI caller gets a helpful “call BeginSession() first” notice instead of a null-reference 500. Apply at the controller level; exempt the session lifecycle entry points (BeginSession / EndSession) with AllowNoActiveSessionAttribute. [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = false)] public sealed class RequireActiveSessionAttribute : Attribute, IActionFilter, IFilterMetadata Inheritance object Attribute RequireActiveSessionAttribute Implements IActionFilter IFilterMetadata Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() 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) Methods OnActionExecuted(ActionExecutedContext) Called after the action executes, before the action result. public void OnActionExecuted(ActionExecutedContext context) Parameters context ActionExecutedContext The ActionExecutedContext. OnActionExecuting(ActionExecutingContext) Called before the action executes, after model binding is complete. public void OnActionExecuting(ActionExecutingContext context) Parameters context ActionExecutingContext The ActionExecutingContext." }, "api/Hi.MachiningProcs.RequireLoadedProjectAttribute.html": { "href": "api/Hi.MachiningProcs.RequireLoadedProjectAttribute.html", "title": "Class RequireLoadedProjectAttribute | HiAPI-C# 2025", "summary": "Class RequireLoadedProjectAttribute Namespace Hi.MachiningProcs Assembly HiNc.dll Action filter for the project-level web-API surface: before a guarded action runs, verifies a project is loaded (MachiningProject is non-null). When none is loaded it short-circuits with HTTP 409 and an NoProjectLoaded() envelope, so a REST / AI caller gets a helpful “create or load a project first” notice instead of a null-reference 500 (the project-level members — MachiningActRunner.Config, workpiece, runners — are null until a project is open). Apply at the controller level; exempt the endpoints that create or load a project with AllowNoLoadedProjectAttribute. [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = false)] public sealed class RequireLoadedProjectAttribute : Attribute, IActionFilter, IFilterMetadata Inheritance object Attribute RequireLoadedProjectAttribute Implements IActionFilter IFilterMetadata Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) object.GetType() 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) Methods OnActionExecuted(ActionExecutedContext) Called after the action executes, before the action result. public void OnActionExecuted(ActionExecutedContext context) Parameters context ActionExecutedContext The ActionExecutedContext. OnActionExecuting(ActionExecutingContext) Called before the action executes, after model binding is complete. public void OnActionExecuting(ActionExecutingContext context) Parameters context ActionExecutingContext The ActionExecutingContext." }, "api/Hi.MachiningProcs.SessionShell.html": { "href": "api/Hi.MachiningProcs.SessionShell.html", "title": "Class SessionShell | HiAPI-C# 2025", "summary": "Class SessionShell Namespace Hi.MachiningProcs Assembly HiNc.dll End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. public class SessionShell : ISessionShell Inheritance object SessionShell Implements ISessionShell 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) Fields DefaultScriptOptions The default Roslyn ScriptOptions for session scripts — references the SessionShell-domain assemblies and imports. Used as the initial value of the project-level ScriptOptions. public static readonly ScriptOptions DefaultScriptOptions Field Value ScriptOptions Properties DefaultParaTemplateDimension Gets or sets the parameter template dimension (2D or 3D). [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. [Obsolete] public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EmbeddedLogMode Gets or sets the embedded log mode for NC optimization. [JsAce] public static NcOptimizationEmbeddedLogMode EmbeddedLogMode { get; set; } Property Value NcOptimizationEmbeddedLogMode EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnableIndividualStepAdjustmentLog Gets or sets whether to enable individual step adjustment logging. The setter drives both optimization pipelines: the legacy HardNc Hi.NcOpt.NcOptProc.EnableIndividualStepAdjustmentLog and the SoftNc Hi.NcOpt.StepFeedSolver.EnableStepAdjustmentLog statics are assigned together; the getter reads the legacy static (the pair only diverges when a static is assigned directly, bypassing this proxy). [JsAce] public static bool EnableIndividualStepAdjustmentLog { get; set; } Property Value bool EnableMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableMapOnSelectionEnd { get; set; } Property Value bool EnableMotionDependentMachiningResolution Gets or sets whether motion-dependent machining resolution is enabled. [JsAce] public bool EnableMotionDependentMachiningResolution { get; set; } Property Value bool EnableMzLeverWeightingOnTraining Gets or sets whether Mz lever weighting is enabled on training. [Obsolete] public bool EnableMzLeverWeightingOnTraining { get; set; } Property Value bool EnableNativeMillingPhysics Gets or sets whether the physics runs on the native (core.dll) kernels. Default is true, and in shipping builds the native kernel is the only physics implementation — setting this to false throws unless the non-shipping managed reference assembly is registered (dev/test hosts only). [JsAce(DocContentHtml = \"Run the physics on the native kernels (the only implementation in shipping builds).\")] public bool EnableNativeMillingPhysics { get; set; } Property Value bool EnablePauseOnCollision Gets or sets whether to pause execution when a collision is detected. This property only has an effect if collision detection is enabled. [Obsolete] public bool EnablePauseOnCollision { get; set; } Property Value bool EnablePauseOnFailure Gets or sets whether to pause on failure during execution. [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableSampleNormalization [Obsolete] public bool EnableSampleNormalization { get; set; } Property Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. EnableSoftNcRunner Switches between SoftNcRunner and the legacy HardNcRunner. Default true; set false to fall back to the legacy runner (e.g. for NC optimization, which still reads NcLines). Will be removed when HardNcRunner is fully replaced. [JsAce(DocContentHtml = \"Enable SoftNcRunner (default) instead of legacy HardNcRunner.\")] public bool EnableSoftNcRunner { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Fixture Gets or sets the fixture. [JsAce] public Fixture Fixture { get; set; } Property Value Fixture Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. [JsAce] [Obsolete(\"Use MachiningResolution_mm instead.\")] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MappingAnchorDateTime Project-scoped anchor that converts an absolute-time mapping window / sensor stream into a relative timecode. Delegates to MappingAnchorDateTime; auto-set from the first controller instant on PlayCsvFile(string), or set here. [JsAce] public DateTime? MappingAnchorDateTime { get; set; } Property Value DateTime? MillingCycleDivisionNum Gets or sets the number of angular divisions per spindle revolution for milling force calculation. The default (36) is intended for normal simulation — a finer division does not improve force playback and only slows it down. Only TrainMillingPara(SampleFlag, string, double, ICuttingPara) benefits from a finer division (e.g. 180): set it in the training script before the simulation run the training consumes. The value is process-wide (backed by RotationDivisionNum): it is not saved into the project and survives ResetRuntime() and project switches, so set it back (or restart the instance) after training to keep normal simulation fast. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double, ICuttingPara) is intended to be used. [JsAce(DocContentHtml = \"Obsoleted. Use MillingCycleDivisionNum instead.\")] [Obsolete(\"Use MillingCycleDivisionNum instead.\")] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption Gets or sets the NC optimization options. [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for MAX spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for MAX spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Gets or sets the MAX spindle torque safety factor for NC optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for MAX spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions ScriptOptions. public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions ShellProgress Session-level routine / lifecycle message sink on the IMessage channel (cache reset, file progress, session start/done). Owned by MachiningSession (truly session-scoped); exposed here for scripts and the session facade. [JsAce] public ShellProgress ShellProgress { get; } Property Value ShellProgress StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int StepDiagnosticProgress Step-anchored message sink on the IMessage channel (see StepDiagnosticProgress). [JsAce] public StepDiagnosticProgress StepDiagnosticProgress { get; } Property Value StepDiagnosticProgress Workpiece Gets or sets the workpiece. [JsAce] public Workpiece Workpiece { get; set; } Property Value Workpiece Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AdjustedFeedPerCycle(double, double) Gets a new feed per cycle machining motion resolution instance with adjusted scale and minimum linear resolution. [JsAce(\"AdjustedFeedPerCycle($1scale,$2minLinearResolution_mm)\")] public FeedPerCycleMachiningMotionResolution AdjustedFeedPerCycle(double scale, double minLinearResolution_mm = 0) Parameters scale double The scale factor for the resolution. minLinearResolution_mm double The minimum linear resolution in millimeters. Default is 0. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified parameters. AlignWorkpieceProgramZeroToIso(string) Places workpiece + fixture so that ProgramZeroAnchor coincides with the world position the spindle reaches when the machine coordinate equals isoCoordId's entry (G54/G55/...). The buckle anchors must already be set per the general rule (typically by the project XML): FixtureBuckle at the bottom center of the workpiece geom, WorkpieceBuckle at the top center of the fixture geom, ProgramZeroAnchor at the workpiece-geom top center (or any chosen tip). Only GeomToTableTransformer is mutated. Delegates topology math to AlignWorkpieceProgramZeroToIso(IMachiningEquipment, Vec3d). [JsAce] public void AlignWorkpieceProgramZeroToIso(string isoCoordId) Parameters isoCoordId string ID into the IsoCoordinateTable, e.g. “G54”. AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() Begins a new machining session. Not for end user. public void BeginSession() ClearDefectDisplayee() Clears the defect displayee from the workpiece. [JsAce] public void ClearDefectDisplayee() ClearTimeMappingData() Clears all time mapping data. [JsAce] public void ClearTimeMappingData() ConvertClToNcFiles(string) Converts the CLSF play of the current session into Fanuc NC files (writeback synthesis): the MSYS frame becomes a G68.2 tilted working plane, tool posture becomes G43.4 RTCP with rotary words, motions become G00/G01/G02/G03. Play the CL file on an XYZABC machine chain first, then convert. [JsAce(Snippet = \"ConvertClToNcFiles(\\\"Output/[NcName].nc\\\")\", DocContentHtml = \"Convert the played CLSF into Fanuc NC files by substitute template keyword \\\"[NcName]\\\"\")] public void ConvertClToNcFiles(string relNcFileTemplate = \"Output/[NcName].nc\") Parameters relNcFileTemplate string Output path template; [NcName] is replaced by the source file name. Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() Ends the current machining session. Not for end user. public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] public void ErrorMessage(string message) Parameters message string The error message to display ExportMeshedGeomToObj(string, double) Exports the current meshed geometry to a Wavefront OBJ file with per-vertex RGB. [JsAce(\"ExportMeshedGeomToObj($1\\\"dstFile\\\",$2resolution_mm)\")] public void ExportMeshedGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output OBJ file resolution_mm double Resolution in millimeters (0 for default) ExportMeshedGeomToPly(string, double) Exports the current meshed geometry to a binary PLY file with per-vertex RGB. [JsAce(\"ExportMeshedGeomToPly($1\\\"dstFile\\\",$2resolution_mm)\")] public void ExportMeshedGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output PLY file resolution_mm double Resolution in millimeters (0 for default) ExportMeshedGeomToStl(string, double) Exports the current meshed geometry to an STL file. [JsAce(\"ExportMeshedGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] public void ExportMeshedGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) ExportRuntimeGeomToObj(string, double) Legacy script alias of ExportMeshedGeomToObj(string, double); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ExportMeshedGeomToObj instead.\")] public void ExportRuntimeGeomToObj(string relFile, double resolution_mm = 0) Parameters relFile string resolution_mm double ExportRuntimeGeomToPly(string, double) Legacy script alias of ExportMeshedGeomToPly(string, double); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ExportMeshedGeomToPly instead.\")] public void ExportRuntimeGeomToPly(string relFile, double resolution_mm = 0) Parameters relFile string resolution_mm double ExportRuntimeGeomToStl(string, double) Legacy script alias of ExportMeshedGeomToStl(string, double); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ExportMeshedGeomToStl instead.\")] public void ExportRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string resolution_mm double FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformFlutingShiftAngle_deg(int) Gets the shift angle in degrees for the uniform fluting of the specified tool, that is, for a cutter whose flutes all share one baseline flute contour. [JsAce(\"GetUniformFlutingShiftAngle_deg($1toolId)\")] public double GetUniformFlutingShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end LoadCuttingParaByFile(string) Loads cutting parameters from a file. [JsAce(\"LoadCuttingParaByFile($1\\\"relFile\\\")\")] public void LoadCuttingParaByFile(string relFile) Parameters relFile string File path relative to BaseDirectory. Map(string, IFileTimeSection, CycleSamplingMode?) Maps selection data to time section. public Task Map(string key, IFileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters key string Identifier key for the selection fileTimeSection IFileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation MapByActualTime(string, CycleSamplingMode) Maps machining steps by actual time from a time shot file. [Obsolete] public void MapByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. MapSeriesByCsvFile(string, CycleSamplingMode) Maps machining steps by actual time from a time shot csv file. [JsAce(\"MapSeriesByCsvFile($1timeShotRelFile)\")] public void MapSeriesByCsvFile(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode = CycleSamplingMode.SpindleCycle) Parameters timeShotRelFile string Relative path to the time shot file. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. Remarks cycleSamplingMode sets how much sensor data each step is paired with. The window is anchored at the step's end time and runs forward for one cycle period, so a step is always regressed against samples its neighbours produced. While the cut is steady that costs nothing: a neighbour cutting the same arc at the same chip load produces, at a given rotation angle, the force this step would have produced, so the borrowed rows are extra samples rather than extra error. The pairing turns into a systematic bias only where the cutter-workpiece engagement changes across the window — cutter entry, pass exit, corners, depth changes. Restricting training to the steady part of the cut is therefore the largest single accuracy lever, and once the transient is out the window choice stops mattering: on the D8 2-flute Al6061-T6 case the two modes differ by 2.2 percentage points over the whole path (Fc error at feed-per-tooth 0.2: −9.3 % for SpindleCycle versus −7.1 % for FluteCycle) but by 0.06 over the steady part alone, where both reach −3.3 % / −3.2 % at R 98.5 %. Keep the default and its larger sample count; on a single-flute cutter the two modes coincide anyway. Gaps in the data (an acquisition dropout, or rows carved out to keep the steady section only) are handled: a step whose window contains no measured row is excluded from the mapping, and one Map-ShotGap--StepsSkipped warning carries the count. A window-edge row is only interpolated when its bracketing rows span at most two spindle revolutions — farther rows sit across a gap and no edge row is fabricated from them. MapSingleByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"MapSingleByCsvFile($1\\\"csvFile\\\")\")] public void MapSingleByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] public void Message(string message) Parameters message string The message to display OptCallPreferFuncIndexDictionary() Gets the dictionary of preferred function index for NC optimization. [JsAce(\"OptCallPreferFuncIndexDictionary()\")] public Dictionary, double> OptCallPreferFuncIndexDictionary() Returns Dictionary, double> Dictionary mapping functions to their preference indexes. OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. Routing rule: when EnableSoftNcRunner is on and the session holds played SoftNc SyntaxPieceLayers (non-empty), the SoftNc pipeline (OptimizeNcFiles(string, string, ICuttingPara, IProgress, CancellationToken, Func, Action) / Hi.NcOpt.SoftNcOptProc) is used; otherwise the legacy HardNc OptimizeToFiles(ICuttingPara, MachiningSession, LinkedList, HardNcEnv, MachiningToolHouse, ClStrip, string, IProgress, CancellationToken, string) path runs unchanged. Both paths first clear every cutter's MillingCutterOptLimit cache. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() A pausable mark for the playing process. The function enables Pause() to take effect. [JsAce(\"Pace();\")] public void Pace() Remarks Waits for the player to signal the next pace. Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] public void Pause() PlayAct(IAct, ISentenceCarrier, CancellationToken?) Plays an act with pacing control. [JsAce] public void PlayAct(IAct act, ISentenceCarrier sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct The act to play. sourceCommand ISentenceCarrier The source command. cancellationToken CancellationToken? Cancellation token. PlayBrandNcFile(string) Plays a famous-brand NC code file with the specified relative path (no kind dispatch — always the brand runner). [JsAce(\"PlayBrandNcFile($1\\\"ncFile\\\");\")] public void PlayBrandNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayClFile(string) Plays an NX-CL (CLSF) file with the specified relative path. [JsAce(\"PlayClFile($1\\\"clFile\\\");\")] public void PlayClFile(string relFilePath) Parameters relFilePath string Relative path to the CLSF file PlayClTeleport(double, double, double, double, double, double) Plays a CL (cutter location) teleport operation. [JsAce] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double X coordinate. y double Y coordinate. z double Z coordinate. i double I vector component. j double J vector component. k double K vector component. PlayCsvFile(string) Plays an Csv file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string, NcKind) Plays an NC program file with the specified relative path, the runner picked by kind (Auto = by file extension: .cl/.cls/.clsf play as CL, .csv as CSV, anything else as brand NC — so existing scripts keep their behavior). [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] public void PlayNcFile(string relNcFilePath, NcKind kind = NcKind.Auto) Parameters relNcFilePath string Relative path to the NC program file kind NcKind Which runner plays the file; Auto detects by extension. PlayToolingTeleport(int) Plays a tooling teleport operation. [JsAce] public void PlayToolingTeleport(int toolId) Parameters toolId int The tool ID to teleport. PowerReset() Performs a controller power reset: every IPowerResettable dependency in the active NcDependencyList clears its volatile subset (e.g. Fanuc common volatile macro variables #100-#499). Persistent state is left intact. [JsAce(\"PowerReset();\")] public void PowerReset() Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadCsvByTimeInterpolation(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [Obsolete] public void ReadCsvByTimeInterpolation(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory ReadMeshedGeom(string) Reads meshed geometry from a file. [JsAce(\"ReadMeshedGeom($1\\\"srcFile\\\")\")] public void ReadMeshedGeom(string relFile) Parameters relFile string Relative path to the input file ReadRuntimeGeom(string) Legacy script alias of ReadMeshedGeom(string); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ReadMeshedGeom instead.\")] public void ReadRuntimeGeom(string relFile) Parameters relFile string RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

Register Step Variable.

\\\"unit\\\" is nullable

\\\"formatString\\\" is nullable

\")] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RegisterWriteSyntaxPieces(string) Registers a text writer so each executed SyntaxPiece is appended to relOutputFile under the machining project base directory for debugging. [JsAce(Snippet = \"RegisterWriteSyntaxPieces($1\\\"Cache/syntax-pieces-output.txt\\\")\")] public void RegisterWriteSyntaxPieces(string relOutputFile) Parameters relOutputFile string Relative path for the output log file. RegisterWriteSyntaxPiecesWithActs(string) Registers a writer that outputs each SyntaxPiece once, followed by its associated IAct entries (one-to-many). [JsAce(Snippet = \"RegisterWriteSyntaxPiecesWithActs($1\\\"Cache/syntax-pieces-acts-output.txt\\\")\")] public void RegisterWriteSyntaxPiecesWithActs(string relOutputFile) Parameters relOutputFile string Output file path relative to BaseDirectory. RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] public void ResetRuntime() RunBrandNcFile(string) Runs a famous-brand NC code file with the specified relative path (no kind dispatch — always the brand runner). Not for end user with no programing skill. [JsAce(\"RunBrandNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunBrandNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed RunNc(string, string) Runs NC code directly from a string. Not for end user with no programing skill. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string, NcKind) Runs an NC program file with the specified relative path, the runner picked by kind (Auto = by file extension: .cl/.cls/.clsf run as CL, .csv as CSV, anything else as brand NC — so existing scripts keep their behavior). Not for end user with no programing skill. [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] public IEnumerable RunNcFile(string relNcFilePath, NcKind kind = NcKind.Auto) Parameters relNcFilePath string Relative path to the NC program file kind NcKind Which runner runs the file; Auto detects by extension. Returns IEnumerable Enumerable sequence of actions to be executed ScaledFeedPerCycle(double) Gets a new feed per cycle machining motion resolution instance with the specified scale. [JsAce(\"ScaledFeedPerCycle($1scale)\")] public FeedPerCycleMachiningMotionResolution ScaledFeedPerCycle(double scale) Parameters scale double The scale factor for the resolution. Returns FeedPerCycleMachiningMotionResolution A new FeedPerCycleMachiningMotionResolution instance with the specified scale. ScanMeshedGeomInfDefect() Scans the meshed geometry for defects. After scanning, the scanned defects will render in the workpiece. [JsAce] public bool? ScanMeshedGeomInfDefect() Returns bool? True if defects are found, false otherwise, or null if the operation cannot be performed. ScanRuntimeGeomInfDefect() Legacy script alias of ScanMeshedGeomInfDefect(); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ScanMeshedGeomInfDefect instead.\")] public bool? ScanRuntimeGeomInfDefect() Returns bool? SetAllSnapshotSyntaxEnabled(bool) Sets IsEnabled on every SnapshotSyntax reachable from the active SoftNcRunner's NcSyntaxList (top-level slots and inside BundleSyntax). No-op when SoftNcRunner is not the active runner. [JsAce(DocContentHtml = \"Enable or disable every SnapshotSyntax in the active SoftNcRunner pipeline at once.\")] public void SetAllSnapshotSyntaxEnabled(bool isEnabled) Parameters isEnabled bool SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformFlutingShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform fluting of the specified tool, that is, for a cutter whose flutes all share one baseline flute contour. [JsAce(\"SetUniformFlutingShiftAngle_deg($1toolId,$2angle_deg)\")] public void SetUniformFlutingShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double, ICuttingPara) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 0.1, ICuttingPara paraTemplate = null) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering paraTemplate ICuttingPara Optional parameter template for cutting operations. WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] public void WarningMessage(string message) Parameters message string The warning message to display WriteMeshedGeom(string) Writes the current meshed geometry to a file. [JsAce(\"WriteMeshedGeom($1\\\"dstFile\\\")\")] public void WriteMeshedGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeom(string) Legacy script alias of WriteMeshedGeom(string); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use WriteMeshedGeom instead.\")] public void WriteRuntimeGeom(string relFile) Parameters relFile string WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series (shot) data to files at the given sampling period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Sampling period in milliseconds Remarks Each row is interpolated from the per-division force waveform, so the information carried per spindle revolution is min(MillingCycleDivisionNum, 60000 / (rpm * resolutionPeroid_ms)). When the written file is fed back into TrainMillingPara(SampleFlag, string, double, ICuttingPara), this period — not MillingCycleDivisionNum and not the machining resolution — sets the accuracy ceiling: sampling coarser than the division period throws away waveform detail that a finer angular grid cannot recover. Choose it at or below 60000 / (rpm * MillingCycleDivisionNum) ms, and when the result is compared against a physical measurement, match the real DAQ rate so both sides carry the same information density. Fine periods produce large files (a 6-cut program: 13 MB at 1 ms, 128 MB at 0.1 ms). WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Events MachiningStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [Obsolete(\"Use SessionStepBuilt instead.\")] public event MachiningActRunner.MachiningStepBuiltDelegate MachiningStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate MachiningStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionStepSelected instead.\")] public event Action MachiningStepSelected Event Type Action SessionSourcedActEntry Session-scoped event triggered for each SourcedActEntry produced during NC/CSV execution. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSourcedActEntry+=($1entry)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered for each SourcedActEntry. entry.SentenceSource is the source sentence; entry.Act is the associated act (may be null).\")] public event Action SessionSourcedActEntry Event Type Action SessionStepBuilt Session-scoped event triggered when a machining step is built. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). For app-lifetime event, use MachiningStepBuilt instead. [JsAce(Snippet = \"SessionStepBuilt+=($1preStep,$2curStep)=>{$3Command};\", DocContentHtml = \"Session-scoped step built event. preStep is the Previous Milling Step; curStep is the Current Milling Step. preStep is null if no previous step existed.\")] public event MachiningActRunner.MachiningStepBuiltDelegate SessionStepBuilt Event Type MachiningActRunner.MachiningStepBuiltDelegate SessionStepSelected Session-scoped event triggered when a machining step is selected. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionStepSelected+=($1millingStep)=>{$2Command};\")] public event Action SessionStepSelected Event Type Action SessionSyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [JsAce(Snippet = \"SessionSyntaxPieceRan+=($1syntaxPiece)=>{$2Command};\", DocContentHtml = \"Session-scoped event triggered after each SyntaxPiece is executed. syntaxPiece may be null if the source command is not a SyntaxPiece.\")] public event Action SessionSyntaxPieceRan Event Type Action SyntaxPieceRan Session-scoped event triggered when a syntax piece has been executed. Lifetime is bound to MachiningSession: created by BeginSession(), released by EndSession(). [Obsolete(\"Use SessionSyntaxPieceRan instead.\")] public event Action SyntaxPieceRan Event Type Action" }, "api/Hi.MachiningProcs.SessionShellController.html": { "href": "api/Hi.MachiningProcs.SessionShellController.html", "title": "Class SessionShellController | HiAPI-C# 2025", "summary": "Class SessionShellController Namespace Hi.MachiningProcs Assembly HiNc.dll HTTP controller exposing SessionShell over the web API. Each action delegates to the underlying SessionShell instance owned by Hi.MachiningProcs.SessionShellController.LocalProjectService. [ApiController] [Route(\"api/[controller]/[action]\")] [ProducesResponseType(typeof(ApiActionResult), 409)] public class SessionShellController : ControllerBase Inheritance object ControllerBase SessionShellController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 SessionShellController(LocalProjectService) Initializes a new instance. public SessionShellController(LocalProjectService projectService) Parameters projectService LocalProjectService Properties DefaultParaTemplateDimension DefaultParaTemplateDimension [JsAce] public int DefaultParaTemplateDimension { get; set; } Property Value int DiffVisualRadius_mm Gets or sets the visual radius in millimeters for difference visualization. Controls the radius used for highlighting differences between workpiece states. [JsAce] public double DiffVisualRadius_mm { get; set; } Property Value double DispCacheMb Gets or sets the display cache size in megabytes. [Obsolete] public long DispCacheMb { get; set; } Property Value long DispCache_Mb Gets or sets the display cache size in megabytes. [JsAce] public long DispCache_Mb { get; set; } Property Value long EnableAutoMapOnSelectionEnd Gets or sets whether to automatically map selections when they end. [JsAce] public bool EnableAutoMapOnSelectionEnd { get; set; } Property Value bool EnableCollisionDetection Gets or sets whether collision detection is enabled. [JsAce(DocContentHtml = \"Enable Collision Detection.\")] public bool EnableCollisionDetection { get; set; } Property Value bool EnablePauseOnFailure EnablePauseOnFailure [JsAce(DocContentHtml = \"Enable Pause On Failure.\")] public bool EnablePauseOnFailure { get; set; } Property Value bool EnablePhysics Gets or sets whether milling force evaluation is enabled. [JsAce(DocContentHtml = \"Enable milling force evaluation.\")] public bool EnablePhysics { get; set; } Property Value bool EnableWearEffect Gets or sets whether tool wear effects are enabled in simulation. [JsAce] public bool EnableWearEffect { get; set; } Property Value bool FeedPerCycle Gets a new feed per cycle machining motion resolution instance. [JsAce] public FeedPerCycleMachiningMotionResolution FeedPerCycle { get; } Property Value FeedPerCycleMachiningMotionResolution FeedPerTooth Gets a new feed per tooth machining motion resolution instance. [JsAce] public FeedPerToothMachiningMotionResolution FeedPerTooth { get; } Property Value FeedPerToothMachiningMotionResolution Global [JsAce(\"Global[$1key]\")] public Dictionary Global { get; } Property Value Dictionary InitSpindleTemperature_C Gets or sets the initial spindle temperature in degrees Celsius. [JsAce(DocContentHtml = \"Spindle Temperature on initialization.\")] public double InitSpindleTemperature_C { get; set; } Property Value double JsAceCompletionProfileJsonArray Internal used. public static JsonArray JsAceCompletionProfileJsonArray { get; } Property Value JsonArray MachiningMotionResolution Gets or sets the machining motion resolution. [JsAce] public IMachiningMotionResolution MachiningMotionResolution { get; set; } Property Value IMachiningMotionResolution MachiningResolution Gets or sets the machining resolution in millimeters. For legacy compatable. [JsAce] [Obsolete] public double MachiningResolution { get; set; } Property Value double MachiningResolution_mm Gets or sets the machining resolution in millimeters. [JsAce] public double MachiningResolution_mm { get; set; } Property Value double MachiningSession public MachiningSession MachiningSession { get; } Property Value MachiningSession MapTask Task tracking the status of mapping operations. public Task MapTask { get; set; } Property Value Task MillingCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] public static int MillingCycleDivisionNum { get; set; } Property Value int MillingForceCycleDivisionNum Gets or sets the number of divisions per cycle for milling force calculation. This property should be set before milling force evaluation if TrainMillingPara(SampleFlag, string, double) is intended to be used. [JsAce] [Obsolete] public static int MillingForceCycleDivisionNum { get; set; } Property Value int NcOptOption NcOptOption [JsAce] public NcOptOption NcOptOption { get; set; } Property Value NcOptOption OptEnableDepthCompensation Enables or disables depth compensation during optimization. [JsAce] public bool OptEnableDepthCompensation { get; set; } Property Value bool OptEnableFeedrate Gets or sets whether to enable feed rate optimization in NC optimization. [JsAce] public bool OptEnableFeedrate { get; set; } Property Value bool OptEnableForwardCompensation Enables or disables forward compensation during optimization. [JsAce] public bool OptEnableForwardCompensation { get; set; } Property Value bool OptEnableInterpolation Enables or disables reinterpolation for optimization. [JsAce] public bool OptEnableInterpolation { get; set; } Property Value bool OptEnableSideCompensation Enables or disables side compensation during optimization. [JsAce] public bool OptEnableSideCompensation { get; set; } Property Value bool OptExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters for NC optimization. This is the distance after the current segment that will be considered for optimization. [JsAce] public double OptExtendedPostDistance_mm { get; set; } Property Value double OptExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters for NC optimization. This is the distance before the current segment that will be considered for optimization. [JsAce] public double OptExtendedPreDistance_mm { get; set; } Property Value double OptFeedrateAssignmentRatio Gets or sets the feedrate assignment ratio for optimization. If the feedrate change exceeds this ratio, the feedrate in the NC line will be updated. [JsAce] public double OptFeedrateAssignmentRatio { get; set; } Property Value double OptMaxAcceleration_mmds2 Maximum acceleration in mm/s² during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxAcceleration_mmds2 { get; set; } Property Value double OptMaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters for optimization. [JsAce] public double OptMaxFeedPerTooth_mm { get; set; } Property Value double OptMaxFeedrate_mmdmin Maximum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMaxFeedrate_mmdmin { get; set; } Property Value double OptMaxJerk_mmds3 Maximum jerk in mm/s³ during optimization. Only takes effect on reinterpolated section. [JsAce(DocContentHtml = \"Only take effect on reinterpolated section.\")] public double OptMaxJerk_mmds3 { get; set; } Property Value double OptMinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters for optimization. [JsAce] public double OptMinFeedPerTooth_mm { get; set; } Property Value double OptMinFeedrate_mmdmin Minimum feed rate in mm/min for cutting movements during optimization. [JsAce] public double OptMinFeedrate_mmdmin { get; set; } Property Value double OptPreferedForce_N Preferred force in N for optimization. [JsAce] public double OptPreferedForce_N { get; set; } Property Value double OptRapidFeed_mmdmin Rapid feed rate in mm/min for non-cutting movements during optimization. [JsAce] public double OptRapidFeed_mmdmin { get; set; } Property Value double OptSpindlePowerSafetyFactor Safety factor for spindle power during optimization. [JsAce] public double OptSpindlePowerSafetyFactor { get; set; } Property Value double OptSpindlePowerUtilizationFactor Utilization factor for spindle power during optimization. It is the reciprocal of the spindle power safety factor. [JsAce] public double OptSpindlePowerUtilizationFactor { get; set; } Property Value double OptSpindleTorqueSafetyFactor Safety factor for spindle torque during optimization. [JsAce] public double OptSpindleTorqueSafetyFactor { get; set; } Property Value double OptSpindleTorqueUtilizationFactor Utilization factor for spindle torque during optimization. It is the reciprocal of the spindle torque safety factor. [JsAce] public double OptSpindleTorqueUtilizationFactor { get; set; } Property Value double OptThermalYieldSafetyFactor Safety factor for thermal yield during optimization. [JsAce] public double OptThermalYieldSafetyFactor { get; set; } Property Value double OptThermalYieldUtilizationFactor Utilization factor for thermal yield during optimization. It is the reciprocal of the thermal yield safety factor. [JsAce] public double OptThermalYieldUtilizationFactor { get; set; } Property Value double OptYieldingSafetyFactor Safety factor for yielding during optimization. [JsAce] public double OptYieldingSafetyFactor { get; set; } Property Value double OptYieldingUtilizationFactor Utilization factor for yielding during optimization. It is the reciprocal of the yielding safety factor. [JsAce] public double OptYieldingUtilizationFactor { get; set; } Property Value double ScriptOptions public ScriptOptions ScriptOptions { get; set; } Property Value ScriptOptions SessionShell Gets the underlying SessionShell instance. public SessionShell SessionShell { get; } Property Value SessionShell StepCount Gets the total number of milling steps. [JsAce] public int StepCount { get; } Property Value int Methods AddTimeDataByFile(string, string, double, double) Adds time-based data from a file to the time mapping dictionary with specified time bounds in seconds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [NonAction] public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string Key to identify the data relFile string Relative path to the data file beginTime double Beginning time in seconds endTime double Ending time in seconds Returns bool True if the data was successfully added, false otherwise AddTimeDataByFile(string, string, string, string) Adds time-based data from a file to the time mapping dictionary with specified time bounds. [JsAce(\"AddTimeDataByFile($1key, $2relFile, $3beginTime, $4endTime)\")] [HttpPost] public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string Key to identify the data relFile string Relative path to the data file beginTimeText string Beginning time as text (seconds or TimeSpan format) endTimeText string Ending time as text (seconds or TimeSpan format) Returns bool True if the data was successfully added, false otherwise AppendMessagesToFile(string, params string[]) Appends messages to a file, optionally filtered by tags. [JsAce(\"AppendMessagesToFile(\\\"dstRelFile\\\",flags)\")] [HttpPost] public void AppendMessagesToFile(string dstRelFile, params string[] flags) Parameters dstRelFile string Destination relative file path flags string[] Optional flags to filter messages by tags BeginPreserve() Begin Preserve section in optimzation process. [JsAce(\"BeginPreserve()\")] [HttpPost] public void BeginPreserve() BeginSelection(string, AnchorMode, IStepShift) Begin mark on current line. milling step() has not triggered yet. [NonAction] public void BeginSelection(string key, AnchorMode anchorMode = AnchorMode.LineBegin, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the beginning of selection shift IStepShift Step shift to apply BeginSession() BeginSession(). Callable without an active session (it is how a session is started) but still requires a loaded project; routes straight to Hi.MachiningProcs.SessionShellController.LocalProjectService so it does not touch the null session-scoped facade. [HttpPost] public void BeginSession() ClearTimeMappingData() Clears all time mapping data. [JsAce] [HttpPost] public void ClearTimeMappingData() ConvertClToNcFiles(string) Converts the CLSF play of the current session into Fanuc NC files (writeback synthesis — MSYS tilt becomes G68.2, tool posture becomes G43.4 RTCP with rotary words). [JsAce(Snippet = \"ConvertClToNcFiles(\\\"Output/[NcName].nc\\\")\", DocContentHtml = \"Convert the played CLSF into Fanuc NC files by substitute template keyword \\\"[NcName]\\\"\")] [HttpPost] public IReadOnlyList ConvertClToNcFiles(string relNcFileTemplate = \"Output/[NcName].nc\") Parameters relNcFileTemplate string Output path template; [NcName] is replaced by the source file name. Returns IReadOnlyList Diff(double) Performs a difference analysis on the workpiece geometry to detect variations. [JsAce(\"Diff($1detectionRadius_mm)\")] [HttpPost] public void Diff(double detectionRadius_mm) Parameters detectionRadius_mm double Radius for detecting differences EmbedSingleDataPerStepByCsvFile(string) Reads a CSV file and performs time-based interpolation to map data to milling steps. It is one (step) - one (embedded-data) mapping. [JsAce(Snippet = \"EmbedSingleDataPerStepByCsvFile($1\\\"csvFile\\\")\")] [HttpPost] public void EmbedSingleDataPerStepByCsvFile(string csvFile) Parameters csvFile string Path to the CSV file relative to the base directory EndPreserve() End Preserve section in optimzation process. [JsAce(\"EndPreserve()\")] [HttpPost] public void EndPreserve() EndSelection(string, AnchorMode, IStepShift) End mark on current line for selection. [NonAction] public void EndSelection(string key, AnchorMode anchorMode = AnchorMode.LineEnd, IStepShift shift = null) Parameters key string Identifier key for the selection anchorMode AnchorMode Mode for anchoring the end of selection shift IStepShift Step shift to apply EndSession() EndSession(). Callable without an active session (a no-op when none is active); routes straight to Hi.MachiningProcs.SessionShellController.LocalProjectService. [HttpPost] public void EndSession() ErrorMessage(string) Displays an error message in the message host. [JsAce(\"ErrorMessage($1message)\")] [HttpPost] public void ErrorMessage(string message) Parameters message string The error message to display ExportMeshedGeomToStl(string, double) Exports the current meshed geometry to an STL file. [JsAce(\"ExportMeshedGeomToStl($1\\\"dstFile\\\",$2resolution_mm)\")] [HttpPost] public void ExportMeshedGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string Relative path to the output STL file resolution_mm double Resolution in millimeters (0 for default) ExportRuntimeGeomToStl(string, double) Legacy script alias of ExportMeshedGeomToStl(string, double); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ExportMeshedGeomToStl instead.\")] [HttpPost] public void ExportRuntimeGeomToStl(string relFile, double resolution_mm = 0) Parameters relFile string resolution_mm double FixedPace(double, double) Creates a fixed machining motion resolution with specified parameters. [JsAce(\"FixedPace($1linearResolution_mm, $2rotaryResolution_deg)\")] [NonAction] public FixedMachiningMotionResolution FixedPace(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters rotaryResolution_deg double Rotary resolution in degrees Returns FixedMachiningMotionResolution A new fixed machining motion resolution instance GetMillingStep(int) Retrieves a milling step at the specified index. [JsAce(Snippet = \"GetMillingStep($1\\\"stepIndex\\\")\")] [NonAction] public MachiningStep GetMillingStep(int stepIndex) Parameters stepIndex int Index of the milling step to retrieve Returns MachiningStep The milling step at the specified index GetStickMachiningToolObservationHeight_mm(int) Gets the observation height in millimeters for the specified stick machining tool. [JsAce(\"GetStickMachiningToolObservationHeight_mm($1toolId)\")] [HttpGet] public double GetStickMachiningToolObservationHeight_mm(int toolId) Parameters toolId int The ID of the tool Returns double The observation height in millimeters GetUniformFlutingShiftAngle_deg(int) Gets the shift angle in degrees for the uniform fluting of the specified tool, that is, for a cutter whose flutes all share one baseline flute contour. [JsAce(\"GetUniformFlutingShiftAngle_deg($1toolId)\")] [HttpGet] public double GetUniformFlutingShiftAngle_deg(int toolId) Parameters toolId int The ID of the tool Returns double The shift angle in degrees LineSelection(string, AnchorMode, IStepShift, AnchorMode, IStepShift) Create a line selection from begin to end mark. [NonAction] public void LineSelection(string key, AnchorMode beginAnchorMode = AnchorMode.LineBegin, IStepShift beginShift = null, AnchorMode endAnchorMode = AnchorMode.LineEnd, IStepShift endShift = null) Parameters key string Identifier key for the selection beginAnchorMode AnchorMode Mode for anchoring the beginning of selection beginShift IStepShift Step shift to apply at beginning endAnchorMode AnchorMode Mode for anchoring the end of selection endShift IStepShift Step shift to apply at end Map(string, IFileTimeSection, CycleSamplingMode?) Maps selection data to time section. [HttpPost] public Task Map(string key, IFileTimeSection fileTimeSection = null, StepTimeShotUtil.CycleSamplingMode? cycleSamplingMode = null) Parameters key string Identifier key for the selection fileTimeSection IFileTimeSection File time section, or null to use the one associated with the key cycleSamplingMode StepTimeShotUtil.CycleSamplingMode? Cycle sampling mode Returns Task Task representing the asynchronous mapping operation Message(string) Displays a message in the message host. [JsAce(\"Message($1message)\")] [HttpPost] public void Message(string message) Parameters message string The message to display OptimizeToFiles(string) Optimizes NC files and saves results using the specified file template. [JsAce(Snippet = \"OptimizeToFiles(\\\"Output/Opt-[NcName]\\\")\", DocContentHtml = \"Optimize To Files by substitude template keywoard \\\"[NcName]\\\"\")] [HttpPost] public void OptimizeToFiles(string relFileTemplate = \"Output/Opt-[NcName]\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder Pace() Controls the pace of machining operations during execution. [JsAce(\"Pace();\")] [HttpPost] public void Pace() Pause() Pause Player [JsAce(DocContentHtml = \"Pause Player\")] [HttpPost] public void Pause() PlayAct(IAct, ISentenceCarrier, CancellationToken?) PlayAct(IAct, ISentenceCarrier, CancellationToken?) [JsAce] [NonAction] public void PlayAct(IAct act, ISentenceCarrier sourceCommand = null, CancellationToken? cancellationToken = null) Parameters act IAct sourceCommand ISentenceCarrier cancellationToken CancellationToken? PlayBrandNcFile(string) Plays a famous-brand NC code file with the specified relative path (no kind dispatch — always the brand runner). [JsAce(\"PlayBrandNcFile($1\\\"ncFile\\\");\")] [HttpPost] public void PlayBrandNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file PlayClFile(string) Plays an NX-CL (CLSF) file with the specified relative path. [JsAce(\"PlayClFile($1\\\"clFile\\\");\")] [HttpPost] public void PlayClFile(string relFilePath) Parameters relFilePath string Relative path to the CLSF file PlayClTeleport(double, double, double, double, double, double) PlayClTeleport(double, double, double, double, double, double) [JsAce] [HttpPost] public void PlayClTeleport(double x, double y, double z, double i, double j, double k) Parameters x double y double z double i double j double k double PlayCsvFile(string) Plays an CSV file with the specified relative path. [JsAce(\"PlayCsvFile($1\\\"csvFile\\\");\")] [HttpPost] public void PlayCsvFile(string relFilePath) Parameters relFilePath string Relative path to the CSV file PlayNc(string, string) Plays NC code directly from a string, executing each action and pacing between them. [JsAce(Snippet = \"PlayNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Play NC. second parameter is the file name alternative shows in the log.\")] [HttpPost] public void PlayNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs PlayNcFile(string, NcKind) Plays an NC program file with the specified relative path, the runner picked by kind (Auto = by file extension: .cl/.cls/.clsf play as CL, .csv as CSV, anything else as brand NC). [JsAce(\"PlayNcFile($1\\\"ncFile\\\");\")] [HttpPost] public void PlayNcFile(string relNcFilePath, NcKind kind = NcKind.Auto) Parameters relNcFilePath string Relative path to the NC program file kind NcKind Which runner plays the file; Auto detects by extension. PlayToolingTeleport(int) PlayToolingTeleport(int) [JsAce] [HttpPost] public void PlayToolingTeleport(int toolId) Parameters toolId int Preserve() Preserve one line NC code in optimzation process. [JsAce(\"Preserve()\")] [HttpPost] public void Preserve() ProgressMessage(string) Displays a progress message in the message host. [JsAce(\"ProgressMessage($1message)\")] [HttpPost] public void ProgressMessage(string message) Parameters message string The progress message to display ReTrainMillingPara(SampleFlag, string, double) Re-trains milling parameters using the specified sample flag. [JsAce(\"ReTrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void ReTrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering ReadMeshedGeom(string) Reads meshed geometry from a file. [JsAce(\"ReadMeshedGeom($1\\\"srcFile\\\")\")] [HttpPost] public void ReadMeshedGeom(string relFile) Parameters relFile string Relative path to the input file ReadRuntimeGeom(string) Legacy script alias of ReadMeshedGeom(string); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use ReadMeshedGeom instead.\")] [HttpPost] public void ReadRuntimeGeom(string relFile) Parameters relFile string RegisterStepVariable(string, string, string, string, Func) Registers a step variable for tracking during execution. [JsAce(Snippet = \"RegisterStepVariable(\\\"$1key\\\",\\\"$2name\\\",\\\"$3unit\\\",\\\"$4formatString\\\",\\\"$5variableFunc\\\")\", DocContentHtml = \"

Register Step Variable.

\\\"unit\\\" is nullable

\\\"formatString\\\" is nullable

\")] [NonAction] public void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key to identify the variable name string Human-readable name of the variable unit string Physical unit of the variable (can be null) formatString string Format string for displaying the variable (can be null) variableFunc Func Function to compute the variable value from a milling step (can be null) RemoveFlyPiece() Removes any disconnected or “flying” pieces from the workpiece geometry. [JsAce] [HttpPost] public void RemoveFlyPiece() Reset() Reset Player [JsAce(DocContentHtml = \"Reset Player\")] [HttpPost] public void Reset() ResetRuntime() Clears internal buffers. [JsAce] [HttpPost] public void ResetRuntime() RunBrandNcFile(string) Runs a famous-brand NC code file with the specified relative path (no kind dispatch — always the brand runner). [JsAce(\"RunBrandNcFile($1\\\"ncFile\\\");\")] [NonAction] public IEnumerable RunBrandNcFile(string relNcFilePath) Parameters relNcFilePath string Relative path to the NC file Returns IEnumerable Enumerable sequence of actions to be executed RunNc(string, string) Runs NC code directly from a string. [JsAce(Snippet = \"RunNc($1\\\"ncCommand\\\",$2\\\"\\\"(Direct Command)\\\"\\\");\", DocContentHtml = \"Run NC. second parameter is the file name alternative shows in the log.\")] [NonAction] public IEnumerable RunNc(string ncText, string fileNameAlternative = \"--\") Parameters ncText string NC code as a string fileNameAlternative string Alternative name to display in logs Returns IEnumerable Enumerable sequence of actions to be executed RunNcFile(string, NcKind) Runs an NC program file with the specified relative path, the runner picked by kind (Auto = by file extension). [JsAce(\"RunNcFile($1\\\"ncFile\\\");\")] [NonAction] public IEnumerable RunNcFile(string relNcFilePath, NcKind kind = NcKind.Auto) Parameters relNcFilePath string Relative path to the NC program file kind NcKind Which runner runs the file; Auto detects by extension. Returns IEnumerable Enumerable sequence of actions to be executed SetNcResolutionFeedPerCycle() Sets NC resolution to feed per cycle mode. [HttpPost] public void SetNcResolutionFeedPerCycle() SetNcResolutionFeedPerTooth() Sets NC resolution to feed per tooth mode. [HttpPost] public void SetNcResolutionFeedPerTooth() SetNcResolutionFixed(double, double) Sets NC resolution to fixed mode with specified resolution values. [HttpPost] public void SetNcResolutionFixed(double linearResolution_mm, double rotaryResolution_deg) Parameters linearResolution_mm double Linear resolution in millimeters. rotaryResolution_deg double Rotary resolution in degrees. SetStickMachiningToolObservationHeight_mm(int, double) Sets the observation height in millimeters for the specified stick machining tool. [JsAce(\"SetStickMachiningToolObservationHeight_mm($1toolId,$2height_mm)\")] [HttpPost] public void SetStickMachiningToolObservationHeight_mm(int toolId, double height) Parameters toolId int The ID of the tool height double The observation height in millimeters to set SetUniformFlutingShiftAngle_deg(int, double) Sets the shift angle in degrees for the uniform fluting of the specified tool, that is, for a cutter whose flutes all share one baseline flute contour. [JsAce(\"SetUniformFlutingShiftAngle_deg($1toolId,$2angle_deg)\")] [HttpPost] public void SetUniformFlutingShiftAngle_deg(int toolId, double angle_deg) Parameters toolId int The ID of the tool angle_deg double The shift angle in degrees to set ShiftDistance_mm(double) Creates a distance shift object representing the specified distance in millimeters. [NonAction] public DistanceShift ShiftDistance_mm(double distanceShift_mm) Parameters distanceShift_mm double Distance shift in millimeters Returns DistanceShift Distance shift object ShiftTime_s(double) Creates a time shift object representing the specified time in seconds. [NonAction] public TimeShift ShiftTime_s(double seconds) Parameters seconds double Time in seconds Returns TimeShift Time shift object TrainMillingPara(SampleFlag, string, double) Trains milling parameters using the specified sample flag. [JsAce(\"TrainMillingPara(Fx|Fy|Fz, $1dstFile)\")] [HttpPost] public void TrainMillingPara(SampleFlag sampleFlag, string dstRelFile, double outlierRatio = 2) Parameters sampleFlag SampleFlag Sample flag indicating which components to train dstRelFile string Destination relative file path outlierRatio double Outlier ratio for data filtering WarningMessage(string) Displays a warning message in the message host. [JsAce(\"WarningMessage($1message)\")] [HttpPost] public void WarningMessage(string message) Parameters message string The warning message to display WriteMeshedGeom(string) Writes the current meshed geometry to a file. [JsAce(\"WriteMeshedGeom($1\\\"dstFile\\\")\")] [HttpPost] public void WriteMeshedGeom(string relFile) Parameters relFile string Relative path to the output file WriteRuntimeGeom(string) Legacy script alias of WriteMeshedGeom(string); kept so old player scripts keep working. [Obsolete(\"Legacy alias; use WriteMeshedGeom instead.\")] [HttpPost] public void WriteRuntimeGeom(string relFile) Parameters relFile string WriteShotFiles(double, string) Writes time-series data to shot files with the specified resolution period (alternative parameter order). [NonAction] public void WriteShotFiles(double resolutionPeroid_ms, string relFileTemplate) Parameters resolutionPeroid_ms double Resolution period in milliseconds relFileTemplate string Template for output file path, can include [NcName] placeholder WriteShotFiles(string, double) Writes time-series data to shot files with the specified resolution period. [JsAce(Snippet = \"WriteShotFiles(\\\"Output/[NcName].shot.csv\\\",resolutionPeroid_ms)\", DocContentHtml = \"Write time series data by resolutionPeroid_ms\")] [HttpPost] public void WriteShotFiles(string relFileTemplate = \"Output/[NcName].shot.csv\", double resolutionPeroid_ms = 1) Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder resolutionPeroid_ms double Resolution period in milliseconds WriteStepFiles(string) Writes step-series data to files with the specified file template. [JsAce(Snippet = \"WriteStepFiles(\\\"Output/[NcName].step.csv\\\")\", DocContentHtml = \"Write step series data.\")] [HttpPost] public void WriteStepFiles(string relFileTemplate = \"Output/[NcName].step.csv\") Parameters relFileTemplate string Template for output file path, can include [NcName] placeholder" }, "api/Hi.MachiningProcs.SetupController.html": { "href": "api/Hi.MachiningProcs.SetupController.html", "title": "Class SetupController | HiAPI-C# 2025", "summary": "Class SetupController Namespace Hi.MachiningProcs Assembly HiNc.dll Controller for setup operations of machining projects. [ApiController] [Route(\"api/[controller]/[action]\")] public class SetupController : ControllerBase Inheritance object ControllerBase SetupController Inherited Members ControllerBase.StatusCode(int) ControllerBase.StatusCode(int, object) ControllerBase.Content(string) ControllerBase.Content(string, string) ControllerBase.Content(string, string, Encoding) ControllerBase.Content(string, MediaTypeHeaderValue) ControllerBase.NoContent() ControllerBase.Ok() ControllerBase.Ok(object) ControllerBase.Redirect(string) ControllerBase.RedirectPermanent(string) ControllerBase.RedirectPreserveMethod(string) ControllerBase.RedirectPermanentPreserveMethod(string) ControllerBase.LocalRedirect(string) ControllerBase.LocalRedirectPermanent(string) ControllerBase.LocalRedirectPreserveMethod(string) ControllerBase.LocalRedirectPermanentPreserveMethod(string) ControllerBase.RedirectToAction() ControllerBase.RedirectToAction(string) ControllerBase.RedirectToAction(string, object) ControllerBase.RedirectToAction(string, string) ControllerBase.RedirectToAction(string, string, object) ControllerBase.RedirectToAction(string, string, string) ControllerBase.RedirectToAction(string, string, object, string) ControllerBase.RedirectToActionPreserveMethod(string, string, object, string) ControllerBase.RedirectToActionPermanent(string) ControllerBase.RedirectToActionPermanent(string, object) ControllerBase.RedirectToActionPermanent(string, string) ControllerBase.RedirectToActionPermanent(string, string, string) ControllerBase.RedirectToActionPermanent(string, string, object) ControllerBase.RedirectToActionPermanent(string, string, object, string) ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string) ControllerBase.RedirectToRoute(string) ControllerBase.RedirectToRoute(object) ControllerBase.RedirectToRoute(string, object) ControllerBase.RedirectToRoute(string, string) ControllerBase.RedirectToRoute(string, object, string) ControllerBase.RedirectToRoutePreserveMethod(string, object, string) ControllerBase.RedirectToRoutePermanent(string) ControllerBase.RedirectToRoutePermanent(object) ControllerBase.RedirectToRoutePermanent(string, object) ControllerBase.RedirectToRoutePermanent(string, string) ControllerBase.RedirectToRoutePermanent(string, object, string) ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string) ControllerBase.RedirectToPage(string) ControllerBase.RedirectToPage(string, object) ControllerBase.RedirectToPage(string, string) ControllerBase.RedirectToPage(string, string, object) ControllerBase.RedirectToPage(string, string, string) ControllerBase.RedirectToPage(string, string, object, string) ControllerBase.RedirectToPagePermanent(string) ControllerBase.RedirectToPagePermanent(string, object) ControllerBase.RedirectToPagePermanent(string, string) ControllerBase.RedirectToPagePermanent(string, string, string) ControllerBase.RedirectToPagePermanent(string, string, object, string) ControllerBase.RedirectToPagePreserveMethod(string, string, object, string) ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string) ControllerBase.File(byte[], string) ControllerBase.File(byte[], string, bool) ControllerBase.File(byte[], string, string) ControllerBase.File(byte[], string, string, bool) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string) ControllerBase.File(Stream, string, bool) ControllerBase.File(Stream, string, string) ControllerBase.File(Stream, string, string, bool) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string) ControllerBase.File(string, string, bool) ControllerBase.File(string, string, string) ControllerBase.File(string, string, string, bool) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string) ControllerBase.PhysicalFile(string, string, bool) ControllerBase.PhysicalFile(string, string, string) ControllerBase.PhysicalFile(string, string, string, bool) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue) ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool) ControllerBase.Unauthorized() ControllerBase.Unauthorized(object) ControllerBase.NotFound() ControllerBase.NotFound(object) ControllerBase.BadRequest() ControllerBase.BadRequest(object) ControllerBase.BadRequest(ModelStateDictionary) ControllerBase.UnprocessableEntity() ControllerBase.UnprocessableEntity(object) ControllerBase.UnprocessableEntity(ModelStateDictionary) ControllerBase.Conflict() ControllerBase.Conflict(object) ControllerBase.Conflict(ModelStateDictionary) ControllerBase.Problem(string, string, int?, string, string) ControllerBase.Problem(string, string, int?, string, string, IDictionary) ControllerBase.ValidationProblem(ValidationProblemDetails) ControllerBase.ValidationProblem(ModelStateDictionary) ControllerBase.ValidationProblem() ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary) ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary, IDictionary) ControllerBase.Created() ControllerBase.Created(string, object) ControllerBase.Created(Uri, object) ControllerBase.CreatedAtAction(string, object) ControllerBase.CreatedAtAction(string, object, object) ControllerBase.CreatedAtAction(string, string, object, object) ControllerBase.CreatedAtRoute(string, object) ControllerBase.CreatedAtRoute(object, object) ControllerBase.CreatedAtRoute(string, object, object) ControllerBase.Accepted() ControllerBase.Accepted(object) ControllerBase.Accepted(Uri) ControllerBase.Accepted(string) ControllerBase.Accepted(string, object) ControllerBase.Accepted(Uri, object) ControllerBase.AcceptedAtAction(string) ControllerBase.AcceptedAtAction(string, string) ControllerBase.AcceptedAtAction(string, object) ControllerBase.AcceptedAtAction(string, string, object) ControllerBase.AcceptedAtAction(string, object, object) ControllerBase.AcceptedAtAction(string, string, object, object) ControllerBase.AcceptedAtRoute(object) ControllerBase.AcceptedAtRoute(string) ControllerBase.AcceptedAtRoute(string, object) ControllerBase.AcceptedAtRoute(object, object) ControllerBase.AcceptedAtRoute(string, object, object) ControllerBase.Challenge() ControllerBase.Challenge(params string[]) ControllerBase.Challenge(AuthenticationProperties) ControllerBase.Challenge(AuthenticationProperties, params string[]) ControllerBase.Forbid() ControllerBase.Forbid(params string[]) ControllerBase.Forbid(AuthenticationProperties) ControllerBase.Forbid(AuthenticationProperties, params string[]) ControllerBase.SignIn(ClaimsPrincipal) ControllerBase.SignIn(ClaimsPrincipal, string) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties) ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string) ControllerBase.SignOut() ControllerBase.SignOut(AuthenticationProperties) ControllerBase.SignOut(params string[]) ControllerBase.SignOut(AuthenticationProperties, params string[]) ControllerBase.TryUpdateModelAsync(TModel) ControllerBase.TryUpdateModelAsync(TModel, string) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider) ControllerBase.TryUpdateModelAsync(TModel, string, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, Func) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, params Expression>[]) ControllerBase.TryUpdateModelAsync(TModel, string, IValueProvider, Func) ControllerBase.TryUpdateModelAsync(object, Type, string) ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func) ControllerBase.TryValidateModel(object) ControllerBase.TryValidateModel(object, string) ControllerBase.HttpContext ControllerBase.Request ControllerBase.Response ControllerBase.RouteData ControllerBase.ModelState ControllerBase.ControllerContext ControllerBase.MetadataProvider ControllerBase.ModelBinderFactory ControllerBase.Url ControllerBase.ObjectValidator ControllerBase.ProblemDetailsFactory ControllerBase.User ControllerBase.Empty 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 SetupController(LocalProjectService, ILogger) Initializes a new instance. public SetupController(LocalProjectService projectService, ILogger logger) Parameters projectService LocalProjectService logger ILogger Properties InitResolution_mm InitResolution_mm. public double InitResolution_mm { get; set; } Property Value double Methods ApplyClMillingDevice() Applies a CL milling device to the machining equipment. [HttpPost] public void ApplyClMillingDevice() LoadFixture(string) Loads a fixture from the specified XML file path. [HttpPost] public void LoadFixture(string fixtureXmlFilePath) Parameters fixtureXmlFilePath string The XML file path of the fixture to load. LoadProject(string) Loads a machining project from the specified file path. [HttpPost] public void LoadProject(string filePath) Parameters filePath string The file path to load the project from. SaveProject() Saves the current machining project. [HttpPost] public void SaveProject()" }, "api/Hi.MachiningProcs.ShellProgress.html": { "href": "api/Hi.MachiningProcs.ShellProgress.html", "title": "Class ShellProgress | HiAPI-C# 2025", "summary": "Class ShellProgress Namespace Hi.MachiningProcs Assembly HiMech.dll Append-only, thread-safe sink for session-level routine / lifecycle messages on the IMessage channel — one of the partitioned message homes. This is partitioned by message kind, orthogonal to the other sinks: plain SimpleMessage notices that belong to the session as a whole (cache reset, file load / save progress, session start/done) live here; messages tied to a particular machining step live in StepDiagnosticProgress; NC-pipeline diagnostics live in NcDiagnosticProgress. Append-only: session-routine messages are emitted sequentially, so report order already is execution order — there is no per-step anchor and no stable-index bookkeeping. public class ShellProgress : IProgress Inheritance object ShellProgress Implements IProgress 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) StepDiagnosticAnchorUtil.AnchoredToStep(IProgress, int, ISentenceCarrier) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Messages All reported messages, in append (report) order. Thread-safe for concurrent appends. public SynList Messages { get; } Property Value SynList Methods Clear() Removes all messages (e.g. on session reset). public void Clear() Report(IMessage) Reports a progress update. public void Report(IMessage value) Parameters value IMessage The value of the updated progress. Events Cleared Raised after Clear() empties the collection. public event Action Cleared Event Type Action MessageAdded Raised after a message has been appended. Carries the index it landed at in Messages and the appended message, so a consumer can place it and reach nearby items by indexing into Messages. public event Action MessageAdded Event Type Action" }, "api/Hi.MachiningProcs.SpindleSpeedCache.html": { "href": "api/Hi.MachiningProcs.SpindleSpeedCache.html", "title": "Class SpindleSpeedCache | HiAPI-C# 2025", "summary": "Class SpindleSpeedCache Namespace Hi.MachiningProcs Assembly HiMech.dll Represents cached spindle speed information. public class SpindleSpeedCache Inheritance object SpindleSpeedCache 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) Constructors SpindleSpeedCache(SpindleSpeedCache) Initializes a new instance by copying from another instance. public SpindleSpeedCache(SpindleSpeedCache src) Parameters src SpindleSpeedCache The source instance to copy from. SpindleSpeedCache(double, double, double, double, double, double, double, double) Initializes a new instance. public SpindleSpeedCache(double spindleSpeed_cycleDs, double infInsistentRatioSpindleTorqueBoundary_Nm, double infInsistentRatioSpindlePowerBoundary_W, double minInsistentRatioSpindleTorqueBoundary_Nm, double minInsistentRatioSpindlePowerBoundary_W, double heatCapacity_JdK, double convectionPara_WdK, double dryRunPower_W) Parameters spindleSpeed_cycleDs double The spindle speed in cycles per second. infInsistentRatioSpindleTorqueBoundary_Nm double The infinite insistent ratio spindle torque boundary in Newton-meters. infInsistentRatioSpindlePowerBoundary_W double The infinite insistent ratio spindle power boundary in watts. minInsistentRatioSpindleTorqueBoundary_Nm double The minimum insistent ratio spindle torque boundary in Newton-meters. minInsistentRatioSpindlePowerBoundary_W double The minimum insistent ratio spindle power boundary in watts. heatCapacity_JdK double The heat capacity in joules per Kelvin. convectionPara_WdK double The convection parameter in watts per Kelvin. dryRunPower_W double The dry run power in watts. Properties ConvectionPara_WdK Gets or sets the convection parameter in watts per Kelvin. public double ConvectionPara_WdK { get; set; } Property Value double DryRunPower_W Gets or sets the dry run power in watts. public double DryRunPower_W { get; set; } Property Value double HeatCapacity_JdK Gets or sets the heat capacity in joules per Kelvin. public double HeatCapacity_JdK { get; set; } Property Value double InfInsistentRatioSpindlePowerBoundary_W Gets or sets the infinite insistent ratio spindle power boundary in watts. public double InfInsistentRatioSpindlePowerBoundary_W { get; set; } Property Value double InfInsistentRatioSpindleTorqueBoundary_Nm Gets or sets the infinite insistent ratio spindle torque boundary in Newton-meters. public double InfInsistentRatioSpindleTorqueBoundary_Nm { get; set; } Property Value double MinInsistentRatioSpindlePowerBoundary_W Gets or sets the minimum insistent ratio spindle power boundary in watts. public double MinInsistentRatioSpindlePowerBoundary_W { get; set; } Property Value double MinInsistentRatioSpindleTorqueBoundary_Nm Gets or sets the minimum insistent ratio spindle torque boundary in Newton-meters. public double MinInsistentRatioSpindleTorqueBoundary_Nm { get; set; } Property Value double SpindleSpeed_cycleDs Gets or sets the spindle speed in cycles per second. public double SpindleSpeed_cycleDs { get; set; } Property Value double Methods Create(SpindleCapability, MachineMotionStep, SpindleSpeedCache, Action) Creates a SpindleSpeedCache from spindle capability and machine motion step. Returns preSpindleSpeedCache if the spindle speed is unchanged or the capability data is incomplete. public static SpindleSpeedCache Create(SpindleCapability spindleCapability, MachineMotionStep machineMotionStep, SpindleSpeedCache preSpindleSpeedCache, Action onWarning) Parameters spindleCapability SpindleCapability machineMotionStep MachineMotionStep preSpindleSpeedCache SpindleSpeedCache onWarning Action Returns SpindleSpeedCache" }, "api/Hi.MachiningProcs.StepDiagnostic.html": { "href": "api/Hi.MachiningProcs.StepDiagnostic.html", "title": "Class StepDiagnostic | HiAPI-C# 2025", "summary": "Class StepDiagnostic Namespace Hi.MachiningProcs Assembly HiMech.dll An IMessage produced while constructing a MachiningStep, anchored to the step's execution-order StepIndex and (when available) its NC-source SentenceCarrier. Decorator over an inner Message — the five IMessage members delegate to it — so a plain SimpleMessage emitted during step processing can be upgraded to a step-anchored diagnostic without the producer needing to know the step context. public class StepDiagnostic : IMessage, IMotionStepIndex Inheritance object StepDiagnostic Implements IMessage IMotionStepIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 StepDiagnostic(int, ISentenceCarrier, IMessage) Initializes a new instance of the StepDiagnostic class. public StepDiagnostic(int stepIndex, ISentenceCarrier sentenceCarrier, IMessage message) Parameters stepIndex int Execution-order index of the step. sentenceCarrier ISentenceCarrier NC-source carrier for the step; may be null. message IMessage The wrapped inner message. Properties Message The wrapped message supplying severity / category / id / notification / detail. public IMessage Message { get; } Property Value IMessage SentenceCarrier NC-source carrier for the step; null when the source is not an ISentenceCarrier (e.g. the legacy hard / CSV runners, which the soft runner is expected to supersede). public ISentenceCarrier SentenceCarrier { get; } Property Value ISentenceCarrier StepIndex Execution-order index of the step this diagnostic belongs to. public int StepIndex { get; } Property Value int Methods GetArgs() Gets the values interpolated into GetFormat(); null when GetFormat() is null, possibly empty for a hole-less template. Default interface method so external implementers are unaffected. public object[] GetArgs() Returns object[] The interpolation arguments, or null when untemplated. GetCategory() Gets the classification — see Category. public Category GetCategory() Returns Category The category of this message. GetDetail() Gets the optional detail payload or exception; null when not applicable. public object GetDetail() Returns object The detail object, or null. GetFormat() Gets the composite-format template behind GetNotification() — a {0}-style .NET format string — when this message was produced from an interpolated template; null when the notification has no structured template. Together with GetArgs() this lets a consumer re-render the message in another language without losing the interpolated live values, while GetNotification() stays the invariant English rendering. Default interface method so external implementers are unaffected. public string GetFormat() Returns string The composite format string, or null when untemplated. GetId() Gets the structured id used for filtering / suppression; may be null. public string GetId() Returns string The message id, or null when not applicable. GetNotification() Gets the end-user friendly notification text. public string GetNotification() Returns string The notification text. GetSeverity() Gets the importance level — see Severity. public Severity GetSeverity() Returns Severity The severity of this message. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MachiningProcs.StepDiagnosticAnchorUtil.html": { "href": "api/Hi.MachiningProcs.StepDiagnosticAnchorUtil.html", "title": "Class StepDiagnosticAnchorUtil | HiAPI-C# 2025", "summary": "Class StepDiagnosticAnchorUtil Namespace Hi.MachiningProcs Assembly HiMech.dll Bridges a step-anchored IProgress sink (e.g. StepDiagnosticProgress) back to the generic IProgress surface, so out-of-step-pipeline producers can keep using the id-first MessageUtil shorthands (ValidationError, ConfigurationWarning, …) and still land a StepDiagnostic on the sink. public static class StepDiagnosticAnchorUtil Inheritance object StepDiagnosticAnchorUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods AnchoredToStep(IProgress, int, ISentenceCarrier) Wraps sink in an IProgress that upgrades every reported message to a StepDiagnostic anchored to stepIndex / carrier (an already-anchored StepDiagnostic passes through unchanged). Returns null when sink is null, so the null-safe MessageUtil shorthands remain a no-op. public static IProgress AnchoredToStep(this IProgress sink, int stepIndex, ISentenceCarrier carrier = null) Parameters sink IProgress The step-anchored destination; null yields a null adapter. stepIndex int Motion-step index to anchor plain messages to (typically ShellThreadStepIndex). carrier ISentenceCarrier Optional NC-source carrier for the step; may be null. Returns IProgress" }, "api/Hi.MachiningProcs.StepDiagnosticProgress.html": { "href": "api/Hi.MachiningProcs.StepDiagnosticProgress.html", "title": "Class StepDiagnosticProgress | HiAPI-C# 2025", "summary": "Class StepDiagnosticProgress Namespace Hi.MachiningProcs Assembly HiMech.dll Append-only, thread-safe sink for step-anchored diagnostics on the IMessage channel. This sink stores only StepDiagnostic: every message is anchored to a motion step. Per-step batches arrive via FlushTo(IProgress); out-of-pipeline emits (e.g. stroke-limit / tooling diagnostics) anchor themselves with AnchoredToStep(IProgress, int, ISentenceCarrier) before reporting. Data that already has another owner is not duplicated here — NC diagnostics live in NcDiagnosticProgress, plain session-level notices live in ShellProgress, cutter positions live in the CL strip. Because every StepDiagnostic carries its own StepIndex anchor, ordering is recovered downstream by sorting on that anchor. Producers therefore only ever Report(StepDiagnostic) (append) — even from parallel step-processing tasks — and never insert at a computed position. public class StepDiagnosticProgress : IProgress Inheritance object StepDiagnosticProgress Implements IProgress 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) StepDiagnosticAnchorUtil.AnchoredToStep(IProgress, int, ISentenceCarrier) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties Messages All reported diagnostics, in append (report) order. The collection is thread-safe for concurrent appends from parallel step-processing tasks. public SynList Messages { get; } Property Value SynList Methods Clear() Removes all messages (e.g. on session reset). public void Clear() Report(StepDiagnostic) Reports a progress update. public void Report(StepDiagnostic value) Parameters value StepDiagnostic The value of the updated progress. Events Cleared Raised after Clear() empties the collection. public event Action Cleared Event Type Action MessageAdded Raised after a diagnostic has been appended. Carries the index it landed at in Messages and the appended diagnostic, so a consumer can place it and reach nearby items by indexing into Messages. The index is captured atomically with the append, so it stays correct under concurrent step-task reports. public event Action MessageAdded Event Type Action" }, "api/Hi.MachiningProcs.StepScopedProgress.html": { "href": "api/Hi.MachiningProcs.StepScopedProgress.html", "title": "Class StepScopedProgress | HiAPI-C# 2025", "summary": "Class StepScopedProgress Namespace Hi.MachiningProcs Assembly HiMech.dll A per-step IProgress of IMessage that accumulates the messages emitted while one step is built, upgrading any plain message to a StepDiagnostic anchored to this step's StepIndex / SentenceCarrier. An already step-anchored StepDiagnostic is kept unchanged. (NC diagnostics are not seen here — they live in their own NcDiagnosticProgress, not on this channel.) It does not forward to a downstream sink as messages arrive; instead it collects them into MessageList and is drained once via FlushTo(IProgress) at the step's sequential post-physics stage. Because that stage runs strictly in step order, the per-step batches land in execution order with no position-scanning insert. No locking: a single step's construction is a data-dependency chain (substraction → physics → post-physics), so only one task writes MessageList at a time; parallelism across steps writes to different scopes. Each parallel step task therefore holds its own instance — never a shared mutable \"current step\" on StepDiagnosticProgress, which would race. public class StepScopedProgress : IProgress, IProgressMessage, IMessage, IMotionStepIndex Inheritance object StepScopedProgress Implements IProgress IProgressMessage IMessage IMotionStepIndex 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) StepDiagnosticAnchorUtil.AnchoredToStep(IProgress, int, ISentenceCarrier) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StepScopedProgress(int, ISentenceCarrier) Initializes a new instance of the StepScopedProgress class. public StepScopedProgress(int stepIndex, ISentenceCarrier sentenceCarrier) Parameters stepIndex int Execution-order index of the step. sentenceCarrier ISentenceCarrier NC-source carrier for the step; may be null. Properties MessageList Messages accumulated for this step, in emission order — already upgraded to StepDiagnostic by Report(IMessage). Written by the step's pipelined (one-at-a-time) construction tasks, then drained once via FlushTo(IProgress). public List MessageList { get; } Property Value List SentenceCarrier NC-source carrier for the step; may be null. public ISentenceCarrier SentenceCarrier { get; } Property Value ISentenceCarrier StepIndex Execution-order index of the step this scope anchors to. public int StepIndex { get; } Property Value int Methods FlushTo(IProgress) Drains the accumulated MessageList into sink in order. Call once, at the step's sequential post-physics stage, so the session sink receives whole per-step batches already in execution order. public void FlushTo(IProgress sink) Parameters sink IProgress The downstream sink (typically the session StepDiagnosticProgress); no-op if null. Report(IMessage) Reports a progress update. public void Report(IMessage value) Parameters value IMessage The value of the updated progress." }, "api/Hi.MachiningProcs.html": { "href": "api/Hi.MachiningProcs.html", "title": "Namespace Hi.MachiningProcs | HiAPI-C# 2025", "summary": "Namespace Hi.MachiningProcs Classes AllowNoActiveSessionAttribute Marks a session-scoped controller action as callable without an active session, exempting it from RequireActiveSessionAttribute. Use on the session lifecycle entry points (BeginSession / EndSession), which by definition run when no session exists yet. AllowNoLoadedProjectAttribute Marks a project-level controller action as callable without a loaded project, exempting it from RequireLoadedProjectAttribute. Use on the endpoints that create or load a project (which by definition run when no project is open yet). ApiActionResult The shared outcome envelope for a web-API action: whether it succeeded and the messages it reported, in order. Returned by the project-level surface (LocalProjectServiceController) and, on the no-active-session boundary, by the session-scoped surface (SessionShellController via RequireActiveSessionAttribute). A REST / AI caller therefore reads the progress / success / error notifications inline in the HTTP response instead of only out-of-band via the SignalR sinks, and can branch on Success without parsing severities. LocalProjectService Root(Local) project service. Apply absolute file path. LocalProjectServiceController HTTP controller exposing the project-level (session-independent) operations of Hi.MachiningProcs.LocalProjectServiceController.LocalProjectService — the lean API-user surface, parallel to SessionShellController (which mirrors the session-scoped SessionShell). A controller mirrors exactly one body; project-level settings belong here, not bolted onto the session controller. MachiningActRunner Represents a runner for machining actions that manages milling steps, tool paths, and collision detection. MachiningActRunnerConfig Represents the configuration for a milling act runner. Provides settings for physics simulation, evaluation, and temperature control. MachiningParallelProc Represents a parallel processing system for milling operations that manages various tasks such as sweeping, subtraction, force calculation, and physics simulation. MachiningParallelProc.StepTaskBundle Represents a bundle of tasks related to a milling step. MachiningParallelProc.SubstractionResult Represents the result of a subtraction operation. MachiningProject Represents a milling project that manages the execution, simulation, and analysis of NC programs. MachiningSession Represents a machining session that manages the execution and optimization of machining operations. Provides functionality for controlling the machining process, handling optimization options, and managing session state. Implements IDisposable to clean up SessionWriters on session end. MessageDto One reported IMessage, flattened for JSON transport. MillingUtil Provides utility methods for milling calculations and operations. NcKindUtil NcKind helpers. NcRunnerSessionState NC pipeline state held on a MachiningSession and shared across multiple RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) calls within that session. The per-layer SyntaxPieceLayers are extended via AppendSource(IEnumerable) for each subsequent file so that Previous/Next connectivity (and thus ModalCarrySyntax deep-clone) crosses file boundaries. ProjectFileBusyException Thrown when a project-file operation (New / Load / Save / SaveAs / Reload) is requested while another one is already in progress. The newcomer is cancelled rather than queued; controllers surface this as HTTP 409 Conflict. ProxyProjectService Delegate (User-based) Project Service. Apply relative file path from AdminDirectory. RequireActiveSessionAttribute Action filter for the session-scoped web-API surface: before a guarded action runs, verifies a machining session is active (SessionShell is non-null). When none is active it short-circuits with HTTP 409 and an NoActiveSession() envelope, so a REST / AI caller gets a helpful “call BeginSession() first” notice instead of a null-reference 500. Apply at the controller level; exempt the session lifecycle entry points (BeginSession / EndSession) with AllowNoActiveSessionAttribute. RequireLoadedProjectAttribute Action filter for the project-level web-API surface: before a guarded action runs, verifies a project is loaded (MachiningProject is non-null). When none is loaded it short-circuits with HTTP 409 and an NoProjectLoaded() envelope, so a REST / AI caller gets a helpful “create or load a project first” notice instead of a null-reference 500 (the project-level members — MachiningActRunner.Config, workpiece, runners — are null until a project is open). Apply at the controller level; exempt the endpoints that create or load a project with AllowNoLoadedProjectAttribute. SessionShell End-user-facing facade for a machining session: aggregates session lifecycle, NC playback, optimization, geometry I/O, and scripting infrastructure into a single delegation surface. Used as the C# script globals object and as the concrete target of ISessionCommand implementations. SessionShellController HTTP controller exposing SessionShell over the web API. Each action delegates to the underlying SessionShell instance owned by Hi.MachiningProcs.SessionShellController.LocalProjectService. SetupController Controller for setup operations of machining projects. ShellProgress Append-only, thread-safe sink for session-level routine / lifecycle messages on the IMessage channel — one of the partitioned message homes. This is partitioned by message kind, orthogonal to the other sinks: plain SimpleMessage notices that belong to the session as a whole (cache reset, file load / save progress, session start/done) live here; messages tied to a particular machining step live in StepDiagnosticProgress; NC-pipeline diagnostics live in NcDiagnosticProgress. Append-only: session-routine messages are emitted sequentially, so report order already is execution order — there is no per-step anchor and no stable-index bookkeeping. SpindleSpeedCache Represents cached spindle speed information. StepDiagnostic An IMessage produced while constructing a MachiningStep, anchored to the step's execution-order StepIndex and (when available) its NC-source SentenceCarrier. Decorator over an inner Message — the five IMessage members delegate to it — so a plain SimpleMessage emitted during step processing can be upgraded to a step-anchored diagnostic without the producer needing to know the step context. StepDiagnosticAnchorUtil Bridges a step-anchored IProgress sink (e.g. StepDiagnosticProgress) back to the generic IProgress surface, so out-of-step-pipeline producers can keep using the id-first MessageUtil shorthands (ValidationError, ConfigurationWarning, …) and still land a StepDiagnostic on the sink. StepDiagnosticProgress Append-only, thread-safe sink for step-anchored diagnostics on the IMessage channel. This sink stores only StepDiagnostic: every message is anchored to a motion step. Per-step batches arrive via FlushTo(IProgress); out-of-pipeline emits (e.g. stroke-limit / tooling diagnostics) anchor themselves with AnchoredToStep(IProgress, int, ISentenceCarrier) before reporting. Data that already has another owner is not duplicated here — NC diagnostics live in NcDiagnosticProgress, plain session-level notices live in ShellProgress, cutter positions live in the CL strip. Because every StepDiagnostic carries its own StepIndex anchor, ordering is recovered downstream by sorting on that anchor. Producers therefore only ever Report(StepDiagnostic) (append) — even from parallel step-processing tasks — and never insert at a computed position. StepScopedProgress A per-step IProgress of IMessage that accumulates the messages emitted while one step is built, upgrading any plain message to a StepDiagnostic anchored to this step's StepIndex / SentenceCarrier. An already step-anchored StepDiagnostic is kept unchanged. (NC diagnostics are not seen here — they live in their own NcDiagnosticProgress, not on this channel.) It does not forward to a downstream sink as messages arrive; instead it collects them into MessageList and is drained once via FlushTo(IProgress) at the step's sequential post-physics stage. Because that stage runs strictly in step order, the per-step batches land in execution order with no position-scanning insert. No locking: a single step's construction is a data-dependency chain (substraction → physics → post-physics), so only one task writes MessageList at a time; parallelism across steps writes to different scopes. Each parallel step task therefore holds its own instance — never a shared mutable \"current step\" on StepDiagnosticProgress, which would race. Interfaces IMachiningProjectGetter Interface for objects that can provide a MachiningProject instance. IProjectService Interface for services that manage machining projects. Enums NcKind Kind of an NC program file — selects which of the session's runners plays it (ActiveNcRunner / ClRunner / CsvRunner). RenderingFlag Flags that control which elements are rendered in the visualization. Delegates ConfigStepFunc Delegate for configuring a milling step with additional arguments. LocalProjectService.MachiningProjectChangedDelegate Delegate for machining project changed events. MachiningActRunner.MachiningStepBuiltDelegate Delegate for configuring a step with previous and current step information." }, "api/Hi.MachiningSteps.IFlagText.html": { "href": "api/Hi.MachiningSteps.IFlagText.html", "title": "Interface IFlagText | HiAPI-C# 2025", "summary": "Interface IFlagText Namespace Hi.MachiningSteps Assembly HiMech.dll temperary design for showing flag text. public interface IFlagText 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 FlagsText Gets the text representation of command flags. [Present(\"NC Flag\", \"NC Flag\", PhysicsUnit.None, \"G\")] string FlagsText { get; } Property Value string" }, "api/Hi.MachiningSteps.IMachiningService.html": { "href": "api/Hi.MachiningSteps.IMachiningService.html", "title": "Interface IMachiningService | HiAPI-C# 2025", "summary": "Interface IMachiningService Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a host interface for milling steps that provides access to milling equipment and related resources. public interface IMachiningService : IGetMachiningEquipment Inherited Members IGetMachiningEquipment.GetMachiningEquipment() IGetMachiningEquipment.GetMillingEquipment() 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 ActiveNcRunner Gets the active NC control runner. INcRunner ActiveNcRunner { get; } Property Value INcRunner BaseDirectory Gets the project base directory (relative-path root). string BaseDirectory { get; } Property Value string ClRunner Gets the NX-CL (CLSF) control runner. INcRunner ClRunner { get; } Property Value INcRunner ClStrip Gets the cutter location strip containing the machining steps. ClStrip ClStrip { get; } Property Value ClStrip CsvRunner Gets the CSV runner. INcRunner CsvRunner { get; } Property Value INcRunner DictionaryColorGuide Gets the color guide for dictionary-based coloring. DictionaryColorGuide DictionaryColorGuide { get; } Property Value DictionaryColorGuide EnablePauseOnFailure Gets whether playback pauses on a failure. bool EnablePauseOnFailure { get; } Property Value bool IsCollisionDetectionEnabled Gets whether collision detection is currently enabled. bool IsCollisionDetectionEnabled { get; } Property Value bool MachiningActRunner Gets the act runner that expands and processes acts. MachiningActRunner MachiningActRunner { get; } Property Value MachiningActRunner MachiningEquipment Gets the milling equipment used for machining operations. MachiningEquipment MachiningEquipment { get; } Property Value MachiningEquipment MachiningSession Gets the current machining session. MachiningSession MachiningSession { get; } Property Value MachiningSession MachiningToolHouse Gets the tool house containing milling tools. MachiningToolHouse MachiningToolHouse { get; } Property Value MachiningToolHouse MillingStepLuggageReader Gets the parallel bulk reader for milling step luggage data. ParallelBulkReader MillingStepLuggageReader { get; } Property Value ParallelBulkReader NcDiagnosticProgress Gets the NC-pipeline diagnostic sink on the IMessage channel. NcDiagnosticProgress NcDiagnosticProgress { get; } Property Value NcDiagnosticProgress NcManipulationDiagnosticProgress Gets the NC-manipulation diagnostic sink — the second diagnostic home, for operations that rework an already-played NC/CL program (writeback conversion, NC optimization) as opposed to the play-time pipeline diagnostics in NcDiagnosticProgress. Keeping the two scenarios in separate homes lets a play reset clear run diagnostics without discarding manipulation results, and vice versa; each manipulation run clears this home at its start so it always holds the latest run. NcDiagnosticProgress NcManipulationDiagnosticProgress { get; } Property Value NcDiagnosticProgress PacePlayer Gets the pace player controlling execution pace. PacePlayer PacePlayer { get; } Property Value PacePlayer StepDiagnosticProgress Gets the step-aligned IMessage-channel sink. StepDiagnosticProgress StepDiagnosticProgress { get; } Property Value StepDiagnosticProgress TimeMapping Gets the time mapping for synchronization. TimeMapping TimeMapping { get; } Property Value TimeMapping Methods BeginNcRunner() Initialises the meshed geometry for an NC run (idempotent). void BeginNcRunner() CheckStrokeLimitOnStep() Checks the stroke limit at the current step; true if within limits. bool CheckStrokeLimitOnStep() Returns bool GetSessionShell() Returns the session shell that exposes the runtime surface of the active machining session. ISessionShell GetSessionShell() Returns ISessionShell RefreshDrawing() Refreshes the visual display. void RefreshDrawing() UpdateIdealMillingToolOffsetTableByToolHouse() Refreshes the ideal milling-tool offset table from the tool house. void UpdateIdealMillingToolOffsetTableByToolHouse()" }, "api/Hi.MachiningSteps.IMotionStepIndex.html": { "href": "api/Hi.MachiningSteps.IMotionStepIndex.html", "title": "Interface IMotionStepIndex | HiAPI-C# 2025", "summary": "Interface IMotionStepIndex Namespace Hi.MachiningSteps Assembly HiMech.dll Abstraction for an object that carries a StepIndex — the 0-based ordinal of a machining motion step in execution order. Used as a cross-object alignment key so a step (MachiningStep), its cutter-location position (ClStripPos), and the messages anchored to it (StepDiagnostic, StepScopedProgress) can be matched by the same ordinal without depending on a concrete type. Distinct from ISentenceIndexed: that ordinal counts NC source blocks, whereas this one counts produced motion steps — a single source block (e.g. a canned cycle) can fan out into several steps. public interface IMotionStepIndex 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 StepIndex 0-based ordinal of the motion step in execution order. int StepIndex { get; } Property Value int" }, "api/Hi.MachiningSteps.IStepPropertyAccessHost.html": { "href": "api/Hi.MachiningSteps.IStepPropertyAccessHost.html", "title": "Interface IStepPropertyAccessHost | HiAPI-C# 2025", "summary": "Interface IStepPropertyAccessHost Namespace Hi.MachiningSteps Assembly HiMech.dll Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService. public interface IStepPropertyAccessHost 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 StepPropertyAccessDictionary Dictionary of step-property accessors keyed by property name. Used by CSV title-row processing to decide whether a column already maps to a reserved step property; new columns are registered via RegisterStepVariable(string, string, string, string, Func). ConcurrentDictionary> StepPropertyAccessDictionary { get; } Property Value ConcurrentDictionary> Methods RegisterStepVariable(string, string, string, string, Func) Registers a step variable so downstream components (strip charts, CSV exports, scripting) can read it from MachiningStep. Idempotent on key. void RegisterStepVariable(string key, string name, string unit, string formatString, Func variableFunc = null) Parameters key string Unique key. name string Human-readable name; may equal key. unit string Physical unit name (PhysicsUnit); nullable. formatString string Display format string; nullable. variableFunc Func Optional value extractor; nullable when the value comes from the step's flex dictionary." }, "api/Hi.MachiningSteps.MachineMotionStep.html": { "href": "api/Hi.MachiningSteps.MachineMotionStep.html", "title": "Class MachineMotionStep | HiAPI-C# 2025", "summary": "Class MachineMotionStep Namespace Hi.MachiningSteps Assembly HiMech.dll MachiningStep has spindle information. Note that the spindle information is only for milling behavior. public class MachineMotionStep : IGetFeedrate, IGetSpindleSpeed Inheritance object MachineMotionStep Implements IGetFeedrate IGetSpindleSpeed Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 MachineMotionStep(MachineMotionStep) Initializes a new instance of the MachineMotionStep class by copying from another instance. public MachineMotionStep(MachineMotionStep src) Parameters src MachineMotionStep The source machining step to copy from. MachineMotionStep(TimeSpan, TimeSpan, double, double[], double, double, SpindleDirection, CoolantMode, int, Mat4d, Mat4d, SeqPair) Initializes a new instance of the MachineMotionStep class with specified parameters. public MachineMotionStep(TimeSpan stepDuration, TimeSpan accumulatedTime, double beginSpindleAngle_rad, double[] mcValues, double feedrate_mmds, double spindleSpeed_radds, SpindleDirection spindleDirection, CoolantMode coolantMode, int toolId, Mat4d programZeroToWorkpieceGeomToMat4d, Mat4d workpieceGeomToProgramZeroMat4d, SeqPair seqOnWorkpieceGeomCoordinate) Parameters stepDuration TimeSpan The duration of this step. accumulatedTime TimeSpan The accumulated time up to this step. beginSpindleAngle_rad double The initial spindle angle in radians. mcValues double[] The machine coordinate values. feedrate_mmds double The feed rate in millimeters per second. spindleSpeed_radds double The spindle speed in radians per second. spindleDirection SpindleDirection The direction of spindle rotation. coolantMode CoolantMode The coolant delivery mode active for this step. toolId int The ID of the tool being used. programZeroToWorkpieceGeomToMat4d Mat4d The transformation matrix from program zero to workpiece geometry. workpieceGeomToProgramZeroMat4d Mat4d The transformation matrix from workpiece geometry to program zero. seqOnWorkpieceGeomCoordinate SeqPair The sequence of transformations on workpiece geometry coordinate. Properties BeginSpindleAngle_deg Begin spindle rotation angle. in deg; public double BeginSpindleAngle_deg { get; set; } Property Value double BeginSpindleAngle_rad Begin spindle rotation angle. in rad; public double BeginSpindleAngle_rad { get; set; } Property Value double BeginTimecode The work time at the begin of the step. public TimeSpan BeginTimecode { get; } Property Value TimeSpan CdnTransformProgramToToolRunning Gets the transformation matrix from program to tool running coordinate. public Mat4d CdnTransformProgramToToolRunning { get; } Property Value Mat4d CdnTransformProgramToWorkpieceGeom Gets the transformation matrix from program zero to workpiece geometry. public Mat4d CdnTransformProgramToWorkpieceGeom { get; } Property Value Mat4d CdnTransformToolRunningToProgram Gets the transformation matrix from tool running to program coordinate. public Mat4d CdnTransformToolRunningToProgram { get; } Property Value Mat4d CdnTransformToolRunningToWorkpieceGeom Tool running coordinate to workpiece geom coordinate. public Mat4d CdnTransformToolRunningToWorkpieceGeom { get; } Property Value Mat4d CdnTransformWorkpieceGeomToProgram Gets the transformation matrix from workpiece geometry to program zero. public Mat4d CdnTransformWorkpieceGeomToProgram { get; } Property Value Mat4d CdnTransformWorkpieceGeomToToolRunning Gets the transformation matrix from workpiece geometry to tool running coordinate. public Mat4d CdnTransformWorkpieceGeomToToolRunning { get; } Property Value Mat4d CoolantMode Gets or sets the coolant delivery mode active for this step. Read by BuildCuttingTemperatureAndWear(SeqPhysicsBrief, MachineMotionStep, MachineMotionStep, double, SpindleCapability, IMachiningTool, Workpiece, int, Substraction, LayerMillingEngagement, MillingPhysicsBrief, CoolantHeatCondition, CoolantMode, bool, MillingToolPhysicsPack, Action) to pick the effective convection coefficient on the temperature FEM. public CoolantMode CoolantMode { get; set; } Property Value CoolantMode CyclePeriod Gets the cycle period as a TimeSpan. public TimeSpan CyclePeriod { get; } Property Value TimeSpan CyclePeriod_s Gets the cycle period in seconds. public double CyclePeriod_s { get; } Property Value double EndSpindleAngle_deg Gets the end spindle angle in degrees. public double EndSpindleAngle_deg { get; } Property Value double EndSpindleAngle_rad Gets the end spindle angle in radians. public double EndSpindleAngle_rad { get; } Property Value double EndTimecode The work time at the end of the step. The value is BeginTimecode + StepDuration. public TimeSpan EndTimecode { get; set; } Property Value TimeSpan FeedPerCycle_mm Gets the feed per cycle in millimeters. public double FeedPerCycle_mm { get; } Property Value double Feedrate_mmds Gets or sets the feed rate in millimeters per second. public double Feedrate_mmds { get; set; } Property Value double GeomCl Gets the current position in workpiece geometry coordinate. public DVec3d GeomCl { get; } Property Value DVec3d McValues Machine coordinate values. public double[] McValues { get; set; } Property Value double[] MoveOnProgramCoordinate_mm Gets the movement vector in program coordinate in millimeters. public Vec3d MoveOnProgramCoordinate_mm { get; } Property Value Vec3d MoveOnWorkpieceGeomCoordinate_mm Gets the movement vector in workpiece geometry coordinate in millimeters. public Vec3d MoveOnWorkpieceGeomCoordinate_mm { get; } Property Value Vec3d MovingDirectionOnWorkpieceGeomCoordinate Gets the movement direction vector in workpiece geometry coordinate. public Vec3d MovingDirectionOnWorkpieceGeomCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the length of movement in millimeters. public double MovingLength_mm { get; } Property Value double PassedSpindleAngle_deg For milling behavior only. public double PassedSpindleAngle_deg { get; } Property Value double PassedSpindleAngle_rad For milling behavior only. public double PassedSpindleAngle_rad { get; } Property Value double ProgramCl Gets the current position in program coordinate. public DVec3d ProgramCl { get; } Property Value DVec3d ProgramToWorkpieceGeomMat4d Gets or sets the transformation matrix from program zero to workpiece geometry. public Mat4d ProgramToWorkpieceGeomMat4d { get; set; } Property Value Mat4d SeqOnToolRunningCoordinate Gets the sequence of transformations on tool running coordinate. public SeqPair SeqOnToolRunningCoordinate { get; } Property Value SeqPair SeqOnWorkpieceGeomCoordinate Gets or sets the sequence of transformations on workpiece geometry coordinate. public SeqPair SeqOnWorkpieceGeomCoordinate { get; set; } Property Value SeqPair SpindleDirection Gets or sets the direction of spindle rotation. public SpindleDirection SpindleDirection { get; set; } Property Value SpindleDirection SpindleSpeed_cycleds Gets the spindle speed in cycles per second. public double SpindleSpeed_cycleds { get; } Property Value double SpindleSpeed_radds For milling behavior only. public double SpindleSpeed_radds { get; set; } Property Value double SpindleSpeed_rpm Gets the spindle speed in revolutions per minute. public double SpindleSpeed_rpm { get; } Property Value double StepDuration Gets or sets the duration of this step. public TimeSpan StepDuration { get; set; } Property Value TimeSpan ToolId Gets or sets the ID of the tool being used. public int ToolId { get; set; } Property Value int WorkpieceGeomToProgramMat4d Gets or sets the transformation matrix from workpiece geometry to program zero. public Mat4d WorkpieceGeomToProgramMat4d { get; set; } Property Value Mat4d Methods GetFeedPerTooth_mm(IMachiningTool) Gets the feed per tooth in millimeters. public double GetFeedPerTooth_mm(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The feed per tooth in millimeters. GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetMachiningTool(MachiningToolHouse) Gets the machining tool from the tool house. public IMachiningTool GetMachiningTool(MachiningToolHouse toolHouse) Parameters toolHouse MachiningToolHouse The machining tool house. Returns IMachiningTool The machining tool. GetProgramSideCuspHeight_mm(IMachiningTool, MillingToolPhysicsPack) Gets the program side cusp height in millimeters. public double GetProgramSideCuspHeight_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the diameter on use. Returns double The program side cusp height in millimeters. GetSideCuspList_mm(IMachiningTool, MillingToolPhysicsPack) Gets the list of side cusp heights in millimeters. public List GetSideCuspList_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the diameter on use. Returns List The list of side cusp heights in millimeters. GetSideCuspPhaseInterval_rad(IMachiningTool, MillingToolPhysicsPack) Gets the side cusp phase interval in radians. public double GetSideCuspPhaseInterval_rad(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the diameter on use. Returns double The side cusp phase interval in radians. GetSpindleDirection() Gets the spindle rotation direction. public SpindleDirection GetSpindleDirection() Returns SpindleDirection The spindle direction (clockwise, counterclockwise, or stopped) GetSpindleSpeed_cycleds() Gets the spindle speed in cycles per second. public double GetSpindleSpeed_cycleds() Returns double The spindle speed in cycles per second. GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s GetToothArcDuration_s(IMachiningTool) Gets the duration of a single tooth arc in seconds. public double GetToothArcDuration_s(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns double The duration of a single tooth arc in seconds. GetToothSeqOnToolRunningCoordinate(IMachiningTool) Gets the sequence of transformations for a single tooth on tool running coordinate. public SeqPair GetToothSeqOnToolRunningCoordinate(IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool. Returns SeqPair The sequence of transformations for a single tooth. ToString() Returns a string representation of this machining step. public override string ToString() Returns string A string representation of this machining step." }, "api/Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html": { "href": "api/Hi.MachiningSteps.MachiningStep.CollidedKeyPair.html", "title": "Class MachiningStep.CollidedKeyPair | HiAPI-C# 2025", "summary": "Class MachiningStep.CollidedKeyPair Namespace Hi.MachiningSteps Assembly HiMech.dll A pair of collided keys that indicates two entities are in collision. public record MachiningStep.CollidedKeyPair : IEquatable Inheritance object MachiningStep.CollidedKeyPair Implements IEquatable 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) Constructors CollidedKeyPair(string, string) A pair of collided keys that indicates two entities are in collision. public CollidedKeyPair(string KeyA, string KeyB) Parameters KeyA string KeyB string Properties KeyA public string KeyA { get; init; } Property Value string KeyB public string KeyB { get; init; } Property Value string" }, "api/Hi.MachiningSteps.MachiningStep.html": { "href": "api/Hi.MachiningSteps.MachiningStep.html", "title": "Class MachiningStep | HiAPI-C# 2025", "summary": "Class MachiningStep Namespace Hi.MachiningSteps Assembly HiMech.dll Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. public class MachiningStep : IGetIndexedFileLine, IFlexDictionaryHost, IGetFeedrate, IGetSpindleSpeed, IGetRgbWithPriority, ISentenceCarrier, IGetSentence, ISentenceIndexed, IMotionStepIndex Inheritance object MachiningStep Implements IGetIndexedFileLine IFlexDictionaryHost IGetFeedrate IGetSpindleSpeed IGetRgbWithPriority ISentenceCarrier IGetSentence ISentenceIndexed IMotionStepIndex 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) FlexDictionaryUtil.CallFlexDictionary(IFlexDictionaryHost) FlexDictionaryUtil.GetFlexDictionaryBytes(IFlexDictionaryHost, IntegerKeyDictionaryConverter) FlexDictionaryUtil.WriteFlexDictionary(IFlexDictionaryHost, BinaryWriter, IntegerKeyDictionaryConverter) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors MachiningStep(IMachiningService, int, ISentenceCarrier, MachineMotionStep, MillingInstance, CollidedKeyPair[]) Initializes a new instance of the MachiningStep class. public MachiningStep(IMachiningService host, int stepIndex, ISentenceCarrier sourceCommand, MachineMotionStep machineMotionStep, MillingInstance millingInstance, MachiningStep.CollidedKeyPair[] collidedKeyPairs) Parameters host IMachiningService The host of the milling step. stepIndex int The index of the step. sourceCommand ISentenceCarrier The source command. machineMotionStep MachineMotionStep The machine motion step parameters. millingInstance MillingInstance The physics result for the step. collidedKeyPairs CollidedKeyPair[] The collided key pairs detected in this step. Properties AccumulatedCraterWear_um Gets the accumulated crater wear in micrometers [Present(\"Accumulated Crater Wear\", \"A.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedCraterWear_um { get; } Property Value double AccumulatedFlankWearDepth_um Gets the accumulated flank wear depth in micrometers [Present(\"Accumulated Flank Wear Depth\", \"A.F.Wear.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearDepth_um { get; } Property Value double AccumulatedFlankWearWidth_um Gets the accumulated flank wear width in micrometers [Present(\"Accumulated Flank Wear Width\", \"A.F.Wear.Width\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedFlankWearWidth_um { get; } Property Value double AccumulatedSpindleEnergyConsumption_kWh Gets the accumulated spindle energy consumption in kilowatt-hours [Present(\"Accumulated Spindle Energy Consumption\", null, PhysicsUnit.kWh, \"G6\")] [JsAce(ClassExt = \"MachiningStep\")] public double AccumulatedSpindleEnergyConsumption_kWh { get; } Property Value double AccumulatedTime Legacy alias for EndTimecode. The value is a TimeSpan timecode (position from run start), so the canonical member carries the Timecode suffix and owns the [Present] / [JsAce] surface; this stays only as a source-compatible delegate. [Obsolete(\"Renamed to EndTimecode.\")] public TimeSpan AccumulatedTime { get; } Property Value TimeSpan ActualDateTime Absolute controller timestamp (wall-clock DateTime) of the step, preserved alongside ActualTimecode so the calendar date survives. Resolved to a timecode against the project mapping anchor (TimeMapping.MappingAnchorDateTime). null when the source row had no actual time. View onto ActualTime. [Present(\"Actual DateTime\", \"Act.DT\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public DateTime? ActualDateTime { get; } Property Value DateTime? ActualTime Wall-clock stamp of the step end (the controller-recorded timeline), or null when the scene has no measured time source (pure NC simulation). Dense on CSV plays: original controller stamps plus machine-timeline extrapolation marked by IsInterpolated. public StepActualTime ActualTime { get; set; } Property Value StepActualTime ActualTimecode Actual accumulated worked time. End Actual Timecode. Actual Program time. View onto ActualTime. [Present(\"Actual Time\", \"Act.Time\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan? ActualTimecode { get; } Property Value TimeSpan? AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about sensor vector in Newton-meters [Present(\"Avg Abs Moment To Tool About Sensor\", \"Avg-Abs-M-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about sensor on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Sensor On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double? AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment X about tool tip on spindle rotation coordinate in Newton-meters [Present(\"Avg Abs Moment X To Tool About Tool Tip On Spindle Rotation Coordinate\", \"AvgAbsMx-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueByMapping_Nm Gets the average absolute torque by mapping in Newton-meters [Present(\"Avg Abs Torque By Mapping\", \"AvgAbsTorque-Map\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueByMapping_Nm { get; } Property Value double? AvgAbsTorqueErrorRatioWithMapping numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Torque Error Ratio by Mapping\", \"Torque-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueErrorRatioWithMapping { get; } Property Value double? AvgAbsTorqueSignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorqueSignedErrorRelationWithMapping { get; } Property Value double? AvgAbsTorque_Nm AvgAbsTorqueOnSpindleRotationCoordinate [Present(\"Avg Abs Torque\", \"AvgAbsTorque\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgAbsTorque_Nm { get; } Property Value double? AvgForceToToolOnToolRunningCoordinate_N Gets the average force to tool on tool running coordinate in N. [Present(\"AvgForceToToolOnToolRunningCoordinate\", \"AvgForce-ToTool-TR\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgForceXToToolOnToolRunningCoordinate_N Gets the average force X to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceXToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceYToToolOnToolRunningCoordinate_N Gets the average force Y to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceYToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgForceZToToolOnToolRunningCoordinate_N Gets the average force Z to tool on tool running coordinate in N. [JsAce(ClassExt = \"MachiningStep\")] public double? AvgForceZToToolOnToolRunningCoordinate_N { get; } Property Value double? AvgMomentAboutSensor_Nm Gets the average moment about sensor in Newton-meters [Present(\"Avg Moment To Tool About Sensor\", \"AvgM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutSensor_Nm { get; } Property Value double? AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about tool tip on program coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Workpiece Program Coordinate\", \"AvgAbsM-ToTool-Tip-W\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about tool tip on tool running coordinate in Newton-meters [Present(\"Avg Moment To Tool About Tool Tip On Tool Running Coordinate\", \"AvgAbsM-ToTool-Tip-TR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about tool tip in Newton-meters [Present(\"Avg Moment To Tool About ToolTip\", \"AvgM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentAboutToolTip_Nm { get; } Property Value double? AvgMomentXyAboutObservationPoint_Nm Gets the average moment XY about observation point in Newton-meters [Present(\"Avg Moment XY To Tool About Sensor\", \"AvgM-ToTool-Sensor.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyAboutObservationPoint_Nm { get; } Property Value double? AvgMomentXyByMapping_Nm Gets the average moment XY by mapping in Newton-meters [Present(\"Avg Moment XY By Mapping\", \"AvgM-Map.XY\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyByMapping_Nm { get; } Property Value double? AvgMomentXyErrorRatioWithMapping Gets the average moment XY error ratio with mapping. Numerator is sim value minus mapping value; denominator is the mapping value. [Present(\"Avg Moment XY Error Ratio by Mapping\", \"M-XY-Err-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXyErrorRatioWithMapping { get; } Property Value double? AvgMomentXySignedErrorRelationWithMapping The sign is from sim value minus mapping value. the quantity is Math.Sqrt(err.Square() / Math.Abs(sim * mapping)) [JsAce(ClassExt = \"MachiningStep\")] public double? AvgMomentXySignedErrorRelationWithMapping { get; } Property Value double? BeginSpindleAngle_deg Gets the beginning spindle angle in degrees. [Present(\"Beginning Spindle Angle Shift\", \"Spd. Ang. Shift\", PhysicsUnit.deg, \"F2\")] [JsAce(ClassExt = \"MachiningStep\")] public double BeginSpindleAngle_deg { get; } Property Value double ChipMass_g Gets the chip mass in grams. [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_g { get; } Property Value double? ChipMass_mg Gets the chip mass in milligrams. [Present(\"Chip Mass\", null, PhysicsUnit.mg, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipMass_mg { get; } Property Value double? ChipTemperature_C Gets the chip temperature in Celsius [Present(\"Chip Temperature\", \"Chip T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipTemperature_C { get; } Property Value double? ChipThickness_mm Gets the chip thickness in mm. [Present(\"Chip Thickness\", null, PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipThickness_mm { get; } Property Value double? ChipThickness_um Gets the chip thickness in micrometers public double? ChipThickness_um { get; } Property Value double? ChipVolume_mm3 Gets the chip volume in mm³. [Present(\"Chip Volume\", null, PhysicsUnit.mm3, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ChipVolume_mm3 { get; } Property Value double? Cl Gets the cutter location. [Present(\"Cutter Location\", \"CL\", PhysicsUnit.mm, \"F5\")] public DVec3d Cl { get; } Property Value DVec3d CollidedKeyPairs Gets or sets the collided key pairs if a collision was detected for this step. public MachiningStep.CollidedKeyPair[] CollidedKeyPairs { get; set; } Property Value CollidedKeyPair[] CollisionText A formatted text representing collided key pairs, e.g. \"(A,B);(C,D)\". Returns null when there is no collision. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string CollisionText { get; } Property Value string ContinueSpindlePowerRatio Continuous spindle power ratio: input power / time-unlimited maximum power per spindle capability. [Present(\"Continue Spindle Power Ratio\", \"Cont.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ContinueSpindlePowerRatio { get; } Property Value double? ContinueSpindleTorqueRatio Gets the infinite insistent spindle torque ratio [Present(\"Continue Spindle Torque Ratio\", \"Cont.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ContinueSpindleTorqueRatio { get; } Property Value double? CutterBodyTemperature_C Gets the cutter body temperature in Celsius [Present(\"Cutter Body Temperature\", \"Ct. Body T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterBodyTemperature_C { get; } Property Value double? CutterDermisTemperature_C Gets the cutter dermis temperature in Celsius [Present(\"Cutter Dermis Temperature\", \"Ct. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CutterDermisTemperature_C { get; } Property Value double? CuttingDepth_mm Gets the cutting depth in mm. [Present(\"Cutting Depth\", \"ap\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingDepth_mm { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. Unit is Newtons. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List CuttingForcesToWorkpieceOnProgramCoordinate_N Get the cutting forces on program coordinate. Unit is Newtons. The forced item is workpiece. public List CuttingForcesToWorkpieceOnProgramCoordinate_N { get; } Property Value List CuttingSpeed_mmds Gets the cutting speed in mm/s. The speed on the cutter outer radius by the spindle rotating. [Present(\"Cutting Speed\", \"Vc\", PhysicsUnit.mmds, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double? CuttingSpeed_mmds { get; } Property Value double? CuttingWidth_mm Gets the cutting width in mm. [Present(\"Cutting Width\", \"ae\", PhysicsUnit.mm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double CuttingWidth_mm { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_um Gets the delta tip deflection on tool running coordinate in micrometers [Present(\"Delta Tip Deflection On Tool Running Coordinate\", \"Dlt.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d EndTimecode Ideal accumulated worked time by simulation. Ideal Program duration. [Present(\"Time\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan EndTimecode { get; } Property Value TimeSpan FeedPerCycle_mm Gets the feed per cycle in mm. [Present(\"Feed per Cycle\", \"frc\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerCycle_mm { get; } Property Value double FeedPerTooth_mm Gets the feed per tooth in mm. [Present(\"Feed per Tooth\", \"frt\", PhysicsUnit.mm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double FeedPerTooth_mm { get; } Property Value double Feedrate_mmdmin Gets the feedrate in mm/min. [Present(\"Feedrate\", \"F\", PhysicsUnit.mmdmin, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double Feedrate_mmdmin { get; } Property Value double Feedrate in mm/s FileNo Gets the file number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? FileNo { get; } Property Value int? FilePath Gets the file path. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FilePath { get; } Property Value string FlagsText Gets the flags text. [Present] [JsAce(ClassExt = \"MachiningStep\")] public string FlagsText { get; } Property Value string FlexDictionary Gets or sets the flexible dictionary. public Dictionary FlexDictionary { get; set; } Property Value Dictionary FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. [JsAce(ClassExt = \"MachiningStep\")] public double? FrictionPower_W { get; } Property Value double? Host Gets or sets the host of the milling step. public IMachiningService Host { get; set; } Property Value IMachiningService InstantCraterWear_um Gets the instant crater wear in micrometers [Present(\"Instant Crater Wear\", \"I.C.Wear\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? InstantCraterWear_um { get; } Property Value double? IsActualTimeInterpolated Whether the wall-clock stamp was extrapolated rather than read directly from a controller row. View onto ActualTime; null when the step has no wall-clock stamp at all. [Present(\"Actual Interpolated\", \"Act.Int\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsActualTimeInterpolated { get; } Property Value bool? IsReliefFaceCollided Gets a value indicating whether the relief face is collided. [Present(\"Is Relief Face Collided\", \"Is-Rlf.C.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool? IsReliefFaceCollided { get; } Property Value bool? IsTouched Gets whether the step is touched. [Present(\"Is Touched\", null, PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public bool IsTouched { get; } Property Value bool this[string] Gets or sets a value in the flexible dictionary by key. public object this[string key] { get; set; } Parameters key string The key to look up. Property Value object The value associated with the key, or null if not found. LineNo Gets the line number. [Present] [JsAce(ClassExt = \"MachiningStep\")] public int? LineNo { get; } Property Value int? LineText Gets the block text (may contain multiple lines for multi-line NC blocks). [Present] [JsAce(ClassExt = \"MachiningStep\")] public string LineText { get; } Property Value string MachineMotionStep Gets or sets the machining step. public MachineMotionStep MachineMotionStep { get; set; } Property Value MachineMotionStep MachiningTool Gets the machining tool used for this milling step. public IMachiningTool MachiningTool { get; } Property Value IMachiningTool MaxAbsForce_N Max absolute force at the rotation cycle. [Present(\"Max Absolute Force\", \"Max Abs F.\", PhysicsUnit.N, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxAbsForce_N { get; } Property Value double? MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm Gets the maximum bottom edge deflection on tool running coordinate in millimeters It only make sense in end mill. The z value of this factor is re-cut depth. [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um Gets the maximum bottom edge deflection on tool running coordinate in micrometers. [Present(\"Max Bottom Edge Deflection On Tool Running Coordinate\", \"Df.-Bt.Edge-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxBottomEdgeDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on tool running coordinate in N. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about sensor in Newton-meters [Present(\"Max Moment To Tool About Sensor\", \"MaxM-ToTool-Sensor-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about tool tip in Newton-meters [Present(\"Max Moment To Tool About ToolTip\", \"MaxM-ToTool-Tip-SR\", PhysicsUnit.Nm, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Maximum spindle power ratio: input power / instantaneous maximum power per spindle capability. [Present(\"Max Spindle Power Ratio\", \"Max.Spd.Pow.R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindlePowerRatio { get; } Property Value double? MaxSpindleTorqueRatio Gets the maximum spindle torque ratio [Present(\"Max Spindle Torque Ratio\", \"Max.Spd.Torque-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? MaxSpindleTorqueRatio { get; } Property Value double? MaxTipDeflectionOnToolRunningCoordinate_mm Gets the maximum tip deflection on tool running coordinate in millimeters [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d MaxTipDeflectionOnToolRunningCoordinate_um Gets the maximum tip deflection on tool running coordinate in micrometers [Present(\"Max Tip Deflection On Tool Running Coordinate\", \"Max.Df.-Tip-TR\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MaxTipDeflectionOnToolRunningCoordinate_um { get; } Property Value Vec3d MillingInstance Gets or sets the milling instance. public MillingInstance MillingInstance { get; set; } Property Value MillingInstance MillingStepLuggage Get luggage by sequencing loading performance optimization. public MillingStepLuggage MillingStepLuggage { get; } Property Value MillingStepLuggage MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm Get Moments About Observation Point On Spindle Rotation Coordinate. Unit is Newtons-meter. The forced item is tool. public List MomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm { get; } Property Value List Remarks Not cached data. Light computation cost of the vectors transformation. MoveOnProgramCoordinate Gets the move on program coordinate. [Present(\"Move On Workpiece Program Coordinate\", \"Move-W\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public Vec3d MoveOnProgramCoordinate { get; } Property Value Vec3d MovingLength_mm Gets the moving length in mm. From previous-step to current-step. [Present(\"Move Length\", \"Move Len.\", PhysicsUnit.mm, \"F4\")] [JsAce(ClassExt = \"MachiningStep\")] public double MovingLength_mm { get; } Property Value double Mrr_mm3ds Gets the material removal rate in mm³/s. [Present(\"MRR\", null, PhysicsUnit.mm3ds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double Mrr_mm3ds { get; } Property Value double ProgramSideCusp_um Gets the program side cusp in micrometers. Side cusp without deformation. The value is count by feed per tooth and the tool radius. [Present(\"Program Side Cusp\", null, PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ProgramSideCusp_um { get; } Property Value double ReCutDepth_um Gets or sets the recut depth in micrometers. The recut depth cause the cutting mark by the end mill. The recut depth increased by the cutter radius increased. [Present(\"Re-Cut Depth on Bottom Edge on Tool Running Coordinate\", \"Re-Cut Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ReCutDepth_um { get; } Property Value double ReliefFaceCollidingVelocity_mmds Gets the relief face colliding speed. [Present(\"Relief Face Colliding Speed\", \"Rlf.C.Speed\", PhysicsUnit.mmds, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ReliefFaceCollidingVelocity_mmds { get; } Property Value double? SentenceIndex Execution-order ordinal of the NC source block this step came from, delegated from SourceCommand. This is the source block's position — distinct from this step's own StepIndex, since one block can expand into several steps. Returns -1 (the “not in pipeline” sentinel) when there is no source carrier. public int SentenceIndex { get; } Property Value int SideCuspList_um Gets the list of side cusps in micrometers. [JsAce(ClassExt = \"MachiningStep\")] public List SideCuspList_um { get; } Property Value List SourceCommand Gets or sets the source command — the NC-source carrier that produced this step, exposing both the Sentence (via GetSentence()) and the execution-order SentenceIndex. public ISentenceCarrier SourceCommand { get; set; } Property Value ISentenceCarrier SpindleCyclePeriod_s Gets the spindle rotation cycle period in seconds. [Present(\"Spindle Cycle Period\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleCyclePeriod_s { get; } Property Value double SpindleInputPower_W Input spindle power in watts: energy entering the spindle. [Present(\"Spindle Input Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleInputPower_W { get; } Property Value double Input spindle power in Watts. SpindleOutputPower_W Spindle output power in watts (axial power taken by workpiece). Energy at the cutting end after spindle losses; causes workpiece/chip deformation and temperature rise. [Present(\"Spindle Output Power\", null, PhysicsUnit.watt, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleOutputPower_W { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in RPM. [Present(\"Spindle Speed\", \"S\", PhysicsUnit.rpm, \"G5\")] [JsAce(ClassExt = \"MachiningStep\")] public double SpindleSpeed_rpm { get; } Property Value double Spindle speed in rad/s SpindleTemperature_C Gets the spindle temperature in Celsius [Present(\"Spindle Temperature\", \"Spd.Temp.\", PhysicsUnit.C, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleTemperature_C { get; } Property Value double? SpindleWorkingTemperatureRatio Gets the spindle working temperature ratio [Present(\"Spindle Working Temperature Ratio\", \"Spd.Temp.R.\", PhysicsUnit.None, \"G2\")] [JsAce(ClassExt = \"MachiningStep\")] public double? SpindleWorkingTemperatureRatio { get; } Property Value double? StepDuration Gets the step duration. [Present(\"Step Duration\", \"duration\", PhysicsUnit.sec, \"ss\\\\.ffffff\")] [JsAce(ClassExt = \"MachiningStep\")] public TimeSpan StepDuration { get; } Property Value TimeSpan StepIndex Gets the index of the step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Present(\"Step Index\", \"S.I.\", PhysicsUnit.None, \"G\")] public int StepIndex { get; } Property Value int ThermalStress_MPa Gets the thermal stress in MPa [Present(\"Thermal Stress\", \"Th. S.\", PhysicsUnit.MPa, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalStress_MPa { get; } Property Value double? ThermalYieldRatio Gets the thermal yield ratio [Present(\"Thermal Yield Ratio\", \"Th. Yield R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? ThermalYieldRatio { get; } Property Value double? TipDeflectionsOnToolRunningCoordinate_um Gets the tip deflections on tool running coordinate in micrometers [JsAce(ClassExt = \"MachiningStep\")] public List TipDeflectionsOnToolRunningCoordinate_um { get; } Property Value List ToolId Gets the tool ID. [Present(\"Tool ID\", \"T\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public int ToolId { get; } Property Value int ToothArcDuration_s Gets the tooth arc duration in seconds by the spindle rotation. The value is SpindleCyclePeriod_s div Cutter's teeth number. [Present(\"Tooth Arc Duration\", null, PhysicsUnit.sec, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double ToothArcDuration_s { get; } Property Value double ToothSeqOnToolRunningCoordinate Gets the sequence pair of transformation matrices representing tooth positions on the tool running coordinate system. public SeqPair ToothSeqOnToolRunningCoordinate { get; } Property Value SeqPair WorkpieceDermisTemperature_C Gets the workpiece dermis temperature in Celsius [Present(\"Workpiece Dermis Temperature\", \"W. Dermis T.\", PhysicsUnit.C, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? WorkpieceDermisTemperature_C { get; } Property Value double? WorkpiecePlasticDepth_um Gets the workpiece plastic depth in micrometers. The depth is at the location that the cutting stress is equal to the yielding stress. The cutting stress exert to the workpiece decreased on the depth increased. [Present(\"Workpiece Plastic Deformation Depth\", \"W.P.Depth\", PhysicsUnit.um, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double WorkpiecePlasticDepth_um { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio [Present(\"Yielding Stress Ratio\", \"Y-Stress-R.\", PhysicsUnit.None, \"G4\")] [JsAce(ClassExt = \"MachiningStep\")] public double? YieldingStressRatio { get; } Property Value double? Methods GetCutterDermisAvgTemperature_C(double) Gets the average cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisAvgTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Average temperature in Celsius GetCutterDermisTemperature_C(double) Gets the cutter dermis temperature in Celsius at the specified depth. [JsAce(ClassExt = \"MachiningStep\")] public double GetCutterDermisTemperature_C(double depth_mm) Parameters depth_mm double The depth in millimeters Returns double Temperature in Celsius GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetIndexedFileLine() Gets the file line associated with this object. public IndexedFileLine GetIndexedFileLine() Returns IndexedFileLine The file line object. GetMcValue(IMachiningChain, string) Gets the MC value for the specified tag in the machining chain. public double? GetMcValue(IMachiningChain chain, string tag) Parameters chain IMachiningChain The machining chain. tag string The tag to look up. Returns double? The MC value for the specified tag. GetMcValue(int) Gets the MC value at the specified index. For common machine tool, the index 0,1,2,3,4,5 is corresponding to motion component X,Y,Z,A,B,C. If the corresponding motion component not existed, return NaN. If MachineMotionStep not existed, return null. [JsAce(ClassExt = \"MachiningStep\")] public double? GetMcValue(int index) Parameters index int The index to look up. Returns double? The MC value at the specified index. GetRgbWithPriority(out Vec3d, out double) Gets the RGB color and priority for the milling step. public void GetRgbWithPriority(out Vec3d rgb, out double priority) Parameters rgb Vec3d The RGB color vector. priority double The priority value. GetSentence() Returns the source Sentence carried by this object. public Sentence GetSentence() Returns Sentence GetSpindleDirection() Gets the spindle direction for this milling step. [Present(\"Spindle Direction\", \"Spd.Dir.\", PhysicsUnit.None, \"G\")] [JsAce(ClassExt = \"MachiningStep\")] public SpindleDirection GetSpindleDirection() Returns SpindleDirection GetSpindleSpeed_cycleds() Gets the spindle speed in cycles per second. public double GetSpindleSpeed_cycleds() Returns double The spindle speed in cycles per second. GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s UpdateNcOptOption(Action) Update NcOptOption for this step only. It should not be mixed with the StepBuilt event and NC inline optimization script since the concurent process may break the logics. public void UpdateNcOptOption(Action action) Parameters action Action the action to modify the step." }, "api/Hi.MachiningSteps.MachiningStepUtil.html": { "href": "api/Hi.MachiningSteps.MachiningStepUtil.html", "title": "Class MachiningStepUtil | HiAPI-C# 2025", "summary": "Class MachiningStepUtil Namespace Hi.MachiningSteps Assembly HiMech.dll Utility class for milling step related constants and helper methods. public static class MachiningStepUtil Inheritance object MachiningStepUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties MachiningStepDbName Gets the database name for milling steps. public static string MachiningStepDbName { get; } Property Value string MillingStepLuggageCollectionName Gets the collection name for milling step luggage. public static string MillingStepLuggageCollectionName { get; } Property Value string" }, "api/Hi.MachiningSteps.PresentAccess.html": { "href": "api/Hi.MachiningSteps.PresentAccess.html", "title": "Class PresentAccess | HiAPI-C# 2025", "summary": "Class PresentAccess Namespace Hi.MachiningSteps Assembly HiMech.dll Provides a value accessor bound with its PresentAttribute metadata. public class PresentAccess Inheritance object PresentAccess 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) Constructors PresentAccess(PresentAttribute, Func) Initializes a new instance of the PresentAccess class. public PresentAccess(PresentAttribute present, Func getFunc) Parameters present PresentAttribute The presentation metadata. getFunc Func The accessor delegate that retrieves the value. Properties GetValueFunc Gets or sets the accessor delegate used to retrieve the value. public Func GetValueFunc { get; set; } Property Value Func Present Gets or sets the presentation metadata. public PresentAttribute Present { get; set; } Property Value PresentAttribute" }, "api/Hi.MachiningSteps.PresentAttribute.html": { "href": "api/Hi.MachiningSteps.PresentAttribute.html", "title": "Class PresentAttribute | HiAPI-C# 2025", "summary": "Class PresentAttribute Namespace Hi.MachiningSteps Assembly HiMech.dll Attribute for presenting property information with localization support. public class PresentAttribute : Attribute Inheritance object Attribute PresentAttribute Inherited Members Attribute.Equals(object) Attribute.GetCustomAttribute(Assembly, Type) Attribute.GetCustomAttribute(Assembly, Type, bool) Attribute.GetCustomAttribute(MemberInfo, Type) Attribute.GetCustomAttribute(MemberInfo, Type, bool) Attribute.GetCustomAttribute(Module, Type) Attribute.GetCustomAttribute(Module, Type, bool) Attribute.GetCustomAttribute(ParameterInfo, Type) Attribute.GetCustomAttribute(ParameterInfo, Type, bool) Attribute.GetCustomAttributes(Assembly) Attribute.GetCustomAttributes(Assembly, bool) Attribute.GetCustomAttributes(Assembly, Type) Attribute.GetCustomAttributes(Assembly, Type, bool) Attribute.GetCustomAttributes(MemberInfo) Attribute.GetCustomAttributes(MemberInfo, bool) Attribute.GetCustomAttributes(MemberInfo, Type) Attribute.GetCustomAttributes(MemberInfo, Type, bool) Attribute.GetCustomAttributes(Module) Attribute.GetCustomAttributes(Module, bool) Attribute.GetCustomAttributes(Module, Type) Attribute.GetCustomAttributes(Module, Type, bool) Attribute.GetCustomAttributes(ParameterInfo) Attribute.GetCustomAttributes(ParameterInfo, bool) Attribute.GetCustomAttributes(ParameterInfo, Type) Attribute.GetCustomAttributes(ParameterInfo, Type, bool) Attribute.GetHashCode() Attribute.IsDefaultAttribute() Attribute.IsDefined(Assembly, Type) Attribute.IsDefined(Assembly, Type, bool) Attribute.IsDefined(MemberInfo, Type) Attribute.IsDefined(MemberInfo, Type, bool) Attribute.IsDefined(Module, Type) Attribute.IsDefined(Module, Type, bool) Attribute.IsDefined(ParameterInfo, Type) Attribute.IsDefined(ParameterInfo, Type, bool) Attribute.Match(object) Attribute.TypeId object.Equals(object, object) 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 PresentAttribute() Initializes a new instance of the PresentAttribute class. public PresentAttribute() PresentAttribute(PresentAttribute) Initializes a new instance of the PresentAttribute class by copying from another instance. public PresentAttribute(PresentAttribute src) Parameters src PresentAttribute The source attribute to copy from. PresentAttribute(string, string, PhysicsUnit, string) Initializes a new instance of the PresentAttribute class with specified parameters. public PresentAttribute(string name, string shortName, PhysicsUnit unit, string dataFormatString) Parameters name string The display name of the property. shortName string The short name of the property. unit PhysicsUnit The physics unit of the property. dataFormatString string The format string for displaying the property value. Properties DataFormatString Gets or sets the format string for displaying the property value. public string DataFormatString { get; set; } Property Value string Name Gets or sets the display name of the property. public string Name { get; set; } Property Value string ShortName Gets or sets the short name of the property. public string ShortName { get; set; } Property Value string TailUnitString Gets the unit string with parentheses for display purposes. public string TailUnitString { get; } Property Value string Unit Gets or sets the physics unit of the property. public PhysicsUnit Unit { get; set; } Property Value PhysicsUnit Methods GetPresentName(StringLocalizer) Gets the localized presentation name with unit string. public string GetPresentName(StringLocalizer loc) Parameters loc StringLocalizer The string localizer. Returns string The localized name with unit string. GetPresentName(IStringLocalizer) Gets the localized presentation name with unit string. public string GetPresentName(IStringLocalizer loc) Parameters loc IStringLocalizer The string localizer. Returns string The localized name with unit string." }, "api/Hi.MachiningSteps.PropertyAccess-1.html": { "href": "api/Hi.MachiningSteps.PropertyAccess-1.html", "title": "Class PropertyAccess | HiAPI-C# 2025", "summary": "Class PropertyAccess Namespace Hi.MachiningSteps Assembly HiMech.dll Provides access to properties of a milling step with presentation information. public class PropertyAccess where TData : class Type Parameters TData Inheritance object PropertyAccess 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) Constructors PropertyAccess(PresentAttribute, Func) Initializes a new instance for numeric properties. public PropertyAccess(PresentAttribute presentAttribute, Func getQuantityFunc) Parameters presentAttribute PresentAttribute The presentation attribute for the property. getQuantityFunc Func The function to retrieve the numeric value. PropertyAccess(PresentAttribute, Func) Initializes a new instance for non-numeric properties. public PropertyAccess(PresentAttribute presentAttribute, Func getNonQuantityFunc) Parameters presentAttribute PresentAttribute The presentation attribute for the property. getNonQuantityFunc Func The function to retrieve the non-numeric value. Properties GetNonQuantityFunc Gets or sets the function to retrieve a non-numeric value from a milling step. public Func GetNonQuantityFunc { get; set; } Property Value Func GetQuantityFunc Gets or sets the function to retrieve a numeric value from a milling step. public Func GetQuantityFunc { get; set; } Property Value Func PresentAttribute Gets or sets the presentation attribute for the property. public PresentAttribute PresentAttribute { get; set; } Property Value PresentAttribute Methods GetValue(TData) Gets the value of the property for the specified milling step. public object GetValue(TData step) Parameters step TData The milling step to get the property value from. Returns object The property value, or null if neither function is set. GetValueText(object) Gets the formatted text representation of the specified value. public string GetValueText(object v) Parameters v object The value to format. Returns string The formatted text representation of the value. GetValueText(TData) Gets the formatted text representation of the property value for the specified milling step. public string GetValueText(TData step) Parameters step TData The milling step to get the property value from. Returns string The formatted text representation of the property value." }, "api/Hi.MachiningSteps.StepActualTime.html": { "href": "api/Hi.MachiningSteps.StepActualTime.html", "title": "Class StepActualTime | HiAPI-C# 2025", "summary": "Class StepActualTime Namespace Hi.MachiningSteps Assembly HiMech.dll Wall-clock stamp of a machining step end — the controller-recorded timeline, as opposed to the simulated machine timeline (EndTimecode). Grouped into one optional sub-object so scenes that never map measured data (pure NC simulation, collision check, optimization) carry a single null reference per step. A CSV play stamps only the first step built after each row/idle boundary with the controller instant; the steps in between receive values extrapolated from the latest stamp along the machine timeline and are marked IsInterpolated. public class StepActualTime Inheritance object StepActualTime 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 Instant Absolute controller instant of the step end; null when the source row carried only a relative timecode. public DateTime? Instant { get; set; } Property Value DateTime? IsInterpolated False when the values came directly from a controller row (an original stamp — a genuine timeline anchor); true when they were extrapolated from the latest stamp along the machine timeline. public bool IsInterpolated { get; set; } Property Value bool Timecode Run-relative wall-clock timecode of the step end, resolved against the project mapping anchor (TimeMapping.MappingAnchorDateTime). public TimeSpan Timecode { get; set; } Property Value TimeSpan" }, "api/Hi.MachiningSteps.StepPresentCatalog.html": { "href": "api/Hi.MachiningSteps.StepPresentCatalog.html", "title": "Class StepPresentCatalog | HiAPI-C# 2025", "summary": "Class StepPresentCatalog Namespace Hi.MachiningSteps Assembly HiMech.dll Internal Use Only. Expands the PresentAttribute-annotated properties of MachiningStep into the stable presentation-key dictionary (vector properties fan out to .X/.Y/.Z, the cutter location to .X/.Y/.Z/.I/.J/.K). public static class StepPresentCatalog Inheritance object StepPresentCatalog Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods BuildNativeAccessDictionary() Internal Use Only. Builds the key-to-access dictionary for the native (machine-independent) MachiningStep presentation properties. public static Dictionary> BuildNativeAccessDictionary() Returns Dictionary> The dictionary mapping stable presentation keys to their property access." }, "api/Hi.MachiningSteps.html": { "href": "api/Hi.MachiningSteps.html", "title": "Namespace Hi.MachiningSteps | HiAPI-C# 2025", "summary": "Namespace Hi.MachiningSteps Classes MachineMotionStep MachiningStep has spindle information. Note that the spindle information is only for milling behavior. MachiningStep Represents a machining step enriched with physics, mapping and source metadata. The duration-based step property is based on the duration from previous-step to current-step. MachiningStep.CollidedKeyPair A pair of collided keys that indicates two entities are in collision. MachiningStepUtil Utility class for milling step related constants and helper methods. PresentAccess Provides a value accessor bound with its PresentAttribute metadata. PresentAttribute Attribute for presenting property information with localization support. PropertyAccess Provides access to properties of a milling step with presentation information. StepActualTime Wall-clock stamp of a machining step end — the controller-recorded timeline, as opposed to the simulated machine timeline (EndTimecode). Grouped into one optional sub-object so scenes that never map measured data (pure NC simulation, collision check, optimization) carry a single null reference per step. A CSV play stamps only the first step built after each row/idle boundary with the controller instant; the steps in between receive values extrapolated from the latest stamp along the machine timeline and are marked IsInterpolated. StepPresentCatalog Internal Use Only. Expands the PresentAttribute-annotated properties of MachiningStep into the stable presentation-key dictionary (vector properties fan out to .X/.Y/.Z, the cutter location to .X/.Y/.Z/.I/.J/.K). Interfaces IFlagText temperary design for showing flag text. IMachiningService Represents a host interface for milling steps that provides access to milling equipment and related resources. IMotionStepIndex Abstraction for an object that carries a StepIndex — the 0-based ordinal of a machining motion step in execution order. Used as a cross-object alignment key so a step (MachiningStep), its cutter-location position (ClStripPos), and the messages anchored to it (StepDiagnostic, StepScopedProgress) can be matched by the same ordinal without depending on a concrete type. Distinct from ISentenceIndexed: that ordinal counts NC source blocks, whereas this one counts produced motion steps — a single source block (e.g. a canned cycle) can fan out into several steps. IStepPropertyAccessHost Narrow host contract for accessing the step-variable registry and registering new step variables. Exposed as a dedicated surface so pipelines that only need step-variable wiring (e.g. CsvRowSyntax) do not have to depend on the broader IMachiningService." }, "api/Hi.Mapping.CsvNcStep.html": { "href": "api/Hi.Mapping.CsvNcStep.html", "title": "Class CsvNcStep | HiAPI-C# 2025", "summary": "Class CsvNcStep Namespace Hi.Mapping Assembly HiMech.dll Represents a numerical control step loaded from a CSV file, with support for interpolation and arithmetic operations. public class CsvNcStep : IGetFileLineIndex, IAdditionOperators, IMultiplyOperators Inheritance object CsvNcStep Implements IGetFileLineIndex IAdditionOperators IMultiplyOperators 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) Constructors CsvNcStep(FileLineIndex, TimeSpan, DVec3d, List) Initializes a new instance of the CsvNcStep class with the specified parameters. public CsvNcStep(FileLineIndex fileLineIndex, TimeSpan time, DVec3d mcXyzabc, List doubleFlexList) Parameters fileLineIndex FileLineIndex The file and line index information. time TimeSpan The time value for this step. mcXyzabc DVec3d The machine coordinates for this step. doubleFlexList List The list of additional double values. Properties ActualDateTime Optional absolute controller instant captured at parse time; null when the row was relative. Resolved to ActualTimecode against the project mapping anchor (timecode-first when both are present). public DateTime? ActualDateTime { get; set; } Property Value DateTime? ActualTimecode Gets or sets the relative timecode for this step (position from run start). Authoritative for interpolation / arithmetic. public TimeSpan ActualTimecode { get; set; } Property Value TimeSpan DoubleFlexList Gets or sets the list of additional double values associated with this step. public List DoubleFlexList { get; set; } Property Value List FileLineIndex Gets or sets the file and line index information. public FileLineIndex FileLineIndex { get; set; } Property Value FileLineIndex McXyzabc Gets the machine coordinates (XYZ and ABC) for this step. public DVec3d McXyzabc { get; } Property Value DVec3d Methods GetFileLineIndex() Get FileLineIndex. public FileLineIndex GetFileLineIndex() Returns FileLineIndex FileLineIndex MapSingleByCsvFile(ClStrip, string, string, IProgress, Func) Embed single data per step by CSV file. It is one (step) - one (embedded-data) mapping. Time interpolation is applied. It is time-based mapping. Builds a collection of CsvNcStep instances from a CSV file. public static void MapSingleByCsvFile(ClStrip clStrip, string baseDirectory, string relFile, IProgress messageProgress, Func toTimecode = null) Parameters clStrip ClStrip The cutter location strip to populate. baseDirectory string The base directory for the file path. relFile string The relative file path to the CSV file. messageProgress IProgress The message host for logging. toTimecode Func Converter from an absolute controller instant to a run-relative timecode (the project mapping anchor's converter). Used when the actual-time cell is a DateTime rather than a bare timecode; timecode-first when both are parseable. Null falls back to the legacy timecode / sim-time parse. Operators operator +(CsvNcStep, CsvNcStep) Adds two CsvNcStep instances together. public static CsvNcStep operator +(CsvNcStep left, CsvNcStep right) Parameters left CsvNcStep The first CsvNcStep instance. right CsvNcStep The second CsvNcStep instance. Returns CsvNcStep A new CsvNcStep instance with values that are the sum of the two input instances. operator *(CsvNcStep, double) Multiplies a CsvNcStep instance by a scalar value. public static CsvNcStep operator *(CsvNcStep src, double scale) Parameters src CsvNcStep The CsvNcStep instance to multiply. scale double The scalar value to multiply by. Returns CsvNcStep A new CsvNcStep instance with values scaled by the specified factor." }, "api/Hi.Mapping.FileToTimeShotMapping.html": { "href": "api/Hi.Mapping.FileToTimeShotMapping.html", "title": "Class FileToTimeShotMapping | HiAPI-C# 2025", "summary": "Class FileToTimeShotMapping Namespace Hi.Mapping Assembly HiMech.dll Provides mapping between files and time shot data with caching capabilities. This class manages the loading and caching of time shot data from measurement files. public class FileToTimeShotMapping Inheritance object FileToTimeShotMapping 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 LineReaded Gets or sets the callback action that is invoked when a line is read from a file. This can be used to track progress during file loading operations. public Action LineReaded { get; set; } Property Value Action Remarks The parameter passed to the action is the current line number being read. This is useful for implementing progress indicators or logging. Methods CallTimeShotByFile(string, CancellationToken?) Gets time shot data from a file, using cache if available. If the data is not in the cache, reads the file and caches the results. public List CallTimeShotByFile(string file, CancellationToken? cancellationToken = null) Parameters file string The file path to read time shot data from. cancellationToken CancellationToken? Optional cancellation token to cancel the operation. Returns List A list of time shots from the file. The results are cached for subsequent calls. Returns null if the file cannot be read or contains invalid data. Remarks This method is thread-safe and ensures each file is only read once, even with concurrent access. The cached data is shared between all callers to improve performance. Clear() Clears the file to time shot mapping cache. This removes all cached data and frees up memory. public void Clear() Remarks Call this method when: The cached data is no longer needed You need to force a reload of data from files You need to free up memory" }, "api/Hi.Mapping.IAccelerationShot.html": { "href": "api/Hi.Mapping.IAccelerationShot.html", "title": "Interface IAccelerationShot | HiAPI-C# 2025", "summary": "Interface IAccelerationShot Namespace Hi.Mapping Assembly HiMech.dll Interface for objects that represent acceleration measurements at a specific time point. Extends the ITimeShot interface to include acceleration data in multiple units. public interface IAccelerationShot : ITimeShot, ITimecoded Inherited Members ITimeShot.GetAdd(ITimeShot) ITimeShot.GetScaled(double) ITimecoded.Timecode 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) Remarks This interface adds acceleration measurement capabilities to time shots: Provides acceleration data in multiple units (mm/s², m/s², g) Supports automatic unit conversion between different scales Typically used for vibration analysis in machining operations Maintains consistent coordinate system conventions across unit conversions Properties Acceleration_g Gets or sets the acceleration vector in g-force units (g). This property automatically converts between mm/s² and g, where 1g = 9.81 m/s². Vec3d Acceleration_g { get; set; } Property Value Vec3d Remarks Conversion factors: From m/s² to g: divide by 9.81 From g to m/s²: multiply by 9.81 Common reference values: 1g: Earth's gravitational acceleration 0g: Free fall Acceleration_mds2 Gets or sets the acceleration vector in meters per second squared (m/s²). This property automatically converts between mm/s² and m/s². Vec3d Acceleration_mds2 { get; set; } Property Value Vec3d Remarks Conversion factors: From mm/s² to m/s²: divide by 1000 From m/s² to mm/s²: multiply by 1000 Acceleration_mmds2 Gets or sets the acceleration vector in millimeters per second squared (mm/s²). This is the base unit for acceleration storage in the system. Vec3d Acceleration_mmds2 { get; set; } Property Value Vec3d Remarks The acceleration vector components represent: X: Acceleration in the X direction (mm/s²) Y: Acceleration in the Y direction (mm/s²) Z: Acceleration in the Z direction (mm/s²)" }, "api/Hi.Mapping.IForceShot.html": { "href": "api/Hi.Mapping.IForceShot.html", "title": "Interface IForceShot | HiAPI-C# 2025", "summary": "Interface IForceShot Namespace Hi.Mapping Assembly HiMech.dll Interface for objects that represent force measurements at a specific time point. Extends the ITimeShot interface to include force vector data. public interface IForceShot : ITimeShot, ITimecoded Inherited Members ITimeShot.GetAdd(ITimeShot) ITimeShot.GetScaled(double) ITimecoded.Timecode 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) Remarks This interface adds force measurement capabilities to time shots: Force is represented as a 3D vector in Newtons Supports operations inherited from ITimeShot Implementations should handle coordinate system conventions appropriately Typically used for recording cutting forces in machining operations Properties Force_N Gets or sets the force vector applied to the workpiece, measured in Newtons (N). Vec3d Force_N { get; set; } Property Value Vec3d Remarks The force vector components represent: X: Force in the X direction (N) Y: Force in the Y direction (N) Z: Force in the Z direction (N) Positive values typically indicate: Forces acting in the positive direction of each axis Forces applied to the workpiece (rather than the tool)" }, "api/Hi.Mapping.IMomentShot.html": { "href": "api/Hi.Mapping.IMomentShot.html", "title": "Interface IMomentShot | HiAPI-C# 2025", "summary": "Interface IMomentShot Namespace Hi.Mapping Assembly HiMech.dll Interface for objects that represent moment (torque) measurements at a specific time point. Extends the ITimeShot interface to include moment vector data. public interface IMomentShot : ITimeShot, ITimecoded Inherited Members ITimeShot.GetAdd(ITimeShot) ITimeShot.GetScaled(double) ITimecoded.Timecode 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) Remarks This interface adds moment measurement capabilities to time shots: Moments are represented as 3D vectors in Newton-meters Supports operations inherited from ITimeShot Typically used for recording spindle or tool torques in machining operations Follows the right-hand rule convention for moment directions Properties Moment_Nm Gets or sets the moment (torque) vector, measured in Newton-meters (N⋅m). Vec3d Moment_Nm { get; set; } Property Value Vec3d Remarks The moment vector components represent: X: Moment around the X axis (N⋅m) Y: Moment around the Y axis (N⋅m) Z: Moment around the Z axis (N⋅m) Positive values indicate: Clockwise moments when looking along the positive axis direction Following the right-hand rule convention" }, "api/Hi.Mapping.ITimeShot.html": { "href": "api/Hi.Mapping.ITimeShot.html", "title": "Interface ITimeShot | HiAPI-C# 2025", "summary": "Interface ITimeShot Namespace Hi.Mapping Assembly HiMech.dll Interface for objects that represent a snapshot of data at a specific time and support arithmetic operations. This interface provides a foundation for time-series data with vector operations. public interface ITimeShot : ITimecoded Inherited Members ITimecoded.Timecode 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) Remarks Implementations of this interface should: Store data associated with a specific time point Support addition with other time shots Support scaling by a scalar value Handle null or invalid data appropriately Methods GetAdd(ITimeShot) Adds another time shot to this one. ITimeShot GetAdd(ITimeShot shot) Parameters shot ITimeShot The time shot to add. Returns ITimeShot A new time shot representing the sum of the two shots. Remarks The addition should: Combine vector components appropriately Handle null or missing data gracefully Preserve the time value according to implementation rules GetScaled(double) Scales the values in this time shot by the specified factor. ITimeShot GetScaled(double scale) Parameters scale double The scaling factor to apply to all vector components. Returns ITimeShot A new time shot with all values scaled by the given factor. Remarks The scaling should: Apply to all vector components Handle null or missing data gracefully Scale the time value if appropriate for the implementation" }, "api/Hi.Mapping.MappingUtil.html": { "href": "api/Hi.Mapping.MappingUtil.html", "title": "Class MappingUtil | HiAPI-C# 2025", "summary": "Class MappingUtil Namespace Hi.Mapping Assembly HiMech.dll Shared CSV column tags and physics-related column prefixes for mapping simulator or logged controller data onto MachiningStep rows. public static class MappingUtil Inheritance object MappingUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields ActualDateTimeTag Absolute controller-instant column written alongside ActualTimecodeTag (the MachiningStep.ActualDateTime member) so the calendar date survives. Pinned to a literal so renaming the member does not change the CSV header; optional companion column. public const string ActualDateTimeTag = \"ActualDateTime\" Field Value string ActualTimeTag Legacy single-column title for actual time in the CSV (a bare TimeSpan timecode or an absolute DateTime). The step-file writer now splits this into the ActualTimecodeTag + ActualDateTimeTag pair; this column is still read for pre-split files. public const string ActualTimeTag = \"ActualTime\" Field Value string ActualTimecodeTag Run-relative actual timecode column written by the step-file exporter (the MachiningStep.ActualTimecode member). Pinned to a literal so renaming the member does not change the CSV header; preferred over the legacy single ActualTimeTag column when present. public const string ActualTimecodeTag = \"ActualTimecode\" Field Value string CoolantTag Coolant tag for CSV parsing. The cell holds the coolant mode name (e.g. Flood / Mist / Off) or a boolean on/off flag. public const string CoolantTag = \"Coolant\" Field Value string CutterLocationPrefix Cutter Location Prefix Tag for CSV Parsing. public const string CutterLocationPrefix = \"CL.\" Field Value string DurationTag Duration tag for CSV parsing. public const string DurationTag = \"StepDuration\" Field Value string FeedrateTag_mmdmin Feedrate for Simulator Tag for CSV Parsing. public const string FeedrateTag_mmdmin = \"Feedrate_mmdmin\" Field Value string FileNoTag Gets or sets the column title for file number in the CSV. public const string FileNoTag = \"FileNo\" Field Value string HolderMomentPrefix CSV column prefix for holder moment / torque channels. public const string HolderMomentPrefix = \"Holder.M\" Field Value string LineBeginCsScriptTag LineBeginCsScript Tag for CSV Parsing. public const string LineBeginCsScriptTag = \"LineBeginCsScript\" Field Value string LineEndCsScriptTag LineEndCsScript Tag for CSV Parsing. public const string LineEndCsScriptTag = \"LineEndCsScript\" Field Value string LineNoTag Gets or sets the column title for line number in the CSV. public const string LineNoTag = \"LineNo\" Field Value string MachineCoordinatePrefix Machine Coordinate Prefix Tag for CSV Parsing. public const string MachineCoordinatePrefix = \"MC.\" Field Value string SimTimeTag Fallback time column when ActualTimeTag is absent or unparseable: the simulated end timecode. Pinned to a literal (decoupled from the model member name) so renaming the member does not change the CSV header; pre-rename files that used the old “AccumulatedTime” header are still read via SimTimeTagLegacy / GetSimTimeCell(IReadOnlyDictionary). public const string SimTimeTag = \"EndTimecode\" Field Value string SimTimeTagLegacy Legacy CSV header accepted as a fallback for SimTimeTag (files written before the EndTimecode rename used the member name AccumulatedTime). public const string SimTimeTagLegacy = \"AccumulatedTime\" Field Value string SpindleDirectionTag Spindle direction Tag for CSV Parsing. public const string SpindleDirectionTag = \"Spd.Dir.\" Field Value string SpindleSpeedTag_rpm Spindle speed for Simulator Tag for CSV Parsing. public const string SpindleSpeedTag_rpm = \"SpindleSpeed_rpm\" Field Value string TimeTag Gets or sets the column title for time in the CSV. The time generally obtained by the simulated data. public const string TimeTag = \"Time\" Field Value string ToolForcePrefix CSV column prefix for tool-side force components (e.g. dynamometer). public const string ToolForcePrefix = \"Tool.F\" Field Value string ToolIdTag Tool ID Tag for CSV Parsing. public const string ToolIdTag = \"ToolId\" Field Value string WorkpieceForcePrefix CSV column prefix for workpiece-side force components. public const string WorkpieceForcePrefix = \"Workpiece.F\" Field Value string Methods GetSimTimeCell(IReadOnlyDictionary) Returns the de-quoted simulated-time cell from row, reading SimTimeTag first and falling back to the legacy SimTimeTagLegacy header, or null when neither column is present. public static string GetSimTimeCell(IReadOnlyDictionary row) Parameters row IReadOnlyDictionary Returns string" }, "api/Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html": { "href": "api/Hi.Mapping.StepTimeShotUtil.CycleSamplingMode.html", "title": "Enum StepTimeShotUtil.CycleSamplingMode | HiAPI-C# 2025", "summary": "Enum StepTimeShotUtil.CycleSamplingMode Namespace Hi.Mapping Assembly HiMech.dll Defines the cycle sampling modes for mapping time shots to machining steps. The sampling mode determines how time shots are aligned with machining cycles. public enum StepTimeShotUtil.CycleSamplingMode 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 FluteCycle = 2 Sample based on flute cutting cycle. Uses the period between successive flute cuts to map time shots. More precise for actual cutting engagement analysis. SpindleCycle = 1 Sample based on spindle rotation cycle. Uses the spindle's rotational period to map time shots." }, "api/Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html": { "href": "api/Hi.Mapping.StepTimeShotUtil.GetTimeShotByFileDelegate.html", "title": "Delegate StepTimeShotUtil.GetTimeShotByFileDelegate | HiAPI-C# 2025", "summary": "Delegate StepTimeShotUtil.GetTimeShotByFileDelegate Namespace Hi.Mapping Assembly HiMech.dll Delegate for retrieving time shots from a file. Implementations should handle file reading, parsing, and error handling. public delegate List StepTimeShotUtil.GetTimeShotByFileDelegate(string file) Parameters file string The absolute or relative path to the file containing time shot data. Returns List A list of parsed time shots, or null if reading fails. 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)" }, "api/Hi.Mapping.StepTimeShotUtil.html": { "href": "api/Hi.Mapping.StepTimeShotUtil.html", "title": "Class StepTimeShotUtil | HiAPI-C# 2025", "summary": "Class StepTimeShotUtil Namespace Hi.Mapping Assembly HiMech.dll Utility methods for working with time-based shots (measurements) and mapping them to machining steps. public static class StepTimeShotUtil Inheritance object StepTimeShotUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetStepToShotsDictionaryByActualTime(ClStrip, CycleSamplingMode, string, GetTimeShotByFileDelegate, IDictionary>, IProgress, CancellationToken?) Gets a dictionary mapping step indices to time shots based on actual time. public static void GetStepToShotsDictionaryByActualTime(ClStrip clStrip, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, string timeShotRelFile, StepTimeShotUtil.GetTimeShotByFileDelegate getTimeShotByRelFileFunc, IDictionary> dstStepToShotsDictionary, IProgress messageProgress, CancellationToken? cancellationToken) Parameters clStrip ClStrip The cutter location strip. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. timeShotRelFile string The relative file path for time shots. getTimeShotByRelFileFunc StepTimeShotUtil.GetTimeShotByFileDelegate The delegate function to get time shots by relative file path. dstStepToShotsDictionary IDictionary> The destination dictionary to store the mapping. messageProgress IProgress The session message host for logging. cancellationToken CancellationToken? The cancellation token. GetTimeShotByFile(string, Action, CancellationToken?, Func) Gets time shots from a file, reading and parsing force acceleration data. public static List GetTimeShotByFile(string file, Action lineReaded, CancellationToken? cancellationToken = null, Func toTimecode = null) Parameters file string The file path to read time shots from. lineReaded Action Action to call when a line is read, providing progress feedback with the current line number. cancellationToken CancellationToken? Optional cancellation token to cancel the reading operation. toTimecode Func Converter from an absolute sample DateTime to its timecode TimeSpan (used for step timing). Returns List A list of time shots read from the file, or null if the file cannot be read or is invalid." }, "api/Hi.Mapping.TimeMapping.html": { "href": "api/Hi.Mapping.TimeMapping.html", "title": "Class TimeMapping | HiAPI-C# 2025", "summary": "Class TimeMapping Namespace Hi.Mapping Assembly HiMech.dll Provides mapping between machining steps and time-based measurements (shots). It is one step to many data mapping (one-many). public class TimeMapping : IMakeXmlSource, IDisposable Inheritance object TimeMapping Implements IMakeXmlSource 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors TimeMapping(Func) Initializes a new instance of the TimeMapping class with the specified CL strip and tool house. public TimeMapping(Func baseDirectoryGetter) Parameters baseDirectoryGetter Func The function to get the base directory for file paths. TimeMapping(XElement, Func) Initializes a new instance of the TimeMapping class from XML data. public TimeMapping(XElement src, Func baseDirectoryGetter) Parameters src XElement The XML element containing the mapping data. baseDirectoryGetter Func The function to get the base directory for resolving relative file paths. Remarks This constructor supports legacy XML formats and automatically converts them to the current format. Legacy formats include: NcMapping with MarkIdToFileTimeSection element Entries with MarkID attributes Properties BaseDirectory Gets or sets the base directory for resolving file paths. All relative file paths in the mapping are resolved against this directory. public string BaseDirectory { get; } Property Value string BaseDirectoryGetter Gets or sets the function to get the base directory for resolving file paths. public Func BaseDirectoryGetter { get; set; } Property Value Func KeyToRelFileTimeSectionDictionary Gets or sets the dictionary mapping keys to file time sections. Each entry maps a unique identifier to a file time section that specifies which portion of a measurement file corresponds to a particular machining operation. public Dictionary KeyToRelFileTimeSectionDictionary { get; set; } Property Value Dictionary MappingAnchorDateTime Project-scoped anchor for converting an absolute-time (FileDateTimeSection) window into a relative timecode. Set it to the earliest controller instant (the broadest recorded stream covers everything else) so every dateTime - anchor is non-negative. null until set; absolute sections cannot be resolved while it is null. public DateTime? MappingAnchorDateTime { get; set; } Property Value DateTime? RelFileToTimeShotListDictionary Gets or sets the cache of time shot lists loaded from files. This is a thread-safe dictionary that maps file paths to tasks that load and parse the files. The cache prevents multiple reads of the same file and enables concurrent access. public ConcurrentDictionary>> RelFileToTimeShotListDictionary { get; set; } Property Value ConcurrentDictionary>> StepToTimeShotListDictionary Gets a concurrent dictionary mapping step indices to their corresponding time shot lists. This dictionary is populated during the mapping process. public ConcurrentDictionary> StepToTimeShotListDictionary { get; } Property Value ConcurrentDictionary> XName Gets the XML element name used for serialization. public static string XName { get; } Property Value string Remarks This name is used as the root element when serializing TimeMapping instances to XML. It matches the class name to maintain consistency between code and XML representation. Methods AddTimeDataByFile(string, string, double, double) Seconds overload of AddTimeDataByFile(string, string, string, string). public bool AddTimeDataByFile(string key, string relFile, double beginTime, double endTime) Parameters key string relFile string beginTime double endTime double Returns bool AddTimeDataByFile(string, string, string, string) Adds a key → file-time-section entry to KeyToRelFileTimeSectionDictionary. Begin/end texts are parsed timecode-first: seconds or HH:mm:ss → FileTimecodeSection; a date-bearing string → FileDateTimeSection. Returns false when the key already exists. public bool AddTimeDataByFile(string key, string relFile, string beginTimeText, string endTimeText) Parameters key string relFile string beginTimeText string endTimeText string Returns bool CallTimeShotByRelFile(string, IProgress, CancellationToken?) Retrieves time shots from a file, using cached results if available. public List CallTimeShotByRelFile(string relFile, IProgress messageProgress, CancellationToken? cancellationToken = null) Parameters relFile string The relative path to the file containing time shots. messageProgress IProgress The message host for logging progress. cancellationToken CancellationToken? Optional token to cancel the loading operation. Returns List A list of time shots from the file. The results are cached for subsequent calls. If the file is already being loaded by another thread, waits for that operation to complete. 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. Clear() Clears all mappings and data, including the key-to-file time section dictionary. public void Clear() ClearCache() Clears the cache of loaded time shot data, including file-to-time shot list and step-to-time shot list dictionaries. public void ClearCache() 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 GetShots(int) Gets the time shots associated with a specific step index. public List GetShots(int stepIndex) Parameters stepIndex int The index of the step to get shots for. Returns List A list of time shots associated with the specified step, or null if no shots are found. LoadTimeShotFiles(IProgress, CancellationToken?) Loads all time shot files referenced in the KeyToFileTimeSectionMapping. public void LoadTimeShotFiles(IProgress messageProgress, CancellationToken? cancellationToken = null) Parameters messageProgress IProgress The message host for logging progress. cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MakeXmlSource(string, string, bool) Creates an XML representation of the time mapping data. relFile is not used in current implementation. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element containing the complete time mapping data. Remarks The XML structure includes: A root TimeMapping element An Entrys element containing Entry elements Each Entry has a Key attribute and FileTimeSection child element Map(Range, IFileTimeSection, CycleSamplingMode, ClStrip, IProgress, CancellationToken?) Maps the specified step section to time shots using the provided file time section and cycle sampling mode. This method is thread-safe and can be called concurrently. public void Map(Range stepSection, IFileTimeSection relFileTimeSection, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IProgress messageProgress, CancellationToken? cancellationToken = null) Parameters stepSection Range The range of step indices to process. relFileTimeSection IFileTimeSection The file time section containing file path and time range. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode to use. clStrip ClStrip The cutter location strip to map. messageProgress IProgress The message host for logging progress. cancellationToken CancellationToken? Optional cancellation token to cancel the operation. MapSeriesByActualTime(string, CycleSamplingMode, ClStrip, IProgress, CancellationToken?) Maps steps to time shots based on actual time. public void MapSeriesByActualTime(string timeShotRelFile, StepTimeShotUtil.CycleSamplingMode cycleSamplingMode, ClStrip clStrip, IProgress messageProgress, CancellationToken? cancellationToken = null) Parameters timeShotRelFile string The relative file path for time shots. cycleSamplingMode StepTimeShotUtil.CycleSamplingMode The cycle sampling mode. clStrip ClStrip The cutter location strip to map. messageProgress IProgress The session message host for logging. cancellationToken CancellationToken? The cancellation token. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToTimecode(DateTime) Converts an absolute controller instant to a run-relative timecode against MappingAnchorDateTime. The anchor is seeded set-once (date-only, so same-day data lines up with the controller's time-of-day) the first time any conversion is requested, unless it was already loaded from project XML or set explicitly. This is the single place the anchor set-logic lives — every DateTime → timecode site calls here rather than re-deriving instant - anchor. public TimeSpan ToTimecode(DateTime instant) Parameters instant DateTime The absolute controller instant to convert. Returns TimeSpan The instant expressed as a timecode from the anchor. WaitMapping() Waits for all mapping operations to complete. This method blocks until all concurrent mapping tasks have finished. public void WaitMapping()" }, "api/Hi.Mapping.html": { "href": "api/Hi.Mapping.html", "title": "Namespace Hi.Mapping | HiAPI-C# 2025", "summary": "Namespace Hi.Mapping Classes CsvNcStep Represents a numerical control step loaded from a CSV file, with support for interpolation and arithmetic operations. FileToTimeShotMapping Provides mapping between files and time shot data with caching capabilities. This class manages the loading and caching of time shot data from measurement files. MappingUtil Shared CSV column tags and physics-related column prefixes for mapping simulator or logged controller data onto MachiningStep rows. StepTimeShotUtil Utility methods for working with time-based shots (measurements) and mapping them to machining steps. TimeMapping Provides mapping between machining steps and time-based measurements (shots). It is one step to many data mapping (one-many). Interfaces IAccelerationShot Interface for objects that represent acceleration measurements at a specific time point. Extends the ITimeShot interface to include acceleration data in multiple units. IForceShot Interface for objects that represent force measurements at a specific time point. Extends the ITimeShot interface to include force vector data. IMomentShot Interface for objects that represent moment (torque) measurements at a specific time point. Extends the ITimeShot interface to include moment vector data. ITimeShot Interface for objects that represent a snapshot of data at a specific time and support arithmetic operations. This interface provides a foundation for time-series data with vector operations. Enums StepTimeShotUtil.CycleSamplingMode Defines the cycle sampling modes for mapping time shots to machining steps. The sampling mode determines how time shots are aligned with machining cycles. Delegates StepTimeShotUtil.GetTimeShotByFileDelegate Delegate for retrieving time shots from a file. Implementations should handle file reading, parsing, and error handling." }, "api/Hi.Mappings.FileDateTimeSection.html": { "href": "api/Hi.Mappings.FileDateTimeSection.html", "title": "Class FileDateTimeSection | HiAPI-C# 2025", "summary": "Class FileDateTimeSection Namespace Hi.Mappings Assembly HiGeom.dll (B) Time window expressed in absolute DateTime only. public sealed class FileDateTimeSection : IFileTimeSection, IMakeXmlSource Inheritance object FileDateTimeSection Implements IFileTimeSection IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) 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 FileDateTimeSection() Initializes an empty instance. public FileDateTimeSection() FileDateTimeSection(FileTimecodeDateTimeSection) Projects a both-form (C) section onto its absolute form (independent copy). public FileDateTimeSection(FileTimecodeDateTimeSection c) Parameters c FileTimecodeDateTimeSection FileDateTimeSection(string, DateTime, DateTime) Initializes from a file and begin/end instants. public FileDateTimeSection(string file, DateTime beginDateTime, DateTime endDateTime) Parameters file string beginDateTime DateTime endDateTime DateTime FileDateTimeSection(XElement) Initializes from XML. public FileDateTimeSection(XElement src) Parameters src XElement Properties BeginDateTime Window start as an absolute controller instant. public DateTime BeginDateTime { get; set; } Property Value DateTime EndDateTime Window end as an absolute controller instant. public DateTime EndDateTime { get; set; } Property Value DateTime File Relative path of the referenced (sensor) file. public string File { get; set; } Property Value string XName XML element name for XFactory registration. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type with the factory. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mappings.FileTimecodeDateTimeSection.html": { "href": "api/Hi.Mappings.FileTimecodeDateTimeSection.html", "title": "Class FileTimecodeDateTimeSection | HiAPI-C# 2025", "summary": "Class FileTimecodeDateTimeSection Namespace Hi.Mappings Assembly HiGeom.dll (C) Time window carrying both forms. The timecode form is authoritative for mapping (timecode-first); the absolute form is retained for the anchor and for projecting to a single-form section (new FileTimecodeSection(c) / new FileDateTimeSection(c)) when the two forms do not agree. public sealed class FileTimecodeDateTimeSection : IFileTimeSection, IMakeXmlSource Inheritance object FileTimecodeDateTimeSection Implements IFileTimeSection IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) 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 FileTimecodeDateTimeSection() Initializes an empty instance. public FileTimecodeDateTimeSection() FileTimecodeDateTimeSection(string, TimeSpan, TimeSpan, DateTime, DateTime) Initializes from a file, a timecode range and an absolute range. public FileTimecodeDateTimeSection(string file, TimeSpan beginTimecode, TimeSpan endTimecode, DateTime beginDateTime, DateTime endDateTime) Parameters file string beginTimecode TimeSpan endTimecode TimeSpan beginDateTime DateTime endDateTime DateTime FileTimecodeDateTimeSection(XElement) Initializes from XML. public FileTimecodeDateTimeSection(XElement src) Parameters src XElement Properties BeginDateTime Window start as an absolute controller instant. public DateTime BeginDateTime { get; set; } Property Value DateTime BeginTimecode Window start as a timecode (authoritative for mapping). public TimeSpan BeginTimecode { get; set; } Property Value TimeSpan EndDateTime Window end as an absolute controller instant. public DateTime EndDateTime { get; set; } Property Value DateTime EndTimecode Window end as a timecode (authoritative for mapping). public TimeSpan EndTimecode { get; set; } Property Value TimeSpan File Relative path of the referenced (sensor) file. public string File { get; set; } Property Value string XName XML element name for XFactory registration. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type with the factory. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mappings.FileTimecodeSection.html": { "href": "api/Hi.Mappings.FileTimecodeSection.html", "title": "Class FileTimecodeSection | HiAPI-C# 2025", "summary": "Class FileTimecodeSection Namespace Hi.Mappings Assembly HiGeom.dll (A) Time window expressed in relative TimeSpan timecodes only. public sealed class FileTimecodeSection : IFileTimeSection, IMakeXmlSource Inheritance object FileTimecodeSection Implements IFileTimeSection IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.ReferenceEquals(object, object) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) 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 FileTimecodeSection() Initializes an empty instance. public FileTimecodeSection() FileTimecodeSection(FileTimecodeDateTimeSection) Projects a both-form (C) section onto its timecode form (independent copy). public FileTimecodeSection(FileTimecodeDateTimeSection c) Parameters c FileTimecodeDateTimeSection FileTimecodeSection(string, Range) Initializes from a file and a timecode range. public FileTimecodeSection(string file, Range timeRange) Parameters file string timeRange Range FileTimecodeSection(string, TimeSpan, TimeSpan) Initializes from a file and begin/end timecodes. public FileTimecodeSection(string file, TimeSpan beginTimecode, TimeSpan endTimecode) Parameters file string beginTimecode TimeSpan endTimecode TimeSpan FileTimecodeSection(XElement) Initializes from XML; accepts new BeginTimecode and legacy BeginTime / BeginTime_s. public FileTimecodeSection(XElement src) Parameters src XElement Fields LegacyXName Legacy element name; pre-rename projects wrote for this form. public const string LegacyXName = \"FileTimeSection\" Field Value string Properties BeginTimecode Window start as a timecode (position from run start). public TimeSpan BeginTimecode { get; set; } Property Value TimeSpan EndTimecode Window end as a timecode (position from run start). public TimeSpan EndTimecode { get; set; } Property Value TimeSpan File Relative path of the referenced (sensor) file. public string File { get; set; } Property Value string TimeRange The timecode range backing BeginTimecode / EndTimecode. public Range TimeRange { get; set; } Property Value Range XName XML element name for XFactory registration. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type (and its legacy element name) with the factory. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mappings.IFileTimeSection.html": { "href": "api/Hi.Mappings.IFileTimeSection.html", "title": "Interface IFileTimeSection | HiAPI-C# 2025", "summary": "Interface IFileTimeSection Namespace Hi.Mappings Assembly HiGeom.dll A file plus the time window of it that maps onto a range of machining steps. The window is expressed in whichever form the referenced sensor file uses — a relative TimeSpan timecode, an absolute DateTime, or both. Concrete forms: FileTimecodeSection (A), FileDateTimeSection (B), FileTimecodeDateTimeSection (C). These are pure data carriers — turning an absolute DateTime form into a relative timecode is done once at the mapping boundary against the project-scoped mapping anchor, not by a method here. public interface IFileTimeSection : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) Extension Methods XmlUtil.MakeXmlSourceToFile(IMakeXmlSource, string, bool) XmlUtil.MakeXmlSourceToFileRef(IMakeXmlSource, string, string, bool) XmlUtil.SaveToByteArrayAsync(IMakeXmlSource, string) 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 File Relative path of the referenced (sensor) file. string File { get; set; } Property Value string" }, "api/Hi.Mappings.html": { "href": "api/Hi.Mappings.html", "title": "Namespace Hi.Mappings | HiAPI-C# 2025", "summary": "Namespace Hi.Mappings Classes FileDateTimeSection (B) Time window expressed in absolute DateTime only. FileTimecodeDateTimeSection (C) Time window carrying both forms. The timecode form is authoritative for mapping (timecode-first); the absolute form is retained for the anchor and for projecting to a single-form section (new FileTimecodeSection(c) / new FileDateTimeSection(c)) when the two forms do not agree. FileTimecodeSection (A) Time window expressed in relative TimeSpan timecodes only. Interfaces IFileTimeSection A file plus the time window of it that maps onto a range of machining steps. The window is expressed in whichever form the referenced sensor file uses — a relative TimeSpan timecode, an absolute DateTime, or both. Concrete forms: FileTimecodeSection (A), FileDateTimeSection (B), FileTimecodeDateTimeSection (C). These are pure data carriers — turning an absolute DateTime form into a relative timecode is done once at the mapping boundary against the project-scoped mapping anchor, not by a method here." }, "api/Hi.Mech.GeneralMechanism.html": { "href": "api/Hi.Mech.GeneralMechanism.html", "title": "Class GeneralMechanism | HiAPI-C# 2025", "summary": "Class GeneralMechanism Namespace Hi.Mech Assembly HiMech.dll General Mechanism. public class GeneralMechanism : IMakeXmlSource, ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IGetAnchorToSolidDictionary, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d Inheritance object GeneralMechanism Implements IMakeXmlSource ITopo IGetAsmb IGetAnchoredDisplayeeList IGetAnchorToSolidDictionary IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The XML IO is according to self-contained principle. Constructors GeneralMechanism() Initializes a new instance of the GeneralMechanism class. public GeneralMechanism() GeneralMechanism(XElement, string, IProgress) Initializes a new instance of the GeneralMechanism class from XML. public GeneralMechanism(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML element containing the mechanism data. baseDirectory string The base directory for resolving relative file paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties AnchorToSolid Gets the dictionary mapping anchors to their corresponding solids. public Dictionary AnchorToSolid { get; } Property Value Dictionary Asmb Gets the assembly containing the mechanism components. public Asmb Asmb { get; } Property Value Asmb Root Gets the root anchor of the mechanism. public Anchor Root { get; } Property Value Anchor XName Name for XML IO. public static string XName { get; } Property Value string Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Mech.IGetAnchorToSolidDictionary.html": { "href": "api/Hi.Mech.IGetAnchorToSolidDictionary.html", "title": "Interface IGetAnchorToSolidDictionary | HiAPI-C# 2025", "summary": "Interface IGetAnchorToSolidDictionary Namespace Hi.Mech Assembly HiMech.dll Provides functionality to retrieve a dictionary mapping anchors to their corresponding solids. public interface IGetAnchorToSolidDictionary 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) Methods GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. PrepareAnchorSolids() Warms SmoothTopoStl3d for every solid returned by GetAnchorToSolidDictionary() (parallel). void PrepareAnchorSolids()" }, "api/Hi.Mech.IGetMachiningChain.html": { "href": "api/Hi.Mech.IGetMachiningChain.html", "title": "Interface IGetMachiningChain | HiAPI-C# 2025", "summary": "Interface IGetMachiningChain Namespace Hi.Mech Assembly HiMech.dll Provides functionality to retrieve a machining chain instance. public interface IGetMachiningChain 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) Methods GetMachiningChain() Gets the machining chain instance. IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance." }, "api/Hi.Mech.IMachiningChain.html": { "href": "api/Hi.Mech.IMachiningChain.html", "title": "Interface IMachiningChain | HiAPI-C# 2025", "summary": "Interface IMachiningChain Namespace Hi.Mech Assembly HiMech.dll Represents a machining chain with two ends, connecting a tool and a workpiece. public interface IMachiningChain : IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary Inherited Members IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchorToSolidDictionary.GetAnchorToSolidDictionary() IGetAnchorToSolidDictionary.PrepareAnchorSolids() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties McCodes Gets the machine coordinate code sequence for decoding the MC array. string[] McCodes { get; } Property Value string[] McTransformers Gets the machine coordinate transformers. IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Methods GetTableBuckle() Gets the table buckle anchor point. IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point." }, "api/Hi.Mech.IMachiningChainSource.html": { "href": "api/Hi.Mech.IMachiningChainSource.html", "title": "Interface IMachiningChainSource | HiAPI-C# 2025", "summary": "Interface IMachiningChainSource Namespace Hi.Mech Assembly HiMech.dll Provides XML serialization/deserialization capabilities for IMachiningChain objects. public interface IMachiningChainSource : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods GetMachiningChain() Gets the machining chain instance. IMachiningChain GetMachiningChain() Returns IMachiningChain The machining chain instance." }, "api/Hi.Mech.MachiningChainUtil.html": { "href": "api/Hi.Mech.MachiningChainUtil.html", "title": "Class MachiningChainUtil | HiAPI-C# 2025", "summary": "Class MachiningChainUtil Namespace Hi.Mech Assembly HiMech.dll Utility methods for machining chains. public static class MachiningChainUtil Inheritance object MachiningChainUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMcCodeTransformerDictionary(IMachiningChain) Get code to IDynamicRegular dictionary. public static Dictionary GetMcCodeTransformerDictionary(this IMachiningChain chain) Parameters chain IMachiningChain Returns Dictionary code to IDynamicRegular dictionary" }, "api/Hi.Mech.Topo.Anchor.html": { "href": "api/Hi.Mech.Topo.Anchor.html", "title": "Class Anchor | HiAPI-C# 2025", "summary": "Class Anchor Namespace Hi.Mech.Topo Assembly HiMech.dll A coordinate system using in kinematic chain. public class Anchor : IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d Inheritance object Anchor Implements IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Anchor() Ctor. public Anchor() Anchor(Asmb) Ctor. public Anchor(Asmb asmb) Parameters asmb Asmb add this to asmb.ChildAncs Anchor(Asmb, string) Ctor. public Anchor(Asmb asmb, string name) Parameters asmb Asmb add this to asmb.ChildAncs name string Name Properties BranchMap Gets the branch map. ‘this’ anchor locates on Fletch . public Dictionary BranchMap { get; } Property Value Dictionary The branch map. BranchMapInv Gets the branch map. ‘this’ anchor locates on Arrow . public Dictionary BranchMapInv { get; } Property Value Dictionary The branch map. Guid GUID. public Guid Guid { get; } Property Value Guid IndexXName The XML element name used for indexing anchors. public static string IndexXName { get; } Property Value string IndexXml Get XML for indexing. Only the Guid takes effect when reading. public XElement IndexXml { get; } Property Value XElement The XML contains Name and Guid. Name Name. public string Name { get; set; } Property Value string Methods Detach() Detach all related Branch. public void Detach() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public virtual void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetByIndexXml(XElement, Dictionary) Gets an anchor from its XML index representation using a GUID-to-Anchor dictionary. public static Anchor GetByIndexXml(XElement src, Dictionary guidToAncDictionary) Parameters src XElement The source XML element containing the anchor index information. guidToAncDictionary Dictionary Dictionary mapping GUIDs to Anchor objects. Returns Anchor The anchor object corresponding to the XML index. GetClusterAnchors() Gets all the linked anchors by Branch. public HashSet GetClusterAnchors() Returns HashSet GetMat4d(IGetAnchor) Get transform matrix from this to tail. public Mat4d GetMat4d(IGetAnchor tail) Parameters tail IGetAnchor tail Returns Mat4d transform matrix GetMat4dMap() Gets the mat4d map in GetClusterAnchors() public Dictionary GetMat4dMap() Returns Dictionary GetNeighborAnchorList() Get neighbor anchors. public List GetNeighborAnchorList() Returns List neighbor anchors GetNeighborAnchorSet() Get neighbor anchors. public HashSet GetNeighborAnchorSet() Returns HashSet neighbor anchors ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mech.Topo.AnchorFuncSource.html": { "href": "api/Hi.Mech.Topo.AnchorFuncSource.html", "title": "Class AnchorFuncSource | HiAPI-C# 2025", "summary": "Class AnchorFuncSource Namespace Hi.Mech.Topo Assembly HiMech.dll Provides an anchor through a function delegate. public class AnchorFuncSource : IGetAnchor, IGetTopoIndex Inheritance object AnchorFuncSource Implements IGetAnchor IGetTopoIndex 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) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors AnchorFuncSource() Initializes a new instance of the AnchorFuncSource class. public AnchorFuncSource() AnchorFuncSource(Func) Initializes a new instance of the AnchorFuncSource class with the specified anchor function. public AnchorFuncSource(Func anchorFunc) Parameters anchorFunc Func The function that returns an anchor. Properties AnchorFunc Gets or sets the function that returns an anchor. public Func AnchorFunc { get; set; } Property Value Func Methods GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.Mech.Topo.AnchoredBoxable.html": { "href": "api/Hi.Mech.Topo.AnchoredBoxable.html", "title": "Class AnchoredBoxable | HiAPI-C# 2025", "summary": "Class AnchoredBoxable Namespace Hi.Mech.Topo Assembly HiMech.dll Represents an object that is both anchored to a root point and can expand to a 3D box. public class AnchoredBoxable : IGetAnchor, IGetTopoIndex, IExpandToBox3d Inheritance object AnchoredBoxable Implements IGetAnchor IGetTopoIndex IExpandToBox3d 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) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors AnchoredBoxable() Initializes a new instance of the AnchoredBoxable class. public AnchoredBoxable() AnchoredBoxable(IGetAnchor, IExpandToBox3d) Initializes a new instance of the AnchoredBoxable class with the specified anchor and boxable object. public AnchoredBoxable(IGetAnchor anchor, IExpandToBox3d boxable) Parameters anchor IGetAnchor The object that provides the root anchor. boxable IExpandToBox3d The object that can expand to a 3D box. Properties Anchor Gets or sets the anchor point. public Anchor Anchor { get; set; } Property Value Anchor Boxable Gets or sets the boxable object that can expand to a 3D box. public IExpandToBox3d Boxable { get; set; } Property Value IExpandToBox3d Methods 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.Mech.Topo.AnchoredDisplayee.html": { "href": "api/Hi.Mech.Topo.AnchoredDisplayee.html", "title": "Class AnchoredDisplayee | HiAPI-C# 2025", "summary": "Class AnchoredDisplayee Namespace Hi.Mech.Topo Assembly HiMech.dll Represents a displayable object that is anchored to a specific point in a topology. public class AnchoredDisplayee : IAnchoredDisplayee, IDisplayee, IExpandToBox3d, IGetAnchor, IGetTopoIndex Inheritance object AnchoredDisplayee Implements IAnchoredDisplayee IDisplayee IExpandToBox3d IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors AnchoredDisplayee() Initializes a new instance of the AnchoredDisplayee class. public AnchoredDisplayee() AnchoredDisplayee(IGetAnchor, IDisplayee) Initializes a new instance of the AnchoredDisplayee class with the specified anchor and displayee. public AnchoredDisplayee(IGetAnchor anchor, IDisplayee displayee) Parameters anchor IGetAnchor The object that provides the anchor. displayee IDisplayee The displayable object. Properties AnchorSource Gets or sets the source of the anchor. public IGetAnchor AnchorSource { get; set; } Property Value IGetAnchor Displayee Gets or sets the displayable object. public IDisplayee Displayee { get; set; } Property Value IDisplayee Methods Display(Bind) Displays this object using the specified binding. public void Display(Bind bind) Parameters bind Bind The binding to use for display. ExpandToBox3d(Box3d) Expands the specified box to include this object. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand. GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.Mech.Topo.Asmb.html": { "href": "api/Hi.Mech.Topo.Asmb.html", "title": "Class Asmb | HiAPI-C# 2025", "summary": "Class Asmb Namespace Hi.Mech.Topo Assembly HiMech.dll Collection of Anchor and Asmb. public class Asmb : IGetAsmb, IGetTopoIndex, IDisposable Inheritance object Asmb Implements IGetAsmb IGetTopoIndex IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Asmb() Ctor. public Asmb() Asmb(Asmb) Ctor. public Asmb(Asmb parent) Parameters parent Asmb parent Asmb(Asmb, string) Ctor. public Asmb(Asmb parent, string name) Parameters parent Asmb parent name string Name Asmb(string) Ctor. public Asmb(string name) Parameters name string Name Properties ChildAncs Gets the collection of child anchors in this assembly. public ThreadSafeSet ChildAncs { get; } Property Value ThreadSafeSet ChildAsmbs Gets the collection of child assemblies in this assembly. public ThreadSafeSet ChildAsmbs { get; } Property Value ThreadSafeSet Guid GUID. public Guid Guid { get; } Property Value Guid Name Name. public string Name { get; set; } Property Value string XName Gets the XML name for the assembly. public static string XName { get; } Property Value string Methods AllEnterReadLock() Enters read locks for all thread-safe collections in the assembly. public void AllEnterReadLock() AllExitReadLock() Exits read locks for all thread-safe collections in the assembly. public void AllExitReadLock() CallAsmb(XElement, string, Dictionary, Dictionary, Dictionary, IProgress) Get asmb by the asmbXml. If the members of the target asmb do not exist on asmbs or ancs, the members will be generated; otherwise, the existed members are applied. public static Asmb CallAsmb(XElement asmbXml, string baseDirectory, Dictionary asmbs = null, Dictionary ancs = null, Dictionary brns = null, IProgress progress = null) Parameters asmbXml XElement xml of asmb baseDirectory string Base directory path for resolving relative paths asmbs Dictionary existed asmb map ancs Dictionary existed anc map brns Dictionary existed branch map progress IProgress Progress reporter for diagnostic messages emitted during construction. Returns Asmb asmb Display(Bind, Anchor, params IGetAnchor[]) Display displayees according to the GetAnchor(). The fixed anchor is root. If the element of displayees is not IDisplayee or null Anchor, the element will be ignored. public void Display(Bind bind, Anchor root, params IGetAnchor[] displayees) Parameters bind Bind bind root Anchor fixed anchor displayees IGetAnchor[] element to be rendered Display(Bind, Dictionary, params IGetAnchor[]) Display the displayees according to map. If displayees is null, do nothing. public static void Display(Bind bind, Dictionary map, params IGetAnchor[] displayees) Parameters bind Bind bind map Dictionary anchor to transformation map displayees IGetAnchor[] displayees 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, Anchor, params IGetAnchor[]) Expands a bounding box to include the assembly. public void ExpandToBox3d(Box3d dst, Anchor root, params IGetAnchor[] displayees) Parameters dst Box3d The bounding box to expand. root Anchor The root anchor for the calculation. displayees IGetAnchor[] The displayable objects to include in the calculation. GetAnchorByGuid(string, bool) Finds an anchor in the assembly hierarchy by its GUID. public Anchor GetAnchorByGuid(string guid, bool enableThreadSafe = true) Parameters guid string The GUID of the anchor to find. enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns Anchor The anchor with the specified GUID, or null if not found. GetAnchorChain(Anchor, Anchor) Gets a chain of anchors from the head to the tail. public List GetAnchorChain(Anchor head, Anchor tail) Parameters head Anchor The starting anchor of the chain. tail Anchor The ending anchor of the chain. Returns List A list of anchors representing the chain, or an empty list if no chain exists. GetAnchoredDisplayeeList(Dictionary) Gets a list of anchored displayable objects based on the provided anchor-to-solid mapping. public List GetAnchoredDisplayeeList(Dictionary anchorToSolidDictionary) Parameters anchorToSolidDictionary Dictionary Dictionary mapping anchors to their corresponding solids. Returns List A list of anchored displayable objects. GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetAsmbDraw(Anchor) Gets an assembly drawing for visualization. public AsmbDraw GetAsmbDraw(Anchor root) Parameters root Anchor The root anchor for the drawing. Returns AsmbDraw An assembly drawing object. GetBox3d(Anchor, params IGetAnchor[]) Gets a bounding box for the assembly. public Box3d GetBox3d(Anchor root, params IGetAnchor[] displayees) Parameters root Anchor The root anchor for the calculation. displayees IGetAnchor[] The displayable objects to include in the calculation. Returns Box3d A 3D bounding box containing the assembly. GetBranchByGuid(string, bool) Finds a branch in the assembly hierarchy by its GUID. public Branch GetBranchByGuid(string guid, bool enableThreadSafe = true) Parameters guid string The GUID of the branch to find. enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns Branch The branch with the specified GUID, or null if not found. GetBranchChain(IGetAnchor, IGetAnchor) Gets a chain of branches with their directions from the head anchor to the tail anchor. public List GetBranchChain(IGetAnchor head, IGetAnchor tail) Parameters head IGetAnchor The starting anchor of the chain. tail IGetAnchor The ending anchor of the chain. Returns List A list of direction-branch pairs representing the chain, or an empty list if no chain exists. GetBranchsXml(IGetAnchor, string) Gets the XML representation of all branches in the assembly starting from the specified root. public XElement GetBranchsXml(IGetAnchor root, string baseDirectory) Parameters root IGetAnchor The root anchor to start from. If null, uses the first descendant anchor. baseDirectory string The base directory for file references. Returns XElement An XML element containing all branches in the assembly. GetDescendantAnchorSet(bool) Generate an anchor set from all descendant anchors. public HashSet GetDescendantAnchorSet(bool enableThreadSafe = true) Parameters enableThreadSafe bool Returns HashSet descendant anchor set GetDescendantAnchors(bool) Gets a list of all descendant anchors in the assembly hierarchy. public List GetDescendantAnchors(bool enableThreadSafe = true) Parameters enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns List A list of all descendant anchors. GetDescendantAsmbSet(bool) Gets a set of all descendant assemblies in the assembly hierarchy. public HashSet GetDescendantAsmbSet(bool enableThreadSafe = true) Parameters enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns HashSet A set of all descendant assemblies. GetDescendantAsmbs(bool) Gets a list of all descendant assemblies in the assembly hierarchy. public List GetDescendantAsmbs(bool enableThreadSafe = true) Parameters enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns List A list of all descendant assemblies. GetDescendingName(Anchor) Gets the descending name path for an anchor, combining assembly names with dashes. public string GetDescendingName(Anchor anc) Parameters anc Anchor The anchor to get the descending name for. Returns string The full descending name path, or null if the anchor is not found in the assembly hierarchy. GetDescendingName(Asmb) Gets the descending name path for a child assembly, combining assembly names with dashes. public string GetDescendingName(Asmb asmb) Parameters asmb Asmb The assembly to get the descending name for. Returns string The full descending name path, or null if the assembly is not found in the hierarchy. GetHierarchyString() Gets a string representation of the assembly hierarchy. public string GetHierarchyString() Returns string A string describing the assembly hierarchy. GetInnerBranchSet(bool) Gets a set of branches that are internal to this assembly. A branch is considered internal if both its endpoints are anchors within this assembly. public HashSet GetInnerBranchSet(bool enableThreadSafe = true) Parameters enableThreadSafe bool If true, uses thread-safe operations for accessing collections. Returns HashSet A set of internal branches. GetMat4d(IGetAnchor, IGetAnchor) Gets the transformation matrix between two anchors in the assembly. public Mat4d GetMat4d(IGetAnchor root, IGetAnchor tail) Parameters root IGetAnchor The source anchor for the transformation. tail IGetAnchor The target anchor for the transformation. Returns Mat4d The 4x4 transformation matrix from root to tail. GetMat4dMap(IGetAnchor) Gets a mapping of anchors to their transformation matrices relative to the root anchor. public Dictionary GetMat4dMap(IGetAnchor root) Parameters root IGetAnchor The root anchor to calculate transformations from. Returns Dictionary A dictionary mapping anchors to their transformation matrices. GetMat4dMapWithBlocks(IGetAnchor, params Anchor[]) Gets a mapping of anchors to their transformation matrices relative to the root anchor, excluding specified blocked anchors. public Dictionary GetMat4dMapWithBlocks(IGetAnchor root, params Anchor[] blockeds) Parameters root IGetAnchor The root anchor to calculate transformations from. blockeds Anchor[] Array of anchors to exclude from the calculation. Returns Dictionary A dictionary mapping anchors to their transformation matrices. ShowMat4dMap(Dictionary) Show mat map in text on console. public static void ShowMat4dMap(Dictionary map) Parameters map Dictionary ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToXElement(IGetAnchor, string) Converts the assembly to an XML element. public XElement ToXElement(IGetAnchor root, string baseDirectory) Parameters root IGetAnchor The root anchor for the conversion. baseDirectory string The base directory for file references. Returns XElement An XML element representing the assembly. ToXElement(string) Converts the assembly to an XML element. public XElement ToXElement(string baseDirectory) Parameters baseDirectory string The base directory for file references. Returns XElement An XML element representing the assembly." }, "api/Hi.Mech.Topo.AsmbDraw.html": { "href": "api/Hi.Mech.Topo.AsmbDraw.html", "title": "Class AsmbDraw | HiAPI-C# 2025", "summary": "Class AsmbDraw Namespace Hi.Mech.Topo Assembly HiMech.dll Render all Anchors of the Asmb in form of CoordinateDrawing. public class AsmbDraw : IDisplayee, IExpandToBox3d Inheritance object AsmbDraw Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 AsmbDraw(Asmb, Anchor) Ctor. public AsmbDraw(Asmb asmb, Anchor root) Parameters asmb Asmb asmb root Anchor fixed anchor Properties Asmb Asmb. public Asmb Asmb { get; set; } Property Value Asmb Root Fixed anchor. public Anchor Root { get; set; } Property Value Anchor Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.Mech.Topo.Branch.html": { "href": "api/Hi.Mech.Topo.Branch.html", "title": "Class Branch | HiAPI-C# 2025", "summary": "Class Branch Namespace Hi.Mech.Topo Assembly HiMech.dll The linkage between two Anchor objects. public class Branch Inheritance object Branch Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Arrow Anchor from arrow side. public Anchor Arrow { get; } Property Value Anchor Fletch Anchor from fletch side. public Anchor Fletch { get; } Property Value Anchor Guid GUID. public Guid Guid { get; } Property Value Guid IsBreak Is break. public bool IsBreak { get; } Property Value bool Name Gets or sets the name of the branch. public string Name { get; set; } Property Value string Step If the Transformer is IDynamicRegular, the property is delegated from IDynamicRegular.Step; otherwise, the getter returns NAN and setter does nothing. public double Step { get; set; } Property Value double Transformer Transformer. public ITransformer Transformer { get; set; } Property Value ITransformer Methods Attach(IGetAnchor, IGetAnchor) Attempts to attach two anchors. public static Branch Attach(IGetAnchor fletch, IGetAnchor arrow) Parameters fletch IGetAnchor See Fletch arrow IGetAnchor See Arrow Returns Branch branch Attach(IGetAnchor, IGetAnchor, ITransformer) Attempts to attach two anchors with a specified transformer. public static Branch Attach(IGetAnchor fletch, IGetAnchor arrow, ITransformer transformer) Parameters fletch IGetAnchor See Fletch arrow IGetAnchor See Arrow transformer ITransformer See Transformer Returns Branch branch AttachIfAbsence(IGetAnchor, IGetAnchor) Attempts to attach two anchors if they are not already connected. If the anchors are already connected, returns null instead of throwing an exception. public static Branch AttachIfAbsence(IGetAnchor fletch, IGetAnchor arrow) Parameters fletch IGetAnchor The fletch-side anchor to attach arrow IGetAnchor The arrow-side anchor to attach Returns Branch The newly created branch if successful, null if the anchors are already connected Detach() Break the branch. public void Detach() Detach(IGetAnchor, IGetAnchor) Break the branch from Get(IGetAnchor, IGetAnchor). public static void Detach(IGetAnchor fletch, IGetAnchor arrow) Parameters fletch IGetAnchor See Fletch arrow IGetAnchor See Arrow Exceptions InvalidOperationException The exception is throwed if the Branch is not existed. DetachIfExisted(IGetAnchor, IGetAnchor) Break the branch from Get(IGetAnchor, IGetAnchor). public static bool DetachIfExisted(IGetAnchor fletch, IGetAnchor arrow) Parameters fletch IGetAnchor See Fletch arrow IGetAnchor See Arrow Returns bool true if the Branch existed and then been deteched. Get(IGetAnchor, IGetAnchor) Get existed Branch by fletchSource and arrowSource. public static Branch Get(IGetAnchor fletchSource, IGetAnchor arrowSource) Parameters fletchSource IGetAnchor fletch arrowSource IGetAnchor arrow Returns Branch The branch. If branch not exist, return null. IsExisted(IGetAnchor, IGetAnchor) Checks if a branch exists between two anchors. public static bool IsExisted(IGetAnchor fletch, IGetAnchor arrow) Parameters fletch IGetAnchor The fletch-side anchor. arrow IGetAnchor The arrow-side anchor. Returns bool True if a branch exists between the anchors, false otherwise. ToLinkString() Get brief link description. public string ToLinkString() Returns string ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. TryAttach(IGetAnchor, IGetAnchor, ITransformer) Attempts to attach two anchors with a specified transformer. If the attachment fails, returns null instead of throwing an exception. public static Branch TryAttach(IGetAnchor fletch, IGetAnchor arrow, ITransformer transformer) Parameters fletch IGetAnchor The fletch-side anchor to attach arrow IGetAnchor The arrow-side anchor to attach transformer ITransformer The transformer to use for the branch Returns Branch The newly created branch if successful, null if the attachment fails" }, "api/Hi.Mech.Topo.DirectionBranchEntry.html": { "href": "api/Hi.Mech.Topo.DirectionBranchEntry.html", "title": "Class DirectionBranchEntry | HiAPI-C# 2025", "summary": "Class DirectionBranchEntry Namespace Hi.Mech.Topo Assembly HiMech.dll A data pack contains Branch and a boolean isForward. public class DirectionBranchEntry Inheritance object DirectionBranchEntry Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 DirectionBranchEntry(bool, Branch) Ctor. public DirectionBranchEntry(bool isForward, Branch brn) Parameters isForward bool is forward brn Branch branch Fields brn A branch. public Branch brn Field Value Branch isForward Is forward. public bool isForward Field Value bool Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mech.Topo.DirectionBranchPackUtil.html": { "href": "api/Hi.Mech.Topo.DirectionBranchPackUtil.html", "title": "Class DirectionBranchPackUtil | HiAPI-C# 2025", "summary": "Class DirectionBranchPackUtil Namespace Hi.Mech.Topo Assembly HiMech.dll Utility of topology. public static class DirectionBranchPackUtil Inheritance object DirectionBranchPackUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetMat4d(IEnumerable) Get the transformation matrix. The transformation matrix is obtained by mat(n-1)*...*mat(1)*mat(0). Where the number in parentheses is the index number of the chain. public static Mat4d GetMat4d(this IEnumerable chain) Parameters chain IEnumerable chain Returns Mat4d transformation matrix" }, "api/Hi.Mech.Topo.DynamicFreeform.html": { "href": "api/Hi.Mech.Topo.DynamicFreeform.html", "title": "Class DynamicFreeform | HiAPI-C# 2025", "summary": "Class DynamicFreeform Namespace Hi.Mech.Topo Assembly HiMech.dll Dynamic Freeform transformer. public class DynamicFreeform : IDynamicTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object DynamicFreeform Implements IDynamicTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto 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) Constructors DynamicFreeform(Mat4d) Ctor. public DynamicFreeform(Mat4d mat) Parameters mat Mat4d transform matrix DynamicFreeform(Mat4d, Mat4d) Ctor. public DynamicFreeform(Mat4d mat, Mat4d matInv) Parameters mat Mat4d transform matrix matInv Mat4d inversed transform matrix DynamicFreeform(XElement) Ctor. public DynamicFreeform(XElement src) Parameters src XElement XML Properties XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetMat(Mat4d) public void SetMat(Mat4d mat) Parameters mat Mat4d SetMat(Mat4d, Mat4d) Set transform matrix. public void SetMat(Mat4d mat, Mat4d matInv) Parameters mat Mat4d transform matrix matInv Mat4d inversed transform matrix ToPresentDto() Convert to a static-freeform matrix snapshot DTO (Data Transfer Object) for JSON serialization; presented with the StaticFreeform type marker. public object ToPresentDto() Returns object DTO dictionary with Type and Matrix keys" }, "api/Hi.Mech.Topo.DynamicRotation.html": { "href": "api/Hi.Mech.Topo.DynamicRotation.html", "title": "Class DynamicRotation | HiAPI-C# 2025", "summary": "Class DynamicRotation Namespace Hi.Mech.Topo Assembly HiMech.dll Dynamic rotate transformer. public class DynamicRotation : IDynamicRotation, IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object DynamicRotation Implements IDynamicRotation IDynamicRegular IDynamicTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto Derived NcRotation 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) Constructors DynamicRotation() Ctor. public DynamicRotation() DynamicRotation(Vec3d, double, Vec3d) Ctor. public DynamicRotation(Vec3d axis, double angle_rad = 0, Vec3d pivot = null) Parameters axis Vec3d Axis angle_rad double Angle_rad pivot Vec3d Pivot DynamicRotation(XElement) Ctor. public DynamicRotation(XElement src) Parameters src XElement XML Properties Angle_deg Rotation angle in degree. public double Angle_deg { get; set; } Property Value double Angle_rad Rotation angle in radian. public double Angle_rad { get; set; } Property Value double Axis Rotation axis. public Vec3d Axis { get; set; } Property Value Vec3d Pivot pivot public Vec3d Pivot { get; set; } Property Value Vec3d Step Gets or sets the step. public double Step { get; set; } Property Value double The step. XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public virtual ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Set(DynamicRotation) Copy from src. public void Set(DynamicRotation src) Parameters src DynamicRotation src ToPresentDto() Convert DynamicRotation to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, Axis, Angle_deg, and Pivot keys" }, "api/Hi.Mech.Topo.DynamicTranslation.html": { "href": "api/Hi.Mech.Topo.DynamicTranslation.html", "title": "Class DynamicTranslation | HiAPI-C# 2025", "summary": "Class DynamicTranslation Namespace Hi.Mech.Topo Assembly HiMech.dll Dynamic translate transformer public class DynamicTranslation : IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object DynamicTranslation Implements IDynamicRegular IDynamicTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto Derived NcTranslation 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) Constructors DynamicTranslation() Ctor. public DynamicTranslation() DynamicTranslation(Vec3d, double) Ctor. public DynamicTranslation(Vec3d axis, double len = 0) Parameters axis Vec3d Translation axis len double length DynamicTranslation(XElement) Ctor. public DynamicTranslation(XElement src) Parameters src XElement XML Properties Axis Translation Axis. public Vec3d Axis { get; set; } Property Value Vec3d Len Length. public double Len { get; set; } Property Value double Step Gets or sets the step. public double Step { get; set; } Property Value double The step. XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public virtual ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Set(DynamicTranslation) Copy from src. public void Set(DynamicTranslation src) Parameters src DynamicTranslation src ToPresentDto() Convert DynamicTranslation to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, Axis, and Step keys" }, "api/Hi.Mech.Topo.GeneralTransform.html": { "href": "api/Hi.Mech.Topo.GeneralTransform.html", "title": "Class GeneralTransform | HiAPI-C# 2025", "summary": "Class GeneralTransform Namespace Hi.Mech.Topo Assembly HiMech.dll Represents a general transformation that combines scaling, rotation, and translation. public class GeneralTransform : IStaticTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object GeneralTransform Implements IStaticTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto 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) Constructors GeneralTransform() Initializes a new instance of the GeneralTransform class. public GeneralTransform() GeneralTransform(Mat4d) Initializes a new instance of the GeneralTransform class from a 4x4 transformation matrix. public GeneralTransform(Mat4d mat) Parameters mat Mat4d The transformation matrix. GeneralTransform(double, StaticRotation, StaticTranslation) Initializes a new instance of the GeneralTransform class with specified scale, rotation, and translation. public GeneralTransform(double scale, StaticRotation rotation, StaticTranslation translation) Parameters scale double The scaling factor. rotation StaticRotation The rotation transformation. translation StaticTranslation The translation transformation. GeneralTransform(XElement) Ctor. public GeneralTransform(XElement src) Parameters src XElement XML Properties Rotation 2th transform. public StaticRotation Rotation { get; } Property Value StaticRotation Scale 1th transform. public double Scale { get; set; } Property Value double Translation 3th transform. public StaticTranslation Translation { get; } Property Value StaticTranslation XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert GeneralTransform to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, Scale, Rotation, and Translation keys" }, "api/Hi.Mech.Topo.IAnchoredDisplayee.html": { "href": "api/Hi.Mech.Topo.IAnchoredDisplayee.html", "title": "Interface IAnchoredDisplayee | HiAPI-C# 2025", "summary": "Interface IAnchoredDisplayee Namespace Hi.Mech.Topo Assembly HiMech.dll Interface for objects that can be displayed and are anchored to a root point in a topology. public interface IAnchoredDisplayee : IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d Inherited Members IGetAnchor.GetAnchor() IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object)" }, "api/Hi.Mech.Topo.IDynamicRegular.html": { "href": "api/Hi.Mech.Topo.IDynamicRegular.html", "title": "Interface IDynamicRegular | HiAPI-C# 2025", "summary": "Interface IDynamicRegular Namespace Hi.Mech.Topo Assembly HiMech.dll Dynamic Regular Transformer public interface IDynamicRegular : IDynamicTransformer, ITransformer, IMakeXmlSource, IToPresentDto Inherited Members ITransformer.GetMat() ITransformer.GetMatInv() ITransformer.Clone() IMakeXmlSource.MakeXmlSource(string, string, bool) IToPresentDto.ToPresentDto() 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 Step Gets or sets the step. double Step { get; set; } Property Value double The step." }, "api/Hi.Mech.Topo.IDynamicRotation.html": { "href": "api/Hi.Mech.Topo.IDynamicRotation.html", "title": "Interface IDynamicRotation | HiAPI-C# 2025", "summary": "Interface IDynamicRotation Namespace Hi.Mech.Topo Assembly HiMech.dll Topology joint that applies a single-axis rotation about Pivot by Angle_rad. public interface IDynamicRotation : IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inherited Members IDynamicRegular.Step ITransformer.GetMat() ITransformer.GetMatInv() ITransformer.Clone() IMakeXmlSource.MakeXmlSource(string, string, bool) IGetInverseTransformer.GetInverseTransformer() IToPresentDto.ToPresentDto() 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 Angle_deg Rotation angle in degree. double Angle_deg { get; set; } Property Value double Angle_rad Rotation angle in radian. double Angle_rad { get; set; } Property Value double Axis Rotation axis. Vec3d Axis { get; set; } Property Value Vec3d Pivot pivot Vec3d Pivot { get; set; } Property Value Vec3d" }, "api/Hi.Mech.Topo.IDynamicTransformer.html": { "href": "api/Hi.Mech.Topo.IDynamicTransformer.html", "title": "Interface IDynamicTransformer | HiAPI-C# 2025", "summary": "Interface IDynamicTransformer Namespace Hi.Mech.Topo Assembly HiMech.dll Dynamic Transformer. public interface IDynamicTransformer : ITransformer, IMakeXmlSource, IToPresentDto Inherited Members ITransformer.GetMat() ITransformer.GetMatInv() ITransformer.Clone() IMakeXmlSource.MakeXmlSource(string, string, bool) IToPresentDto.ToPresentDto() 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)" }, "api/Hi.Mech.Topo.IGetAnchor.html": { "href": "api/Hi.Mech.Topo.IGetAnchor.html", "title": "Interface IGetAnchor | HiAPI-C# 2025", "summary": "Interface IGetAnchor Namespace Hi.Mech.Topo Assembly HiMech.dll Interface to get the key Anchor. public interface IGetAnchor : IGetTopoIndex Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods GetAnchor() Get key anchor. (i.e. root anchor) Anchor GetAnchor() Returns Anchor key anchor" }, "api/Hi.Mech.Topo.IGetAnchoredDisplayeeList.html": { "href": "api/Hi.Mech.Topo.IGetAnchoredDisplayeeList.html", "title": "Interface IGetAnchoredDisplayeeList | HiAPI-C# 2025", "summary": "Interface IGetAnchoredDisplayeeList Namespace Hi.Mech.Topo Assembly HiMech.dll Interface for getting a list of anchored displayable objects. public interface IGetAnchoredDisplayeeList 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) Methods GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects" }, "api/Hi.Mech.Topo.IGetAsmb.html": { "href": "api/Hi.Mech.Topo.IGetAsmb.html", "title": "Interface IGetAsmb | HiAPI-C# 2025", "summary": "Interface IGetAsmb Namespace Hi.Mech.Topo Assembly HiMech.dll Interface of Getting a key Asmb. public interface IGetAsmb : IGetTopoIndex 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) Methods GetAsmb() Gets the key asmb. Asmb GetAsmb() Returns Asmb The key asmb." }, "api/Hi.Mech.Topo.IGetFletchBuckle.html": { "href": "api/Hi.Mech.Topo.IGetFletchBuckle.html", "title": "Interface IGetFletchBuckle | HiAPI-C# 2025", "summary": "Interface IGetFletchBuckle Namespace Hi.Mech.Topo Assembly HiMech.dll Interface of GetFletchBuckle(). public interface IGetFletchBuckle 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) Methods GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. Anchor GetFletchBuckle() Returns Anchor buckle anchor" }, "api/Hi.Mech.Topo.IGetInverseTransformer.html": { "href": "api/Hi.Mech.Topo.IGetInverseTransformer.html", "title": "Interface IGetInverseTransformer | HiAPI-C# 2025", "summary": "Interface IGetInverseTransformer Namespace Hi.Mech.Topo Assembly HiMech.dll Interface for objects that can provide their inverse transformer. public interface IGetInverseTransformer 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) Methods GetInverseTransformer() Gets the inverse transformer of this transformer. ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer." }, "api/Hi.Mech.Topo.IGetTopoIndex.html": { "href": "api/Hi.Mech.Topo.IGetTopoIndex.html", "title": "Interface IGetTopoIndex | HiAPI-C# 2025", "summary": "Interface IGetTopoIndex Namespace Hi.Mech.Topo Assembly HiMech.dll interface of IGetAnchor or IGetAsmb. public interface IGetTopoIndex 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)" }, "api/Hi.Mech.Topo.IStaticTransformer.html": { "href": "api/Hi.Mech.Topo.IStaticTransformer.html", "title": "Interface IStaticTransformer | HiAPI-C# 2025", "summary": "Interface IStaticTransformer Namespace Hi.Mech.Topo Assembly HiMech.dll Static Transformer public interface IStaticTransformer : ITransformer, IMakeXmlSource, IToPresentDto Inherited Members ITransformer.GetMat() ITransformer.GetMatInv() ITransformer.Clone() IMakeXmlSource.MakeXmlSource(string, string, bool) IToPresentDto.ToPresentDto() 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)" }, "api/Hi.Mech.Topo.ITopo.html": { "href": "api/Hi.Mech.Topo.ITopo.html", "title": "Interface ITopo | HiAPI-C# 2025", "summary": "Interface ITopo Namespace Hi.Mech.Topo Assembly HiMech.dll Defines an interface for displaying topological elements that combines assembly, anchoring, and display capabilities. public interface ITopo : IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList Inherited Members IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() Extension Methods TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object)" }, "api/Hi.Mech.Topo.ITopoDisplayee.html": { "href": "api/Hi.Mech.Topo.ITopoDisplayee.html", "title": "Interface ITopoDisplayee | HiAPI-C# 2025", "summary": "Interface ITopoDisplayee Namespace Hi.Mech.Topo Assembly HiMech.dll Represents a topology object that can be displayed and has an anchor. public interface ITopoDisplayee : ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d Inherited Members IGetAsmb.GetAsmb() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IGetAnchor.GetAnchor() IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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)" }, "api/Hi.Mech.Topo.ITransformer.html": { "href": "api/Hi.Mech.Topo.ITransformer.html", "title": "Interface ITransformer | HiAPI-C# 2025", "summary": "Interface ITransformer Namespace Hi.Mech.Topo Assembly HiMech.dll Interface of single transform matrix manipulation. public interface ITransformer : IMakeXmlSource, IToPresentDto Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IToPresentDto.ToPresentDto() 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) Methods Clone() Clones this instance. ITransformer Clone() Returns ITransformer clone GetMat() Gets the transform matrix. Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. Mat4d GetMatInv() Returns Mat4d The inverse transform matrix." }, "api/Hi.Mech.Topo.ITransformerProperty.html": { "href": "api/Hi.Mech.Topo.ITransformerProperty.html", "title": "Interface ITransformerProperty | HiAPI-C# 2025", "summary": "Interface ITransformerProperty Namespace Hi.Mech.Topo Assembly HiMech.dll Interface for objects that have a transformer property. public interface ITransformerProperty 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 Transformer Gets or sets the transformer associated with this object. ITransformer Transformer { get; set; } Property Value ITransformer" }, "api/Hi.Mech.Topo.NoTransform.html": { "href": "api/Hi.Mech.Topo.NoTransform.html", "title": "Class NoTransform | HiAPI-C# 2025", "summary": "Class NoTransform Namespace Hi.Mech.Topo Assembly HiMech.dll Static Identity Transformer. public class NoTransform : IStaticTransformer, ITransformer, IMakeXmlSource, IToPresentDto, IGetInverseTransformer Inheritance object NoTransform Implements IStaticTransformer ITransformer IMakeXmlSource IToPresentDto IGetInverseTransformer 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) Constructors NoTransform() Ctor. public NoTransform() NoTransform(XElement) Ctor. public NoTransform(XElement src) Parameters src XElement XML Properties XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert NoTransform to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with a Type key" }, "api/Hi.Mech.Topo.StackTransformer.html": { "href": "api/Hi.Mech.Topo.StackTransformer.html", "title": "Class StackTransformer | HiAPI-C# 2025", "summary": "Class StackTransformer Namespace Hi.Mech.Topo Assembly HiMech.dll Represents a transformer that maintains a stack of transformations. public class StackTransformer : ITransformer, IMakeXmlSource, IToPresentDto, IDisposable Inheritance object StackTransformer Implements ITransformer IMakeXmlSource IToPresentDto 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StackTransformer() Initializes a new instance of the StackTransformer class. public StackTransformer() StackTransformer(params ITransformer[]) Initializes a new instance of the StackTransformer class with the specified transformers. public StackTransformer(params ITransformer[] transformers) Parameters transformers ITransformer[] A variable-length array of transformers to add to the stack. StackTransformer(XElement, string, IProgress) Initializes a new instance of the StackTransformer class from XML data. public StackTransformer(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML element containing the transformer stack configuration. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties Count Gets the number of transformers in the stack. public int Count { get; } Property Value int XName Static name. public static string XName { get; } Property Value string Methods Clear() Removes all transformers from the stack. public void Clear() Clone() Creates a deep copy of this transformer stack. public ITransformer Clone() Returns ITransformer A new StackTransformer instance with cloned transformers. Remarks The children ITransformer on stack are all cloned. Dispose() Releases all resources used by the StackTransformer. public void Dispose() Dispose(bool) Releases the unmanaged resources used by the StackTransformer and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. GetMat() Gets the combined transformation matrix of all transformers in the stack. public Mat4d GetMat() Returns Mat4d The combined 4x4 transformation matrix. Remarks The transformations are applied in order from bottom to top of the stack. GetMatInv() Gets the inverse of the combined transformation matrix of all transformers in the stack. public Mat4d GetMatInv() Returns Mat4d The inverse of the combined 4x4 transformation matrix. Remarks The inverse transformations are applied in reverse order (top to bottom of the stack). If forward mats is ABCD, then the inv-mats: DinvCinvBinvAinv. GetStack() Get the copied transformer stack. public List GetStack() Returns List copied stack MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Peek() Returns the transformer at the top of the stack without removing it. public ITransformer Peek() Returns ITransformer The transformer at the top of the stack, or null if the stack is empty. Pop() Removes and returns the transformer at the top of the stack. public ITransformer Pop() Returns ITransformer The transformer at the top of the stack, or null if the stack is empty. Push(ITransformer) Pushes a transformer onto the stack. public void Push(ITransformer transformer) Parameters transformer ITransformer The transformer to push. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert StackTransformer to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and Stack keys" }, "api/Hi.Mech.Topo.StaticFreeform.html": { "href": "api/Hi.Mech.Topo.StaticFreeform.html", "title": "Class StaticFreeform | HiAPI-C# 2025", "summary": "Class StaticFreeform Namespace Hi.Mech.Topo Assembly HiMech.dll Static Freeform transformer. public class StaticFreeform : IStaticTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object StaticFreeform Implements IStaticTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto 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) Constructors StaticFreeform() Ctor. public StaticFreeform() StaticFreeform(Mat4d) Ctor. public StaticFreeform(Mat4d mat) Parameters mat Mat4d transform matrix StaticFreeform(Mat4d, Mat4d) Ctor. public StaticFreeform(Mat4d mat, Mat4d matInv) Parameters mat Mat4d transform matrix matInv Mat4d inversed transform matrix StaticFreeform(XElement) Ctor. public StaticFreeform(XElement src) Parameters src XElement XML Properties XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetMat(Mat4d) public void SetMat(Mat4d mat) Parameters mat Mat4d SetMat(Mat4d, Mat4d) Set transform matrix. public void SetMat(Mat4d mat, Mat4d matInv) Parameters mat Mat4d transform matrix matInv Mat4d inversed transform matrix ToPresentDto() Convert StaticFreeform to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and Matrix keys" }, "api/Hi.Mech.Topo.StaticRotation.html": { "href": "api/Hi.Mech.Topo.StaticRotation.html", "title": "Class StaticRotation | HiAPI-C# 2025", "summary": "Class StaticRotation Namespace Hi.Mech.Topo Assembly HiMech.dll Static Rotation. public class StaticRotation : IStaticTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object StaticRotation Implements IStaticTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto 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) Constructors StaticRotation() Initializes a new instance of the StaticRotation class. public StaticRotation() StaticRotation(Vec3d, double) Ctor. public StaticRotation(Vec3d axis, double angle_rad) Parameters axis Vec3d Axis angle_rad double Angle_rad StaticRotation(Vec3d, double, Vec3d) Ctor. public StaticRotation(Vec3d axis, double angle_rad, Vec3d pivot) Parameters axis Vec3d angle_rad double pivot Vec3d StaticRotation(XElement) Initializes a new instance of the StaticRotation class from XML data. public StaticRotation(XElement src) Parameters src XElement The XML element containing the rotation data. Properties Angle_deg Gets or sets the rotation angle in degrees. public double Angle_deg { get; set; } Property Value double Angle_rad Gets or sets the rotation angle in radians. public double Angle_rad { get; set; } Property Value double Axis Gets or sets the rotation axis. public Vec3d Axis { get; set; } Property Value Vec3d Pivot Gets or sets the pivot point for the rotation. public Vec3d Pivot { get; set; } Property Value Vec3d XName Gets the XML element name for serialization. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets a new transformer that represents the inverse of this rotation. public ITransformer GetInverseTransformer() Returns ITransformer An inverse transformer instance. GetMat() Gets the transformation matrix representing this rotation. public Mat4d GetMat() Returns Mat4d A 4x4 transformation matrix. GetMatInv() Gets the inverse transformation matrix of this rotation. public Mat4d GetMatInv() Returns Mat4d A 4x4 inverse transformation matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToPresentDto() Convert StaticRotation to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type, Axis, Angle_deg, and Pivot keys" }, "api/Hi.Mech.Topo.StaticTranslation.html": { "href": "api/Hi.Mech.Topo.StaticTranslation.html", "title": "Class StaticTranslation | HiAPI-C# 2025", "summary": "Class StaticTranslation Namespace Hi.Mech.Topo Assembly HiMech.dll Static Translate. public class StaticTranslation : IStaticTransformer, ITransformer, IMakeXmlSource, IGetInverseTransformer, IToPresentDto Inheritance object StaticTranslation Implements IStaticTransformer ITransformer IMakeXmlSource IGetInverseTransformer IToPresentDto Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 StaticTranslation() Ctor. public StaticTranslation() StaticTranslation(Vec3d) Ctor. public StaticTranslation(Vec3d trans) Parameters trans Vec3d translation StaticTranslation(double, double, double) Ctor. public StaticTranslation(double x, double y, double z) Parameters x double translation x y double translation y z double translation z StaticTranslation(XElement) Ctor. public StaticTranslation(XElement src) Parameters src XElement XML Properties Trans Translation. public Vec3d Trans { get; set; } Property Value Vec3d XName Static name. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public ITransformer Clone() Returns ITransformer clone GetInverseTransformer() Gets the inverse transformer of this transformer. public ITransformer GetInverseTransformer() Returns ITransformer The inverse transformer. GetMat() Gets the transform matrix. public Mat4d GetMat() Returns Mat4d The transform matrix. GetMatInv() Gets the inverse transform matrix. public Mat4d GetMatInv() Returns Mat4d The inverse transform matrix. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public virtual XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Set(StaticTranslation) Copy from src. public void Set(StaticTranslation src) Parameters src StaticTranslation src ToPresentDto() Convert StaticTranslation to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO dictionary with Type and Trans keys ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.Mech.Topo.TopoDisplayee.html": { "href": "api/Hi.Mech.Topo.TopoDisplayee.html", "title": "Class TopoDisplayee | HiAPI-C# 2025", "summary": "Class TopoDisplayee Namespace Hi.Mech.Topo Assembly HiMech.dll Implements a displayable topological element that manages a collection of anchored displayees within an assembly. public class TopoDisplayee : ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList Inheritance object TopoDisplayee Implements ITopo IGetAsmb IGetAnchor IGetTopoIndex IGetAnchoredDisplayeeList Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 TopoDisplayee(Anchor, Asmb, params IAnchoredDisplayee[]) Initializes a new instance of the TopoDisplayee class with the specified root anchor, assembly, and displayees. public TopoDisplayee(Anchor rootAnchor, Asmb asmb, params IAnchoredDisplayee[] displayees) Parameters rootAnchor Anchor The root anchor for the topological displayee. asmb Asmb The assembly associated with the topological displayee. displayees IAnchoredDisplayee[] The array of anchored displayees to be managed. Properties AnchoredDisplayeeList Gets or sets the list of anchored displayees managed by this instance. public List AnchoredDisplayeeList { get; set; } Property Value List Asmb Gets or sets the assembly associated with this topological displayee. public Asmb Asmb { get; set; } Property Value Asmb RootAnchor Gets or sets the root anchor for this topological displayee. public Anchor RootAnchor { get; set; } Property Value Anchor Methods Display(Bind) public void Display(Bind bind) Parameters bind Bind ExpandToBox3d(Box3d) public void ExpandToBox3d(Box3d dst) Parameters dst Box3d GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb." }, "api/Hi.Mech.Topo.TopoDisplayeeUtil.html": { "href": "api/Hi.Mech.Topo.TopoDisplayeeUtil.html", "title": "Class TopoDisplayeeUtil | HiAPI-C# 2025", "summary": "Class TopoDisplayeeUtil Namespace Hi.Mech.Topo Assembly HiMech.dll Provides utility methods for displaying and manipulating topological displayees. public static class TopoDisplayeeUtil Inheritance object TopoDisplayeeUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(ITopo, Bind) Displays the topological displayee using the specified bind context. public static void Display(this ITopo src, Bind bind) Parameters src ITopo The topological displayee to display. bind Bind The bind context used for displaying. ExpandToBox3d(ITopo, Box3d) Expands the bounding box to include the topological displayee's geometry. public static void ExpandToBox3d(this ITopo src, Box3d dst) Parameters src ITopo The topological displayee whose geometry should be included. dst Box3d The bounding box to expand." }, "api/Hi.Mech.Topo.TopoReflection.html": { "href": "api/Hi.Mech.Topo.TopoReflection.html", "title": "Class TopoReflection | HiAPI-C# 2025", "summary": "Class TopoReflection Namespace Hi.Mech.Topo Assembly HiMech.dll Clone Asmb and provide map between source topology and cloned topology. public class TopoReflection Inheritance object TopoReflection 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) Constructors TopoReflection(Asmb) Ctor. public TopoReflection(Asmb rootAsmb) Parameters rootAsmb Asmb root assembly Properties AnchorMap Key is source anchor. Value is cloned anchor. public Dictionary AnchorMap { get; } Property Value Dictionary AsmbMap Key is source asmb. Value is cloned asmb. public Dictionary AsmbMap { get; } Property Value Dictionary BranchMap Key is source branch. Value is cloned branch. public Dictionary BranchMap { get; } Property Value Dictionary HostAsmbTwins Pair.A is the source host; Pair.B is the cloned host. public Pair HostAsmbTwins { get; } Property Value Pair TransformerMap Key is source branch. Value is cloned branch. public Dictionary TransformerMap { get; } Property Value Dictionary" }, "api/Hi.Mech.Topo.TopoUtil.html": { "href": "api/Hi.Mech.Topo.TopoUtil.html", "title": "Class TopoUtil | HiAPI-C# 2025", "summary": "Class TopoUtil Namespace Hi.Mech.Topo Assembly HiMech.dll Utility of handling Anchor. public static class TopoUtil Inheritance object TopoUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Display(IGetAnchor, Bind, Dictionary) Display to rendering canvas. comp has to be IDisplayee to take effect. public static void Display(this IGetAnchor comp, Bind bind, Dictionary matMap) Parameters comp IGetAnchor component bind Bind rendering bind matMap Dictionary matrix map ExpandToBox3d(IGetAnchor, Box3d, Dictionary) Expand to Box3d. comp has to be IExpandToBox3d to take effect. public static void ExpandToBox3d(this IGetAnchor comp, Box3d dst, Dictionary matMap) Parameters comp IGetAnchor component dst Box3d dstination matMap Dictionary matrix map" }, "api/Hi.Mech.Topo.TransformerUtil.html": { "href": "api/Hi.Mech.Topo.TransformerUtil.html", "title": "Class TransformerUtil | HiAPI-C# 2025", "summary": "Class TransformerUtil Namespace Hi.Mech.Topo Assembly HiMech.dll Utility for ITransformer. public static class TransformerUtil Inheritance object TransformerUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetSteps(IDynamicRegular[]) Gets the steps. public static double[] GetSteps(IDynamicRegular[] dynamics) Parameters dynamics IDynamicRegular[] The dynamics. Returns double[] the steps Reg(XFactory) Registers every concrete ITransformer implementation with the given XFactory: NoTransform, StaticTranslation, StaticRotation, StaticFreeform, DynamicTranslation, DynamicRotation, DynamicFreeform, StackTransformer, and GeneralTransform. Composites that deserialize a Branch (whose Transformer child can be any of the above) should chain this from their own Reg(factory). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetSteps(IDynamicRegular[], double[]) Sets the steps. public static void SetSteps(IDynamicRegular[] dynamics, double[] steps) Parameters dynamics IDynamicRegular[] The dynamics. steps double[] The steps." }, "api/Hi.Mech.Topo.html": { "href": "api/Hi.Mech.Topo.html", "title": "Namespace Hi.Mech.Topo | HiAPI-C# 2025", "summary": "Namespace Hi.Mech.Topo Classes Anchor A coordinate system using in kinematic chain. AnchorFuncSource Provides an anchor through a function delegate. AnchoredBoxable Represents an object that is both anchored to a root point and can expand to a 3D box. AnchoredDisplayee Represents a displayable object that is anchored to a specific point in a topology. Asmb Collection of Anchor and Asmb. AsmbDraw Render all Anchors of the Asmb in form of CoordinateDrawing. Branch The linkage between two Anchor objects. DirectionBranchEntry A data pack contains Branch and a boolean isForward. DirectionBranchPackUtil Utility of topology. DynamicFreeform Dynamic Freeform transformer. DynamicRotation Dynamic rotate transformer. DynamicTranslation Dynamic translate transformer GeneralTransform Represents a general transformation that combines scaling, rotation, and translation. NoTransform Static Identity Transformer. StackTransformer Represents a transformer that maintains a stack of transformations. StaticFreeform Static Freeform transformer. StaticRotation Static Rotation. StaticTranslation Static Translate. TopoDisplayee Implements a displayable topological element that manages a collection of anchored displayees within an assembly. TopoDisplayeeUtil Provides utility methods for displaying and manipulating topological displayees. TopoReflection Clone Asmb and provide map between source topology and cloned topology. TopoUtil Utility of handling Anchor. TransformerUtil Utility for ITransformer. Interfaces IAnchoredDisplayee Interface for objects that can be displayed and are anchored to a root point in a topology. IDynamicRegular Dynamic Regular Transformer IDynamicRotation Topology joint that applies a single-axis rotation about Pivot by Angle_rad. IDynamicTransformer Dynamic Transformer. IGetAnchor Interface to get the key Anchor. IGetAnchoredDisplayeeList Interface for getting a list of anchored displayable objects. IGetAsmb Interface of Getting a key Asmb. IGetFletchBuckle Interface of GetFletchBuckle(). IGetInverseTransformer Interface for objects that can provide their inverse transformer. IGetTopoIndex interface of IGetAnchor or IGetAsmb. IStaticTransformer Static Transformer ITopo Defines an interface for displaying topological elements that combines assembly, anchoring, and display capabilities. ITopoDisplayee Represents a topology object that can be displayed and has an anchor. ITransformer Interface of single transform matrix manipulation. ITransformerProperty Interface for objects that have a transformer property." }, "api/Hi.Mech.html": { "href": "api/Hi.Mech.html", "title": "Namespace Hi.Mech | HiAPI-C# 2025", "summary": "Namespace Hi.Mech Classes GeneralMechanism General Mechanism. MachiningChainUtil Utility methods for machining chains. Interfaces IGetAnchorToSolidDictionary Provides functionality to retrieve a dictionary mapping anchors to their corresponding solids. IGetMachiningChain Provides functionality to retrieve a machining chain instance. IMachiningChain Represents a machining chain with two ends, connecting a tool and a workpiece. IMachiningChainSource Provides XML serialization/deserialization capabilities for IMachiningChain objects." }, "api/Hi.Milling.Apts.AptDerivative.html": { "href": "api/Hi.Milling.Apts.AptDerivative.html", "title": "Class AptDerivative | HiAPI-C# 2025", "summary": "Class AptDerivative Namespace Hi.Milling.Apts Assembly HiCbtr.dll Apt derivative. public class AptDerivative : IExpandToBox3d, IGetZrContour, IGenStl Inheritance object AptDerivative Implements IExpandToBox3d IGetZrContour IGenStl 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) Constructors AptDerivative(GeneralApt) Ctor. public AptDerivative(GeneralApt apt) Parameters apt GeneralApt apt Properties Apt Gets the general APT. public GeneralApt Apt { get; } Property Value GeneralApt CosAlpha Gets the cosine of Alpha angle. public double CosAlpha { get; } Property Value double CosBeta Gets the cosine of Beta angle. public double CosBeta { get; } Property Value double DefaultPolarResolution2d Gets or sets the default polar resolution for 2D operations. public static IPolarResolution2d DefaultPolarResolution2d { get; set; } Property Value IPolarResolution2d Mr Gets the radial coordinate of point M. public double Mr { get; } Property Value double Mz Gets the Z-coordinate of point M. public double Mz { get; } Property Value double Nr Gets the radial coordinate of point N. public double Nr { get; } Property Value double Nz Gets the Z-coordinate of point N. public double Nz { get; } Property Value double SinAlpha Gets the sine of Alpha angle. public double SinAlpha { get; } Property Value double SinBeta Gets the sine of Beta angle. public double SinBeta { get; } Property Value double TanAlpha Gets the tangent of Alpha angle. public double TanAlpha { get; } Property Value double TanBeta Gets the tangent of Beta angle. public double TanBeta { get; } Property Value double Methods 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 GenStl(IPolarResolution2d) Generates an STL representation of the tool geometry. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d The polar resolution to use for generation. Returns Stl The generated STL object. GetNormal(double, double) Get Normal Vector by height and angle. public Vec3d GetNormal(double z, double rad) Parameters z double height rad double x-axis is begin; z-axis is principle Returns Vec3d GetRadius(double) Get Radius by z. public double GetRadius(double z) Parameters z double z Returns double radius at z GetZrContour(double) Gets Z-R contour data as a list of PairZr objects. The Z values should generally be ordered from smallest to largest. public IList GetZrContour(double latitudeAngleResolution_rad) Parameters latitudeAngleResolution_rad double Resolution of latitude angle in radians Returns IList Z-R contour data as a list of PairZr objects" }, "api/Hi.Milling.Apts.BallApt.html": { "href": "api/Hi.Milling.Apts.BallApt.html", "title": "Class BallApt | HiAPI-C# 2025", "summary": "Class BallApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Ball End Apt. public class BallApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IToXElement Inheritance object BallApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IToXElement 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) Constructors BallApt() Ctor. public BallApt() BallApt(XElement) Ctor. public BallApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Flute Height. public double FluteHeight_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.BullNoseApt.html": { "href": "api/Hi.Milling.Apts.BullNoseApt.html", "title": "Class BullNoseApt | HiAPI-C# 2025", "summary": "Class BullNoseApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Bull Nose End APT. public class BullNoseApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IAptRc, IToXElement Inheritance object BullNoseApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IAptRc IToXElement 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) Constructors BullNoseApt() Ctor. public BullNoseApt() BullNoseApt(XElement) Ctor. public BullNoseApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Flute Height. public double FluteHeight_mm { get; set; } Property Value double Rc_mm Round corner radius. public double Rc_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.ColumnApt.html": { "href": "api/Hi.Milling.Apts.ColumnApt.html", "title": "Class ColumnApt | HiAPI-C# 2025", "summary": "Class ColumnApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Column End APT. The composition is identical to the BullNoseApt. However, the nose radius is generally smaller than the BullNoseApt. public class ColumnApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IAptRc, IToXElement Inheritance object ColumnApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IAptRc IToXElement 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) Constructors ColumnApt() Ctor. public ColumnApt() ColumnApt(XElement) Ctor. public ColumnApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Flute Height. public double FluteHeight_mm { get; set; } Property Value double Rc_mm Round corner radius. public double Rc_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.ConeApt.html": { "href": "api/Hi.Milling.Apts.ConeApt.html", "title": "Class ConeApt | HiAPI-C# 2025", "summary": "Class ConeApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Cone End APT. public class ConeApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IAptAlpha, IToXElement Inheritance object ConeApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IAptAlpha IToXElement 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) Constructors ConeApt() Ctor. public ConeApt() ConeApt(XElement) Ctor. public ConeApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Alpha_deg Alpha angle in degree. public double Alpha_deg { get; set; } Property Value double Alpha_rad Alpha angle in radian. public double Alpha_rad { get; set; } Property Value double Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Flute Height. public double FluteHeight_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.ExactColumnApt.html": { "href": "api/Hi.Milling.Apts.ExactColumnApt.html", "title": "Class ExactColumnApt | HiAPI-C# 2025", "summary": "Class ExactColumnApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Column End APT. public class ExactColumnApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IToXElement Inheritance object ExactColumnApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IToXElement 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) Constructors ExactColumnApt() Ctor. public ExactColumnApt() ExactColumnApt(XElement) Ctor. public ExactColumnApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Flute Height. public double FluteHeight_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.GeneralApt.html": { "href": "api/Hi.Milling.Apts.GeneralApt.html", "title": "Class GeneralApt | HiAPI-C# 2025", "summary": "Class GeneralApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll APT standard milling cutter geometry. public class GeneralApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IEquatable, IAptRc, IAptRr, IAptRz, IAptAlpha, IAptBeta, IGetZrContour, IToXElement, IGenStl, IClearCache Inheritance object GeneralApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IEquatable IAptRc IAptRr IAptRz IAptAlpha IAptBeta IGetZrContour IToXElement IGenStl IClearCache Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 GeneralApt() Ctor. public GeneralApt() GeneralApt(GeneralApt) Copy ctor. public GeneralApt(GeneralApt src) Parameters src GeneralApt src GeneralApt(double, double, double, double, double, double, double) Ctor. public GeneralApt(double D, double R0, double Rr, double Rz, double alpha_rad, double beta_rad, double fluteH) Parameters D double see Diameter_mm R0 double see Rc_mm Rr double see Rr_mm Rz double see Rz_mm alpha_rad double see Alpha_rad beta_rad double see Beta_rad fluteH double see FluteHeight_mm GeneralApt(XElement) Ctor. public GeneralApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Alpha_deg Alpha_rad in degree. public double Alpha_deg { get; set; } Property Value double Alpha_rad The angle between horizontal plane and the cone surface of the cutter tip. The angle is downside the cutter round (if exists). If the cutter is cylindrical mill, the angle is 0. The unit is radian. public double Alpha_rad { get; set; } Property Value double AptDerivative Gets the APT derivative object, creating it if it doesn't exist. public AptDerivative AptDerivative { get; } Property Value AptDerivative Beta_deg Beta_rad in degree. public double Beta_deg { get; set; } Property Value double Beta_rad The angle between stick axis and the side plane of cutter. The angle is upside the cutter round (if exists). The unit is radian. public double Beta_rad { get; set; } Property Value double Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Full Height. public double FluteHeight_mm { get; set; } Property Value double Rc_mm Round radius. public double Rc_mm { get; set; } Property Value double Rr_mm Distance between round center to the stick axis. public double Rr_mm { get; set; } Property Value double Rz_mm Center between the tip to the round center. public double Rz_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears the internal cache of APT derivative. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Equals(GeneralApt) Indicates whether the current object is equal to another object of the same type. public bool Equals(GeneralApt src) Parameters src GeneralApt Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. 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 GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d polarResolution) Parameters polarResolution IPolarResolution2d Returns Stl A newly created STL. GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetZrContour(double) Gets Z-R contour data as a list of PairZr objects. The Z values should generally be ordered from smallest to largest. public IList GetZrContour(double latitudeAngleResolution_rad) Parameters latitudeAngleResolution_rad double Resolution of latitude angle in radians Returns IList Z-R contour data as a list of PairZr objects MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.IAptAlpha.html": { "href": "api/Hi.Milling.Apts.IAptAlpha.html", "title": "Interface IAptAlpha | HiAPI-C# 2025", "summary": "Interface IAptAlpha Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT objects with alpha angle. public interface IAptAlpha 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 Alpha_deg Alpha_rad in degree. double Alpha_deg { get; set; } Property Value double Alpha_rad The angle between horizontal plane and the cone surface of the cutter tip. The angle is downside the cutter round (if exists). If the cutter is cylindrical mill, the angle is 0. The unit is radian. double Alpha_rad { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IAptBased.html": { "href": "api/Hi.Milling.Apts.IAptBased.html", "title": "Interface IAptBased | HiAPI-C# 2025", "summary": "Interface IAptBased Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT-based objects. public interface IAptBased : IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate Inherited Members IGetGeneralApt.GetGeneralApt() IAbstractNote.AbstractNote IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IDuplicate.Duplicate(params object[]) 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 Diameter_mm Diameter in mm. double Diameter_mm { get; set; } Property Value double FluteHeight_mm Height of flute. double FluteHeight_mm { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IAptBeta.html": { "href": "api/Hi.Milling.Apts.IAptBeta.html", "title": "Interface IAptBeta | HiAPI-C# 2025", "summary": "Interface IAptBeta Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT objects with beta angle. public interface IAptBeta 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 Beta_deg Beta_rad in degree. double Beta_deg { get; set; } Property Value double Beta_rad The angle between stick axis and the side plane of cutter. The angle is upside the cutter round (if exists). The unit is radian. double Beta_rad { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IAptRc.html": { "href": "api/Hi.Milling.Apts.IAptRc.html", "title": "Interface IAptRc | HiAPI-C# 2025", "summary": "Interface IAptRc Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT objects with corner radius. public interface IAptRc 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 Rc_mm Corner radius. Round radius. double Rc_mm { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IAptRr.html": { "href": "api/Hi.Milling.Apts.IAptRr.html", "title": "Interface IAptRr | HiAPI-C# 2025", "summary": "Interface IAptRr Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT objects with round radius. public interface IAptRr 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 Rr_mm Distance between round center to the stick axis. double Rr_mm { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IAptRz.html": { "href": "api/Hi.Milling.Apts.IAptRz.html", "title": "Interface IAptRz | HiAPI-C# 2025", "summary": "Interface IAptRz Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for APT objects with Z-axis round center distance. public interface IAptRz 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 Rz_mm Center between the tip to the round center. double Rz_mm { get; set; } Property Value double" }, "api/Hi.Milling.Apts.IGetApt.html": { "href": "api/Hi.Milling.Apts.IGetApt.html", "title": "Interface IGetApt | HiAPI-C# 2025", "summary": "Interface IGetApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface for objects that can provide an APT-based object. public interface IGetApt 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 Apt Gets the APT-based object. IAptBased Apt { get; } Property Value IAptBased" }, "api/Hi.Milling.Apts.IGetGeneralApt.html": { "href": "api/Hi.Milling.Apts.IGetGeneralApt.html", "title": "Interface IGetGeneralApt | HiAPI-C# 2025", "summary": "Interface IGetGeneralApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Interface of GetGeneralApt(). public interface IGetGeneralApt 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) Methods GetGeneralApt() Get Apt. GeneralApt GetGeneralApt() Returns GeneralApt Apt" }, "api/Hi.Milling.Apts.TaperApt.html": { "href": "api/Hi.Milling.Apts.TaperApt.html", "title": "Class TaperApt | HiAPI-C# 2025", "summary": "Class TaperApt Namespace Hi.Milling.Apts Assembly HiCbtr.dll Taper End APT. public class TaperApt : IAptBased, IGetGeneralApt, IAbstractNote, IGetDiameter, IGetFluteHeight, IExpandToBox3d, IMakeXmlSource, IDuplicate, IAptRz, IAptAlpha, IAptBeta, IToXElement Inheritance object TaperApt Implements IAptBased IGetGeneralApt IAbstractNote IGetDiameter IGetFluteHeight IExpandToBox3d IMakeXmlSource IDuplicate IAptRz IAptAlpha IAptBeta IToXElement 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) Constructors TaperApt() Ctor. public TaperApt() TaperApt(XElement) Ctor. public TaperApt(XElement src) Parameters src XElement XML Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Alpha_deg Alpha_rad in degree. public double Alpha_deg { get; set; } Property Value double Alpha_rad The angle between horizontal plane and the cone surface of the cutter tip. The angle is downside the cutter round (if exists). If the cutter is cylindrical mill, the angle is 0. The unit is radian. public double Alpha_rad { get; set; } Property Value double Beta_deg Beta_rad in degree. public double Beta_deg { get; set; } Property Value double Beta_rad The angle between stick axis and the side plane of cutter. The angle is upside the cutter round (if exists). The unit is radian. public double Beta_rad { get; set; } Property Value double Diameter_mm Diameter. public double Diameter_mm { get; set; } Property Value double FluteHeight_mm Height of flute. public double FluteHeight_mm { get; set; } Property Value double Rz_mm Center between the tip to the round center. public double Rz_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetGeneralApt() Get Apt. public GeneralApt GetGeneralApt() Returns GeneralApt Apt MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.Milling.Apts.apt_t.html": { "href": "api/Hi.Milling.Apts.apt_t.html", "title": "Struct apt_t | HiAPI-C# 2025", "summary": "Struct apt_t Namespace Hi.Milling.Apts Assembly HiCbtr.dll Native apt. public struct apt_t 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) Constructors apt_t() Ctor. public apt_t() apt_t(IGetGeneralApt) Ctor. public apt_t(IGetGeneralApt src) Parameters src IGetGeneralApt src Fields D Diameter. public double D Field Value double H Height. public double H Field Value double Rc Round radius. public double Rc Field Value double Rr Horizontal length from cutter axis to round center. public double Rr Field Value double Rz Vertical length from cutter tip to round center. public double Rz Field Value double alpha Angle (radian) between bottom surface and horizontal. public double alpha Field Value double beta Angle (radian) between wall surface and vertical. public double beta Field Value double" }, "api/Hi.Milling.Apts.html": { "href": "api/Hi.Milling.Apts.html", "title": "Namespace Hi.Milling.Apts | HiAPI-C# 2025", "summary": "Namespace Hi.Milling.Apts Classes AptDerivative Apt derivative. BallApt Ball End Apt. BullNoseApt Bull Nose End APT. ColumnApt Column End APT. The composition is identical to the BullNoseApt. However, the nose radius is generally smaller than the BullNoseApt. ConeApt Cone End APT. ExactColumnApt Column End APT. GeneralApt APT standard milling cutter geometry. TaperApt Taper End APT. Structs apt_t Native apt. Interfaces IAptAlpha Interface for APT objects with alpha angle. IAptBased Interface for APT-based objects. IAptBeta Interface for APT objects with beta angle. IAptRc Interface for APT objects with corner radius. IAptRr Interface for APT objects with round radius. IAptRz Interface for APT objects with Z-axis round center distance. IGetApt Interface for objects that can provide an APT-based object. IGetGeneralApt Interface of GetGeneralApt()." }, "api/Hi.Milling.Cutters.AptProfile.html": { "href": "api/Hi.Milling.Cutters.AptProfile.html", "title": "Class AptProfile | HiAPI-C# 2025", "summary": "Class AptProfile Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents an APT (Automatically Programmed Tool) based profile for a milling cutter. This profile uses APT definitions to describe the cutter geometry. public class AptProfile : IShaperProfile, IMakeXmlSource, IAbstractNote, IGetZrList, IGenStl, IGetStl, IDuplicate, IGetSelectionName, IGetInitStickConvex, IVolumeRemover, IDisposable, IUpdateByContent, IClearCache, IPolarResolution2dSourceProperty Inheritance object AptProfile Implements IShaperProfile IMakeXmlSource IAbstractNote IGetZrList IGenStl IGetStl IDuplicate IGetSelectionName IGetInitStickConvex IVolumeRemover IDisposable IUpdateByContent IClearCache IPolarResolution2dSourceProperty Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 AptProfile() Initializes a new instance of the AptProfile class. public AptProfile() AptProfile(IAptBased) Initializes a new instance of the AptProfile class. public AptProfile(IAptBased apt) Parameters apt IAptBased The APT-based object. AptProfile(XElement, string, IProgress) Initializes a new instance of the AptProfile class. public AptProfile(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing the profile configuration. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties AbstractNote Gets the abstract note from the APT definition. public string AbstractNote { get; } Property Value string Apt Gets or sets the APT-based definition for the profile. public IAptBased Apt { get; set; } Property Value IAptBased DefaultAngleResolution_rad Gets or sets the default angle resolution in radians. public static double DefaultAngleResolution_rad { get; set; } Property Value double DefaultLinearResolution_mm Gets or sets the default linear resolution in millimeters. public static double DefaultLinearResolution_mm { get; set; } Property Value double PolarResolution2dSource The provider of IPolarResolution2d. public Func PolarResolution2dSource { get; set; } Property Value Func XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears all cached data. public void ClearCache() Dispose() Disposes of all resources. public void Dispose() Dispose(bool) Disposes of unmanaged resources. protected virtual void Dispose(bool disposing) Parameters disposing bool True if disposing, false if finalizing Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetInitStickConvex() Gets the initial stick convex representation of the profile. public InitStickConvex GetInitStickConvex() Returns InitStickConvex The initial stick convex representation GetSelectionName() Gets the display name for selection. public string GetSelectionName() Returns string The display name GetStl() Gets the STL mesh representation of the profile. public Stl GetStl() Returns Stl The STL mesh GetZrList() Gets the ZR contour list for the profile. public List GetZrList() Returns List The list of ZR pairs MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the profile based on content changes. public void UpdateByContent()" }, "api/Hi.Milling.Cutters.ConstRatioProfile.html": { "href": "api/Hi.Milling.Cutters.ConstRatioProfile.html", "title": "Class ConstRatioProfile | HiAPI-C# 2025", "summary": "Class ConstRatioProfile Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents a constant ratio profile for a milling cutter. This profile maintains a constant ratio between inner and outer radii. public class ConstRatioProfile : IShaperProfile, IMakeXmlSource, IAbstractNote, IGetZrList, IGetStl, IDuplicate, IClearCache, IGenStl, IZrListSourceProperty Inheritance object ConstRatioProfile Implements IShaperProfile IMakeXmlSource IAbstractNote IGetZrList IGetStl IDuplicate IClearCache IGenStl IZrListSourceProperty Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 ConstRatioProfile() Initializes a new instance of the ConstRatioProfile class. public ConstRatioProfile() ConstRatioProfile(double) Initializes a new instance of the ConstRatioProfile class with a specified radius ratio. public ConstRatioProfile(double innerRadiusRatio) Parameters innerRadiusRatio double The ratio between inner and outer radii ConstRatioProfile(XElement, string) Initializes a new instance of the ConstRatioProfile class. public ConstRatioProfile(XElement element, string baseDirectory) Parameters element XElement The XML element containing profile data. baseDirectory string The base directory for resolving relative paths. Properties AbstractNote Gets the abstract note describing the profile. public string AbstractNote { get; } Property Value string RadiusRatio Gets or sets the ratio between inner and outer radii. public double RadiusRatio { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZrListSource Get base geometry source. Runtime property. public Func ZrListSource { get; set; } Property Value Func Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object GetZrList() Gets a list of Z-R coordinate pairs. public List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.Cutters.CustomSpinningProfile.html": { "href": "api/Hi.Milling.Cutters.CustomSpinningProfile.html", "title": "Class CustomSpinningProfile | HiAPI-C# 2025", "summary": "Class CustomSpinningProfile Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents a custom spinning profile for a milling cutter. This profile allows for custom geometry to be used as the cutter profile. public class CustomSpinningProfile : IShaperProfile, IMakeXmlSource, IAbstractNote, IGetZrList, IGenStl, IGetStl, IDuplicate, IClearCache, IPolarResolution2dSourceProperty Inheritance object CustomSpinningProfile Implements IShaperProfile IMakeXmlSource IAbstractNote IGetZrList IGenStl IGetStl IDuplicate IClearCache IPolarResolution2dSourceProperty Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 CustomSpinningProfile(IGetStl) Initializes a new instance of the CustomSpinningProfile class. public CustomSpinningProfile(IGetStl geom) Parameters geom IGetStl The geometry that defines the profile. CustomSpinningProfile(XElement, string, IProgress, object[]) Initializes a new instance of the CustomSpinningProfile class. public CustomSpinningProfile(XElement element, string baseDirectory, IProgress progress, object[] res) Parameters element XElement The XML element containing profile data. baseDirectory string The base directory for resolving relative paths. progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resolution parameters. Properties AbstractNote Gets the abstract note describing the profile. public string AbstractNote { get; } Property Value string Geom Gets or sets the geometry that defines the profile. public IGetStl Geom { get; set; } Property Value IGetStl PolarResolution2dSource The provider of IPolarResolution2d. public Func PolarResolution2dSource { get; set; } Property Value Func XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL mesh representation of the profile. public Stl GetStl() Returns Stl The STL mesh GetZrList() Gets the ZR contour list for the profile. This method attempts to get the ZR list from various geometry types. public List GetZrList() Returns List The list of ZR pairs MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.Cutters.CutterUtil.html": { "href": "api/Hi.Milling.Cutters.CutterUtil.html", "title": "Class CutterUtil | HiAPI-C# 2025", "summary": "Class CutterUtil Namespace Hi.Milling.Cutters Assembly HiMech.dll Utility class providing extension methods for cutter operations. public static class CutterUtil Inheritance object CutterUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetCutterBodyCoolingArea_mm2(ICutter) Gets the cooling area of the cutter body in square millimeters. public static double? GetCutterBodyCoolingArea_mm2(this ICutter cutter) Parameters cutter ICutter The cutter to calculate the cooling area for. Returns double? The cooling area in square millimeters, or null if the cutter is null." }, "api/Hi.Milling.Cutters.FluteContourDisplayee.html": { "href": "api/Hi.Milling.Cutters.FluteContourDisplayee.html", "title": "Class FluteContourDisplayee | HiAPI-C# 2025", "summary": "Class FluteContourDisplayee Namespace Hi.Milling.Cutters Assembly HiMech.dll Provides display functionality for flute contours in milling cutters. This class handles the visualization of both front and back surfaces of flute contours. Internal Use Only public class FluteContourDisplayee : IDisplayee, IExpandToBox3d, IClearCache, IDisposable Inheritance object FluteContourDisplayee Implements IDisplayee IExpandToBox3d IClearCache IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 FluteContourDisplayee(Func, FluteContour) Initializes a new instance of the FluteContourDisplayee class. Internal Use Only public FluteContourDisplayee(Func millingCutterHost, FluteContour fluteContour) Parameters millingCutterHost Func The function that provides the host milling cutter. fluteContour FluteContour The flute contour to be displayed. Properties FluteContour Gets or sets the flute contour to be displayed. Internal Use Only public FluteContour FluteContour { get; set; } Property Value FluteContour MillingCutterHost Gets or sets the function that provides the host milling cutter. Internal Use Only public Func MillingCutterHost { get; set; } Property Value Func Methods ClearCache() Clears the cached display data. Internal Use Only public void ClearCache() Display(Bind) Displays the flute contour using the specified binding. Internal Use Only public void Display(Bind bind) Parameters bind Bind The display binding to use. Dispose() Disposes of all resources. Internal Use Only public void Dispose() Dispose(bool) Disposes of unmanaged resources. Internal Use Only protected virtual void Dispose(bool disposing) Parameters disposing bool True if disposing, false if finalizing ExpandToBox3d(Box3d) Expands the destination box to include the bounds of this displayee. Internal Use Only public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The box to expand." }, "api/Hi.Milling.Cutters.FluteDependentRatioProfile.html": { "href": "api/Hi.Milling.Cutters.FluteDependentRatioProfile.html", "title": "Class FluteDependentRatioProfile | HiAPI-C# 2025", "summary": "Class FluteDependentRatioProfile Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents a flute number dependent ratio profile for a milling cutter. This profile determines the ratio between inner and outer radii based on the number of flutes. public class FluteDependentRatioProfile : IShaperProfile, IMakeXmlSource, IAbstractNote, IGetZrList, IGenStl, IGetStl, IDuplicate, IClearCache, IFluteNumSourceProperty, IZrListSourceProperty Inheritance object FluteDependentRatioProfile Implements IShaperProfile IMakeXmlSource IAbstractNote IGetZrList IGenStl IGetStl IDuplicate IClearCache IFluteNumSourceProperty IZrListSourceProperty Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 FluteDependentRatioProfile() Initializes a new instance. public FluteDependentRatioProfile() FluteDependentRatioProfile(XElement, string) Initializes a new instance of the FluteDependentRatioProfile class. public FluteDependentRatioProfile(XElement element, string baseDirectory) Parameters element XElement The XML element containing profile data. baseDirectory string The base directory for resolving relative paths. Properties AbstractNote Gets the abstract note describing the profile. public string AbstractNote { get; } Property Value string FluteNumSource Gets or sets a delegate that returns the current flute number. public Func FluteNumSource { get; set; } Property Value Func RadiusRatio Gets the radius ratio based on the current number of flutes. public double RadiusRatio { get; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZrListSource Get base geometry source. Runtime property. public Func ZrListSource { get; set; } Property Value Func Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GenStl(IPolarResolution2d) Generates a new STL. public Stl GenStl(IPolarResolution2d resolution) Parameters resolution IPolarResolution2d Polar resolution Returns Stl A newly created STL. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object GetZrList() Gets a list of Z-R coordinate pairs. public List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.Cutters.IShaperProfile.html": { "href": "api/Hi.Milling.Cutters.IShaperProfile.html", "title": "Interface IShaperProfile | HiAPI-C# 2025", "summary": "Interface IShaperProfile Namespace Hi.Milling.Cutters Assembly HiMech.dll Interface defining the shape profile of a cutter flute. public interface IShaperProfile : IMakeXmlSource, IAbstractNote, IGetZrList, IGenStl, IGetStl, IDuplicate, IClearCache Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IAbstractNote.AbstractNote IGetZrList.GetZrList() IGenStl.GenStl(IPolarResolution2d) IGetStl.GetStl() IDuplicate.Duplicate(params object[]) IClearCache.ClearCache() Extension Methods StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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)" }, "api/Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html": { "href": "api/Hi.Milling.Cutters.MillingCutter.IntegralModeEnum.html", "title": "Enum MillingCutter.IntegralModeEnum | HiAPI-C# 2025", "summary": "Enum MillingCutter.IntegralModeEnum Namespace Hi.Milling.Cutters Assembly HiMech.dll Defines the integral mode of the cutter. public enum MillingCutter.IntegralModeEnum 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 InsertEnd = 1 Insert end mode. SolidEnd = 0 Solid end mode." }, "api/Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html": { "href": "api/Hi.Milling.Cutters.MillingCutter.MassAssignmentMode.html", "title": "Enum MillingCutter.MassAssignmentMode | HiAPI-C# 2025", "summary": "Enum MillingCutter.MassAssignmentMode Namespace Hi.Milling.Cutters Assembly HiMech.dll Defines the mass assignment mode for the cutter. public enum MillingCutter.MassAssignmentMode 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 Custom = 0 Custom mass assignment mode. EvaluateByVolume = 1 Evaluate mass by volume mode." }, "api/Hi.Milling.Cutters.MillingCutter.html": { "href": "api/Hi.Milling.Cutters.MillingCutter.html", "title": "Class MillingCutter | HiAPI-C# 2025", "summary": "Class MillingCutter Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents a milling cutter with its geometric and physical properties. public class MillingCutter : ICutter, IGetSweptable, IAnchoredDisplayee, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IAnchoredCollidableStem, IAnchoredCollidableNode, IAnchoredCollidableBased, IDisposable, INameNote, IGetFluteHeight, IDisplayee, IExpandToBox3d, IUpdateByContent, IClearCache, IGetThermalLayerList, ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList, IDuplicate, IGetInitStickConvex, IVolumeRemover, IPolarResolution2d, IGetZrList Inheritance object MillingCutter Implements ICutter IGetSweptable IAnchoredDisplayee IGetFletchBuckle IMakeXmlSource IAbstractNote IAnchoredCollidableStem IAnchoredCollidableNode IAnchoredCollidableBased IDisposable INameNote IGetFluteHeight IDisplayee IExpandToBox3d IUpdateByContent IClearCache IGetThermalLayerList ITopo IGetAsmb IGetAnchor IGetTopoIndex IGetAnchoredDisplayeeList IDuplicate IGetInitStickConvex IVolumeRemover IPolarResolution2d IGetZrList Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) CutterUtil.GetCutterBodyCoolingArea_mm2(ICutter) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MillingTemperatureUtil.GetMaterial(IGetThermalLayerList, double) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The cutter can be solid end or insert end. The term “Flute” is the edge part of the solid end cutter or the full insert of the insert end body. The term “Shank” is the full part except for edge part (i.e. Flute) of the solid end cutter. Shank and Flute compose the full cutter. Constructors MillingCutter() Initializes a new instance of the MillingCutter class. public MillingCutter() MillingCutter(XElement, string, string, IProgress, object[]) Ctor. public MillingCutter(XElement src, string baseDirectory, string relFile, IProgress progress, object[] res) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths relFile string Relative file path progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional optional resources Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string AngleResolution_deg AngleResolution_deg. Call ClearCache() after setting the property. public double AngleResolution_deg { get; set; } Property Value double AngleResolution_rad AngleResolution_rad. Call ClearCache() after setting the property. public double AngleResolution_rad { get; set; } Property Value double CoatingLayerList Gets or sets the list of coating thermal layers. The sequence starts from surface, i.e. from outer to inner. public List CoatingLayerList { get; set; } Property Value List CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CutterTip Gets the anchor point at the cutter tip. public Anchor CutterTip { get; } Property Value Anchor DefaultAngleResolution_rad Gets or sets the default angle resolution in radians. public static double DefaultAngleResolution_rad { get; set; } Property Value double DefaultLinearResolution_mm Gets or sets the default linear resolution in millimeters. public static double DefaultLinearResolution_mm { get; set; } Property Value double DefaultStlLongitudeNum Gets or sets the default number of longitude lines for STL generation. public static int DefaultStlLongitudeNum { get; set; } Property Value int EffectiveCuttingDiameter_mm Cutting Diameter for calculate cutting speed. Pure computation — deliberately uncached (see Hi.Milling.Cutters.MillingCutter.SideRakeAngle_rad); per-step session paths read the value from MillingToolPhysicsPack. public double EffectiveCuttingDiameter_mm { get; } Property Value double ExposedHeight_mm Has to be simultanous with ExposedCutterHeight_mm. public double ExposedHeight_mm { get; set; } Property Value double FluteHeight_mm Gets the height of the flute in millimeters. public double FluteHeight_mm { get; } Property Value double FluteMaterial Material of the flute. public CutterMaterial FluteMaterial { get; set; } Property Value CutterMaterial FluteMaterialFile Gets or sets the file path for the flute material definition. public string FluteMaterialFile { get; set; } Property Value string Fluting Gets or sets the cutter's fluting — the whole set of flute contours, either one shared baseline repeated evenly around the cutter (UniformFluting) or one contour defined per flute (FreeFluting). public IFluting Fluting { get; set; } Property Value IFluting FullHeight_mm Gets the full height of the cutter in millimeters. public double FullHeight_mm { get; } Property Value double HoneRadius_mm Gets or sets the hone radius in millimeters. public double HoneRadius_mm { get; set; } Property Value double HoneRadius_um Gets the hone radius in micrometers. public double HoneRadius_um { get; set; } Property Value double InnerBeamProfile Gets or sets the inner beam profile. public IShaperProfile InnerBeamProfile { get; set; } Property Value IShaperProfile Remarks InnerBeamProfile may be dependent on ShaperProfile. InnerBeamProfile.ClearCache() and initialization must be performed after ShaperProfile.ClearCache() and initialization. InsertNum Gets or sets Insert Number. The property should be used Only if IntegralMode is InsertEnd. However, there is no exception mechanism. public int InsertNum { get; set; } Property Value int InsertThickness_mm Thickness of an insert. Only available if the cutter is InsertEnd. public double InsertThickness_mm { get; set; } Property Value double IntegralMode Gets or sets the main integral mode of the cutter. public MillingCutter.IntegralModeEnum IntegralMode { get; set; } Property Value MillingCutter.IntegralModeEnum IsSpinningCutter Is cutter spining when machining. public bool IsSpinningCutter { get; } Property Value bool Is cutter spining when machining. LinearResolution_mm LinearResolution_mm. Call ClearCache() after setting the property. public double LinearResolution_mm { get; set; } Property Value double MillingCutterOptLimit public MillingCutterOptOption MillingCutterOptLimit { get; set; } Property Value MillingCutterOptOption Name Name. public string Name { get; set; } Property Value string Note Note. public string Note { get; set; } Property Value string ReliefAngle_deg Gets or sets the relief angle in degrees. public double ReliefAngle_deg { get; set; } Property Value double ReliefAngle_rad Gets or sets the relief angle in radians. public double ReliefAngle_rad { get; set; } Property Value double ShankMassAssignmentMode Gets or sets the mass assignment mode for the shank. public MillingCutter.MassAssignmentMode ShankMassAssignmentMode { get; set; } Property Value MillingCutter.MassAssignmentMode ShankMass_g Gets or sets the cutter shank mass in grams. If IntegralMode is SolidEnd, the mass is the full cutter mass. If IntegralMode is InsertEnd, the mass is the shank mass. since the flute mass is assumed small and dynamic depends on the CWE (Cutter-Workpiece-Engagement). public double ShankMass_g { get; set; } Property Value double ShankMaterial Material of the shank. It should be the same with FluteMaterial if the cutter is SolidEnd. public IStructureMaterial ShankMaterial { get; set; } Property Value IStructureMaterial ShankMaterialFile Gets or sets the file path for the shank material definition. It should be the same with FluteMaterialFile if the cutter is SolidEnd. public string ShankMaterialFile { get; set; } Property Value string ShaperProfile Gets or sets the shaper profile that defines the cutter's shape. public IShaperProfile ShaperProfile { get; set; } Property Value IShaperProfile ShaperTopoBrick cutable part of cutter. the part cut the workpiece if overlapped. public ITopoBrick ShaperTopoBrick { get; } Property Value ITopoBrick SingleInsertMass_g Gets or sets the total inserts' mass in grams. The property should be used Only if IntegralMode is InsertEnd. However, there is no exception mechanism. public double SingleInsertMass_g { get; set; } Property Value double StrutTopoBrick uncutable part of cutter. the part triggers collision to workpiece if overlapped. public ITopoBrick StrutTopoBrick { get; } Property Value ITopoBrick SumInsertMass_g Gets the total mass of all inserts in grams calculated from SingleInsertMass_g * InsertNum. public double SumInsertMass_g { get; } Property Value double SurfaceMaterial Gets the surface material of the cutter. public CutterMaterial SurfaceMaterial { get; } Property Value CutterMaterial UpperBeamGeom Gets the upper beam geometry of the cutter. public IGetStl UpperBeamGeom { get; set; } Property Value IGetStl UpperBeamPolarResolution2dSource Gets or sets the provider for upper beam polar resolution. public Func UpperBeamPolarResolution2dSource { get; set; } Property Value Func XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears all cached data. public void ClearCache() ClearThermalLayerListCache() Clears the thermal layer list cache. public void ClearThermalLayerListCache() 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 Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredCollidables() Gets the list of anchored collidable nodes contained by this stem. public List GetAnchoredCollidables() Returns List A list of anchored collidable nodes. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCutterFluteDisplayee() Gets the cutter flute displayee for visualization. public IAnchoredDisplayee GetCutterFluteDisplayee() Returns IAnchoredDisplayee The anchored displayee for the cutter flute. GetDeflectionPara_umdN(out double, out double) (L^3)/(3EI). Where deflection = F(L^3)/(3EI). for cantiliver beam. public void GetDeflectionPara_umdN(out double bendingPara_umdN, out double zDeflectionPara_umdN) Parameters bendingPara_umdN double zDeflectionPara_umdN double Exceptions Exception GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. public Anchor GetFletchBuckle() Returns Anchor buckle anchor GetFluteThermalLayerList() Flute material layer From outer(i.e. surface) to inner. public List GetFluteThermalLayerList() Returns List GetGuessShankMass_g() Get guess mass by volume and density. The volume is count from InnerBeamProfile and UpperBeamGeom. public double GetGuessShankMass_g() Returns double GetInitStickConvex() Get InitStickConvex. public InitStickConvex GetInitStickConvex() Returns InitStickConvex InitStickConvex GetMinimumUncutChipThickness_mm(ICuttingPara) Gets the minimum uncut chip thickness in millimeters for the specified cutting parameters. The value is dependent on HoneRadius_um. Pure computation — deliberately uncached (see GetStagnantAngle_rad(ICuttingPara)); session paths read the value from MillingToolPhysicsPack. public double GetMinimumUncutChipThickness_mm(ICuttingPara millingPara) Parameters millingPara ICuttingPara The cutting parameters to use for calculation. Returns double The minimum uncut chip thickness in millimeters. GetMinimumUncutChipThickness_um(ICuttingPara) Gets the minimum uncut chip thickness in micrometers for the specified cutting parameters. public double GetMinimumUncutChipThickness_um(ICuttingPara millingPara) Parameters millingPara ICuttingPara The cutting parameters to use for calculation. Returns double The minimum uncut chip thickness in micrometers. GetNobleAnchoredDisplayee() Gets a noble anchored displayee for visualization. public AnchoredDisplayee GetNobleAnchoredDisplayee() Returns AnchoredDisplayee The anchored displayee. GetSweptable(double) Get Sweptable. public Sweptable GetSweptable(double fractionTolerance) Parameters fractionTolerance double The fraction tolerance for the sweptable. Returns Sweptable Sweptable GetTestBallCutter() Creates a test ball cutter. public static MillingCutter GetTestBallCutter() Returns MillingCutter A new ball cutter instance for testing. GetTestBottomCutter() Creates a test bottom cutter. public static MillingCutter GetTestBottomCutter() Returns MillingCutter A new bottom cutter instance for testing. GetTestFreeCutter() Creates a test free cutter. public static MillingCutter GetTestFreeCutter() Returns MillingCutter A new free cutter instance for testing. GetThermalLayerList() Gets the list of thermal layers. public List GetThermalLayerList() Returns List List of thermal layers. GetUpperBeamGeometryIssues() Collects human-readable configuration issues on the upper-beam / shank geometry — the settings that used to surface only as an opaque per-step NullReferenceException cascade inside the thermal physics (e.g. an ExtendedCylinder beam whose FullLength is below the flute height, so the shank solid inverts and Hi.Milling.Cutters.MillingCutter.GetShankThermalZrList() cannot build). Returns (Id, Message) pairs following the structured-id convention of the IMessage channel (e.g. Cutter-UpperBeam–BelowFluteHeight); empty when no upper beam is configured (a legal state — physics runs without a shank) or the beam is consistent. Shared by the physics runner (tool-change ConfigurationError) and the web API (post-edit validation warnings). public List<(string Id, string Message)> GetUpperBeamGeometryIssues() Returns List<(string FilterTitle, string FileExtension)> GetZrList() Gets a list of Z-R coordinate pairs. public List GetZrList() Returns List A list of PairZr objects representing Z-R coordinates. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html": { "href": "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.ShapeModeEnum.html", "title": "Enum MillingCutterEditorDisplayee.ShapeModeEnum | HiAPI-C# 2025", "summary": "Enum MillingCutterEditorDisplayee.ShapeModeEnum Namespace Hi.Milling.Cutters Assembly HiMech.dll Display shape mode for the cutter. public enum MillingCutterEditorDisplayee.ShapeModeEnum 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 DetailPhysicsShape = 1 Render detailed physics-related shapes. SolidBoundingShape = 0 Render only a simplified solid bounding shape." }, "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.html": { "href": "api/Hi.Milling.Cutters.MillingCutterEditorDisplayee.html", "title": "Class MillingCutterEditorDisplayee | HiAPI-C# 2025", "summary": "Class MillingCutterEditorDisplayee Namespace Hi.Milling.Cutters Assembly HiMech.dll Represents a displayable editor for milling cutter visualization. This class handles the rendering of cutter geometry, including flutes, profiles, and inner structures. Internal Use Only public class MillingCutterEditorDisplayee : IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d, IClearCache, IDisposable Inheritance object MillingCutterEditorDisplayee Implements IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d IClearCache IDisposable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 MillingCutterEditorDisplayee() Initializes a new instance of the MillingCutterEditorDisplayee class. public MillingCutterEditorDisplayee() MillingCutterEditorDisplayee(Func) Initializes a new instance of the MillingCutterEditorDisplayee class with a milling cutter host. public MillingCutterEditorDisplayee(Func millingCutterHost) Parameters millingCutterHost Func Function that provides the milling cutter instance Properties MillingCutterSourceFunc Gets or sets the function that provides the milling cutter instance. public Func MillingCutterSourceFunc { get; set; } Property Value Func ShapeMode Gets or sets the current display shape mode. public MillingCutterEditorDisplayee.ShapeModeEnum ShapeMode { get; set; } Property Value MillingCutterEditorDisplayee.ShapeModeEnum Methods ClearCache() Clears all cached display data. public void ClearCache() Display(Bind) Displays the milling cutter visualization. public void Display(Bind bind) Parameters bind Bind The binding context for display Dispose() Disposes of all resources. public void Dispose() Dispose(bool) Disposes of unmanaged resources. protected virtual void Dispose(bool disposing) Parameters disposing bool True if disposing, false if finalizing ExpandToBox3d(Box3d) Expands the bounding box to include the cutter geometry. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The destination bounding box to expand GetAnchor() Gets the root anchor point of the cutter. public Anchor GetAnchor() Returns Anchor The cutter tip anchor" }, "api/Hi.Milling.Cutters.html": { "href": "api/Hi.Milling.Cutters.html", "title": "Namespace Hi.Milling.Cutters | HiAPI-C# 2025", "summary": "Namespace Hi.Milling.Cutters Classes AptProfile Represents an APT (Automatically Programmed Tool) based profile for a milling cutter. This profile uses APT definitions to describe the cutter geometry. ConstRatioProfile Represents a constant ratio profile for a milling cutter. This profile maintains a constant ratio between inner and outer radii. CustomSpinningProfile Represents a custom spinning profile for a milling cutter. This profile allows for custom geometry to be used as the cutter profile. CutterUtil Utility class providing extension methods for cutter operations. FluteContourDisplayee Provides display functionality for flute contours in milling cutters. This class handles the visualization of both front and back surfaces of flute contours. Internal Use Only FluteDependentRatioProfile Represents a flute number dependent ratio profile for a milling cutter. This profile determines the ratio between inner and outer radii based on the number of flutes. MillingCutter Represents a milling cutter with its geometric and physical properties. MillingCutterEditorDisplayee Represents a displayable editor for milling cutter visualization. This class handles the rendering of cutter geometry, including flutes, profiles, and inner structures. Internal Use Only Interfaces IShaperProfile Interface defining the shape profile of a cutter flute. Enums MillingCutter.IntegralModeEnum Defines the integral mode of the cutter. MillingCutter.MassAssignmentMode Defines the mass assignment mode for the cutter. MillingCutterEditorDisplayee.ShapeModeEnum Display shape mode for the cutter." }, "api/Hi.Milling.Engagements.BitwiseMillingEngagement.html": { "href": "api/Hi.Milling.Engagements.BitwiseMillingEngagement.html", "title": "Class BitwiseMillingEngagement | HiAPI-C# 2025", "summary": "Class BitwiseMillingEngagement Namespace Hi.Milling.Engagements Assembly HiMech.dll Represents a bitwise milling engagement that uses bit arrays to efficiently store engagement information. public class BitwiseMillingEngagement Inheritance object BitwiseMillingEngagement 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) Constructors BitwiseMillingEngagement(List, List>, SeqPair, double, double) Initializes a new instance of the BitwiseMillingEngagement class. public BitwiseMillingEngagement(List fluteZrContour, List> orthodoxForwardContours, SeqPair seqOnToolRunningCoordinate, double zInterval, double rInterval) Parameters fluteZrContour List The flute Z-R contour. orthodoxForwardContours List> The orthodox forward contours. seqOnToolRunningCoordinate SeqPair The sequence on tool running coordinate. zInterval double The Z interval. rInterval double The R interval. Fields angleIntervalNum Number of angle interval. public const int angleIntervalNum = 64 Field Value int angleInterval_rad angle interval in radian. public const double angleInterval_rad = 0.09817477042468103 Field Value double Properties BottomBits Gets or sets the bottom bits representing bottom engagement. public List BottomBits { get; set; } Property Value List SideBits Gets or sets the side bits representing side engagement. public List SideBits { get; set; } Property Value List Methods Delta(BitwiseMillingEngagement, BitwiseMillingEngagement, out int) Contact area difference from engagement1. public static int Delta(BitwiseMillingEngagement engagement0, BitwiseMillingEngagement engagement1, out int deltaIncreaseNum) Parameters engagement0 BitwiseMillingEngagement previous engagement on time line. Null value is accepted. engagement1 BitwiseMillingEngagement current engagement on time line. Null value is accepted. deltaIncreaseNum int The relative increase number of contact area from engagement0 to engagement1. Negative value means the contact area decreased. Returns int Contact area difference ToBottomBitString() Converts the bottom bits to a string representation. public string ToBottomBitString() Returns string A string representation of the bottom bits. ToSideBitString() Converts the side bits to a string representation. public string ToSideBitString() Returns string A string representation of the side bits." }, "api/Hi.Milling.Engagements.EngagementLayer.html": { "href": "api/Hi.Milling.Engagements.EngagementLayer.html", "title": "Class EngagementLayer | HiAPI-C# 2025", "summary": "Class EngagementLayer Namespace Hi.Milling.Engagements Assembly HiMech.dll Represents a layer of engagement between a tool and workpiece. public class EngagementLayer : IWriteBin Inheritance object EngagementLayer Implements IWriteBin Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 EngagementLayer() Initializes a new instance of the EngagementLayer class public EngagementLayer() EngagementLayer(BinaryReader) Initializes a new instance of the EngagementLayer class by reading from a binary stream public EngagementLayer(BinaryReader reader) Parameters reader BinaryReader The binary reader to read the engagement layer data from Properties Dv Gets or sets the interval value (in millimeters) for either Z coordinate (for side engagement) or R coordinate (for bottom engagement) public double Dv { get; set; } Property Value double Ranges Gets or sets the list of angular ranges where the tool engages with the workpiece. Each range represents a start and end angle in radians. public List> Ranges { get; set; } Property Value List> Methods ToString() Returns a string representation of the engagement layer public override string ToString() Returns string A string containing the Dv value and the ranges of engagement angles WriteBin(BinaryWriter) Writes the engagement layer data to a binary stream public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write the data to" }, "api/Hi.Milling.Engagements.EngagementSlice.html": { "href": "api/Hi.Milling.Engagements.EngagementSlice.html", "title": "Class EngagementSlice | HiAPI-C# 2025", "summary": "Class EngagementSlice Namespace Hi.Milling.Engagements Assembly HiMech.dll Engagement slice. public class EngagementSlice Inheritance object EngagementSlice Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 EngagementSlice(double, double, double) Initializes a new instance of the EngagementSlice class. public EngagementSlice(double v, double begin, double end) Parameters v double The z or r value. begin double The begin angle in radians. end double The end angle in radians. Fields begin begin angle in radian. public double begin Field Value double end end angle in radian. public double end Field Value double v z or r. public double v Field Value double Methods ToString() Returns a string that represents the current engagement slice. public override string ToString() Returns string A string that represents the current engagement slice." }, "api/Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html": { "href": "api/Hi.Milling.Engagements.IBitwiseMillingEngagementSupport.html", "title": "Interface IBitwiseMillingEngagementSupport | HiAPI-C# 2025", "summary": "Interface IBitwiseMillingEngagementSupport Namespace Hi.Milling.Engagements Assembly HiMech.dll Interface for classes that support bitwise milling engagement. public interface IBitwiseMillingEngagementSupport 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 BitwiseMillingEngagement Gets or sets the bitwise milling engagement. BitwiseMillingEngagement BitwiseMillingEngagement { get; set; } Property Value BitwiseMillingEngagement" }, "api/Hi.Milling.Engagements.IGetLayerMillingEngagement.html": { "href": "api/Hi.Milling.Engagements.IGetLayerMillingEngagement.html", "title": "Interface IGetLayerMillingEngagement | HiAPI-C# 2025", "summary": "Interface IGetLayerMillingEngagement Namespace Hi.Milling.Engagements Assembly HiMech.dll Interface of GetLayerMillingEngagement(). public interface IGetLayerMillingEngagement 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) Methods GetLayerMillingEngagement() Get LayerMillingEngagement. LayerMillingEngagement GetLayerMillingEngagement() Returns LayerMillingEngagement LayerMillingEngagement" }, "api/Hi.Milling.Engagements.LayerMillingEngagement.html": { "href": "api/Hi.Milling.Engagements.LayerMillingEngagement.html", "title": "Class LayerMillingEngagement | HiAPI-C# 2025", "summary": "Class LayerMillingEngagement Namespace Hi.Milling.Engagements Assembly HiMech.dll Milling Engagement. public class LayerMillingEngagement : IWriteBin Inheritance object LayerMillingEngagement Implements IWriteBin Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 LayerMillingEngagement() Initializes a new instance of the LayerMillingEngagement class. public LayerMillingEngagement() LayerMillingEngagement(BinaryReader) Ctor. public LayerMillingEngagement(BinaryReader reader) Parameters reader BinaryReader Properties AvgTouchedPeriodRatio Gets the average touched period ratio public double AvgTouchedPeriodRatio { get; } Property Value double BottomEngagements Gets or sets the bottom engagements. Maps R values to engagement layers public SortedList BottomEngagements { get; set; } Property Value SortedList BottomEngagementsByteArray Gets or sets the bottom engagements as a byte array for serialization public byte[] BottomEngagementsByteArray { get; set; } Property Value byte[] RInterval Gets or sets the R interval, which is equivalent to the Resolution public double RInterval { get; set; } Property Value double Resolution Gets or sets the resolution value for engagement calculations in millimeters public double Resolution { get; set; } Property Value double SideEngagements Gets or sets the side engagements. Maps Z values to engagement layers public SortedList SideEngagements { get; set; } Property Value SortedList SideEngagementsByteArray Gets or sets the side engagements as a byte array for serialization public byte[] SideEngagementsByteArray { get; set; } Property Value byte[] StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; set; } Property Value int Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.Milling.Engagements.MillingEngagementUtil.html": { "href": "api/Hi.Milling.Engagements.MillingEngagementUtil.html", "title": "Class MillingEngagementUtil | HiAPI-C# 2025", "summary": "Class MillingEngagementUtil Namespace Hi.Milling.Engagements Assembly HiMech.dll Utility of LayerMillingEngagement. public static class MillingEngagementUtil Inheritance object MillingEngagementUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetContoursDrawing(List>) Gets a drawing representation of the contours. public static Drawing GetContoursDrawing(List> contours) Parameters contours List> The list of contours to draw. Returns Drawing A drawing object representing the contours. GetZToDzList(List, double) Get Z to dZ list. The z values, i.e. the key of generated list, are all not repeated with the source z values. The generated z values are interpolated by the source z values. And each of the dz area is the same slope from the original source. public static SortedList GetZToDzList(List constantZlopeZs, double resolution) Parameters constantZlopeZs List resolution double Returns SortedList" }, "api/Hi.Milling.Engagements.html": { "href": "api/Hi.Milling.Engagements.html", "title": "Namespace Hi.Milling.Engagements | HiAPI-C# 2025", "summary": "Namespace Hi.Milling.Engagements Classes BitwiseMillingEngagement Represents a bitwise milling engagement that uses bit arrays to efficiently store engagement information. EngagementLayer Represents a layer of engagement between a tool and workpiece. EngagementSlice Engagement slice. LayerMillingEngagement Milling Engagement. MillingEngagementUtil Utility of LayerMillingEngagement. Interfaces IBitwiseMillingEngagementSupport Interface for classes that support bitwise milling engagement. IGetLayerMillingEngagement Interface of GetLayerMillingEngagement()." }, "api/Hi.Milling.FluteContours.ConstHelixSideContour.html": { "href": "api/Hi.Milling.FluteContours.ConstHelixSideContour.html", "title": "Class ConstHelixSideContour | HiAPI-C# 2025", "summary": "Class ConstHelixSideContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a constant helix side contour for milling cutters. public class ConstHelixSideContour : ISideContour, IWorkingContour, IExpandToBox3d, IMakeXmlSource, IUpdateByContent, IClearCache, IEquatable Inheritance object ConstHelixSideContour Implements ISideContour IWorkingContour IExpandToBox3d IMakeXmlSource IUpdateByContent IClearCache IEquatable Inherited Members object.Equals(object, object) 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) FluteContourUtil.GetDrawing(ISideContour, out Drawing, out Drawing, out NativeTopoStl3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors ConstHelixSideContour(IGetZrList) Initializes a new instance of the ConstHelixSideContour class. public ConstHelixSideContour(IGetZrList zrListHost) Parameters zrListHost IGetZrList The Z-R list host. ConstHelixSideContour(double, double, IGetZrList) Initializes a new instance of the ConstHelixSideContour class. public ConstHelixSideContour(double helix_rad, double radialRakeAngle_rad, IGetZrList zrListHost) Parameters helix_rad double The helix angle in radians. radialRakeAngle_rad double The radial rake angle in radians. zrListHost IGetZrList The Z-R list host. ConstHelixSideContour(XElement, string, IGetZrList) Initializes a new instance of the ConstHelixSideContour class from XML. public ConstHelixSideContour(XElement src, string baseDirectory, IGetZrList zrListHost) Parameters src XElement The XML element containing the configuration. baseDirectory string The base directory for resolving relative paths. zrListHost IGetZrList The Z-R list host. Properties Helix_deg Helix_rad in degree. public double Helix_deg { get; set; } Property Value double Helix_rad Helix angle in radian. public double Helix_rad { get; set; } Property Value double KeyRange Gets the key range of the flute contour. public Range KeyRange { get; } Property Value Range Remarks For ISideContour, this represents the Z-value range (height range) For IBottomContour, this represents the R-value range (radial range) RadialRakeAngle_deg Gets or sets the radial rake angle in degrees. public double RadialRakeAngle_deg { get; set; } Property Value double RadialRakeAngle_rad Gets or sets the radial rake angle in radians. public double RadialRakeAngle_rad { get; set; } Property Value double RadialReliefAngle_deg Gets or sets the radial relief angle in degrees. public double RadialReliefAngle_deg { get; set; } Property Value double RadialReliefAngle_rad Gets or sets the radial relief angle in radians. public double RadialReliefAngle_rad { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string ZrListHost Gets or sets the Z-R list host. public IGetZrList ZrListHost { get; set; } Property Value IGetZrList Methods ClearCache() Clears the cached data. public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this contour with a new Z-R list host. public IWorkingContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The new Z-R list host. Returns IWorkingContour A duplicate of this contour. Equals(ConstHelixSideContour) Indicates whether the current object is equal to another object of the same type. public bool Equals(ConstHelixSideContour other) Parameters other ConstHelixSideContour An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. 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 GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetSpanContourPosList() Gets a list of span contour positions that define the working contour geometry. public List GetSpanContourPosList() Returns List A list of SpanContourPos4d objects representing the contour geometry Remarks The positions are ordered: For ISideContour, positions are ordered by ascending Z values For IBottomContour, positions are ordered by ascending R values Note: Future implementation may use List> for block flute support. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.FluteContour.html": { "href": "api/Hi.Milling.FluteContours.FluteContour.html", "title": "Class FluteContour | HiAPI-C# 2025", "summary": "Class FluteContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a flute contour for milling tools. public class FluteContour : IMakeXmlSource, IDisposable, IClearCache Inheritance object FluteContour Implements IMakeXmlSource IDisposable IClearCache 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) Constructors FluteContour() Initializes a new instance of the FluteContour class public FluteContour() FluteContour(FluteContour, double) Initializes a new instance of the FluteContour class with a source contour and shift angle public FluteContour(FluteContour src, double shiftAngle_rad) Parameters src FluteContour The source flute contour to copy from shiftAngle_rad double The shift angle in radians FluteContour(XElement, string, IProgress, object[]) Initializes a new instance of the FluteContour class from XML data public FluteContour(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement The source XML element baseDirectory string The base directory for resolving relative paths progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resources for initialization Properties BaseBottomContour Gets or sets the base bottom contour of the flute. This represents the original bottom profile before any transformations. public IWorkingContour BaseBottomContour { get; set; } Property Value IWorkingContour BaseSideContour Gets or sets the base side contour of the flute. This represents the original side profile before any transformations. public IWorkingContour BaseSideContour { get; set; } Property Value IWorkingContour SetupAngle_deg Gets or sets the setup angle in degrees. This is a convenience property that converts ShiftAngle_rad to degrees. public double SetupAngle_deg { get; set; } Property Value double ShiftAngle_rad Gets or sets the shift angle in radians. This angle represents the angular offset of the flute from its base position. public double ShiftAngle_rad { get; set; } Property Value double ShiftedBottomContour Gets the shifted bottom contour of the flute. This is the bottom profile after applying the shift angle transformation. public ShiftedWorkingContour ShiftedBottomContour { get; } Property Value ShiftedWorkingContour ShiftedSideContour Gets the shifted side contour of the flute. This is the side profile after applying the shift angle transformation. public ShiftedWorkingContour ShiftedSideContour { get; } Property Value ShiftedWorkingContour XName Gets the XML name for serialization public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data in the flute contour public void ClearCache() Dispose() Releases all resources used by the FluteContour public void Dispose() Dispose(bool) Releases the unmanaged resources used by the FluteContour and optionally releases the managed resources protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources Duplicate(IGetZrList) Creates a duplicate of this flute contour public FluteContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information Returns FluteContour A new instance of FluteContour with the same properties ExpandToBox3d(Box3d) Expands the given bounding box to include this flute contour public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The bounding box to expand MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the internal state based on the current content public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.FluteContourUtil.html": { "href": "api/Hi.Milling.FluteContours.FluteContourUtil.html", "title": "Class FluteContourUtil | HiAPI-C# 2025", "summary": "Class FluteContourUtil Namespace Hi.Milling.FluteContours Assembly HiMech.dll Provides utility methods for working with flute contours in milling tools. public static class FluteContourUtil Inheritance object FluteContourUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetDrawing(ISideContour, out Drawing, out Drawing, out NativeTopoStl3d) Generates drawing representations for a side contour. public static void GetDrawing(this ISideContour src, out Drawing faceDrawing, out Drawing lineDrawing, out NativeTopoStl3d topoStl) Parameters src ISideContour The source side contour to generate drawings from faceDrawing Drawing Output parameter that receives the face drawing representation lineDrawing Drawing Output parameter that receives the line drawing representation topoStl NativeTopoStl3d Output parameter that receives the STL topology representation Remarks This method creates three different visual representations of the contour: A face drawing showing the surface A line drawing showing the edges An STL representation for 3D visualization The method uses a constant inner radius ratio of 0.4 and calculates appropriate angles for the radial rake to create a smooth transition between the outer and inner surfaces." }, "api/Hi.Milling.FluteContours.FreeFluting.html": { "href": "api/Hi.Milling.FluteContours.FreeFluting.html", "title": "Class FreeFluting | HiAPI-C# 2025", "summary": "Class FreeFluting Namespace Hi.Milling.FluteContours Assembly HiMech.dll A milling cutter's fluting in which every flute is defined individually — each flute carries its own contour, so spacing, helix and rake need not repeat. Use UniformFluting when one baseline contour repeated evenly around the cutter is enough. public class FreeFluting : IFluting, IMakeXmlSource, IExpandToBox3d, IUpdateByContent, IClearCache, IGetFluteNum Inheritance object FreeFluting Implements IFluting IMakeXmlSource IExpandToBox3d IUpdateByContent IClearCache IGetFluteNum 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) Remarks This class provides a flexible way to manage multiple flute contours: Supports XML serialization for data persistence Allows arbitrary arrangement of flute contours Implements IFluting for standard fluting functionality Constructors FreeFluting() Initializes a new instance of the FreeFluting class public FreeFluting() FreeFluting(XElement, string, IProgress, object[]) Initializes a new instance of the FreeFluting class from XML data public FreeFluting(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement The source XML element containing the fluting data baseDirectory string The base directory for resolving relative paths progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional resources for initialization Properties ContourList Gets or sets the list of flute contours in this fluting public List ContourList { get; set; } Property Value List XName Gets the XML name for serialization public static string XName { get; } Property Value string XmlSourceFile public string XmlSourceFile { get; set; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this fluting public IFluting Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information Returns IFluting A new instance of FreeFluting with the same properties 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 GetFluteContourList() Gets the list of flute contours that make up this fluting. public List GetFluteContourList() Returns List A list of flute contours. GetFluteNum() Gets the number of flutes. public int GetFluteNum() Returns int MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.FreeformBottomContour.html": { "href": "api/Hi.Milling.FluteContours.FreeformBottomContour.html", "title": "Class FreeformBottomContour | HiAPI-C# 2025", "summary": "Class FreeformBottomContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a freeform bottom contour for milling tools, allowing arbitrary contour shapes. public class FreeformBottomContour : IBottomContour, IWorkingContour, IExpandToBox3d, IMakeXmlSource, IUpdateByContent, IClearCache, IEquatable Inheritance object FreeformBottomContour Implements IBottomContour IWorkingContour IExpandToBox3d IMakeXmlSource IUpdateByContent IClearCache IEquatable Inherited Members object.Equals(object, object) 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) Remarks This class provides a flexible way to define bottom contours with custom shapes: Implements IBottomContour for basic bottom contour functionality Supports XML serialization for data persistence Maintains a list of contour positions ordered by R-coordinate (radius) Constructors FreeformBottomContour() Initializes a new instance of the FreeformBottomContour class public FreeformBottomContour() FreeformBottomContour(XElement, string) Initializes a new instance of the FreeformBottomContour class from XML data public FreeformBottomContour(XElement src, string baseDirectory) Parameters src XElement The source XML element containing the contour data baseDirectory string The base directory for resolving relative paths Properties KeyRange Gets the R-value range (radial range) of the contour public Range KeyRange { get; } Property Value Range Remarks The range is calculated from the first and last points in the SpanContourPosList, which are ordered by R-coordinate (radius) SpanContourPosList Gets or sets the list of contour positions ordered by R-coordinate (radius) public List SpanContourPosList { get; set; } Property Value List Remarks Each position in the list represents a point on the contour with its associated geometric and angular properties XName Gets the XML name for serialization public static string XName { get; } Property Value string Methods ClearCache() Clears the cached key range value public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this freeform bottom contour public IWorkingContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information Returns IWorkingContour A new instance of FreeformBottomContour with the same properties Equals(FreeformBottomContour) Determines whether the specified FreeformBottomContour is equal to the current FreeformBottomContour public bool Equals(FreeformBottomContour other) Parameters other FreeformBottomContour The FreeformBottomContour to compare with the current FreeformBottomContour Returns bool true if the specified FreeformBottomContour is equal to the current FreeformBottomContour; otherwise, false Equals(object) Determines whether the specified object is equal to the current object public override bool Equals(object obj) Parameters obj object The object to compare with the current object Returns bool true if the specified object is equal to the current object; otherwise, false ExpandToBox3d(Box3d) Expands the given bounding box to include this contour public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The bounding box to expand GetHashCode() Returns a hash code for this instance public override int GetHashCode() Returns int A hash code value based on the contour positions GetSpanContourPosList() Gets the list of span contour positions that define the contour geometry public List GetSpanContourPosList() Returns List The list of contour positions ordered by R-coordinate (radius) MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the contour's internal state based on its current content public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.FreeformSideContour.html": { "href": "api/Hi.Milling.FluteContours.FreeformSideContour.html", "title": "Class FreeformSideContour | HiAPI-C# 2025", "summary": "Class FreeformSideContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a freeform side contour for milling tools, allowing arbitrary contour shapes. public class FreeformSideContour : ISideContour, IWorkingContour, IExpandToBox3d, IMakeXmlSource, IUpdateByContent, IClearCache, IEquatable Inheritance object FreeformSideContour Implements ISideContour IWorkingContour IExpandToBox3d IMakeXmlSource IUpdateByContent IClearCache IEquatable Inherited Members object.Equals(object, object) 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) FluteContourUtil.GetDrawing(ISideContour, out Drawing, out Drawing, out NativeTopoStl3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks This class provides a flexible way to define side contours with custom shapes: Implements ISideContour for basic side contour functionality Supports XML serialization for data persistence Maintains a list of contour positions ordered by Z-coordinate Constructors FreeformSideContour() Initializes a new instance of the FreeformSideContour class public FreeformSideContour() FreeformSideContour(XElement, string) Initializes a new instance of the FreeformSideContour class from XML data public FreeformSideContour(XElement src, string baseDirectory) Parameters src XElement The source XML element containing the contour data baseDirectory string The base directory for resolving relative paths Properties KeyRange Gets the Z-value range (height range) of the contour public Range KeyRange { get; } Property Value Range Remarks The range is calculated from the first and last points in the SpanContourPosList, which are ordered by Z-coordinate SpanContourPosList Gets or sets the list of contour positions ordered by Z-coordinate public List SpanContourPosList { get; set; } Property Value List Remarks Each position in the list represents a point on the contour with its associated geometric and angular properties XName Gets the XML name for serialization public static string XName { get; } Property Value string Methods ClearCache() Clears the cached key range value public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this freeform side contour public IWorkingContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information Returns IWorkingContour A new instance of FreeformSideContour with the same properties Equals(FreeformSideContour) Determines whether the specified FreeformSideContour is equal to the current FreeformSideContour public bool Equals(FreeformSideContour other) Parameters other FreeformSideContour The FreeformSideContour to compare with the current FreeformSideContour Returns bool true if the specified FreeformSideContour is equal to the current FreeformSideContour; otherwise, false Equals(object) Determines whether the specified object is equal to the current object public override bool Equals(object obj) Parameters obj object The object to compare with the current object Returns bool true if the specified object is equal to the current object; otherwise, false ExpandToBox3d(Box3d) Expands the given bounding box to include this contour public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The bounding box to expand GetHashCode() Returns a hash code for this instance public override int GetHashCode() Returns int A hash code value based on the contour positions GetSpanContourPosList() Gets the list of span contour positions that define the contour geometry public List GetSpanContourPosList() Returns List The list of contour positions ordered by Z-coordinate MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the contour's internal state based on its current content public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.IBottomContour.html": { "href": "api/Hi.Milling.FluteContours.IBottomContour.html", "title": "Interface IBottomContour | HiAPI-C# 2025", "summary": "Interface IBottomContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a bottom flute contour for milling tools. public interface IBottomContour : IWorkingContour, IMakeXmlSource, IExpandToBox3d, IClearCache Inherited Members IWorkingContour.KeyRange IWorkingContour.GetSpanContourPosList() IWorkingContour.Duplicate(IGetZrList) IMakeXmlSource.MakeXmlSource(string, string, bool) IExpandToBox3d.ExpandToBox3d(Box3d) IClearCache.ClearCache() 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) Remarks The bottom contour defines the cutting geometry at the bottom of the tool: Implements IWorkingContour for basic contour functionality Uses R-axis values (radius) as the key range for radial operations Provides geometry for bottom cutting operations in milling tools" }, "api/Hi.Milling.FluteContours.IFluteNumSourceProperty.html": { "href": "api/Hi.Milling.FluteContours.IFluteNumSourceProperty.html", "title": "Interface IFluteNumSourceProperty | HiAPI-C# 2025", "summary": "Interface IFluteNumSourceProperty Namespace Hi.Milling.FluteContours Assembly HiMech.dll Interface that requiring a FluteNumSource property. public interface IFluteNumSourceProperty 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 FluteNumSource Gets or sets a delegate that returns the current flute number. Func FluteNumSource { get; set; } Property Value Func" }, "api/Hi.Milling.FluteContours.IFluting.html": { "href": "api/Hi.Milling.FluteContours.IFluting.html", "title": "Interface IFluting | HiAPI-C# 2025", "summary": "Interface IFluting Namespace Hi.Milling.FluteContours Assembly HiMech.dll A milling cutter's fluting: the complete set of flute contours that do the cutting. Either one shared baseline repeated evenly around the cutter (UniformFluting) or one individually defined contour per flute (FreeFluting) — every flute is definable on its own. “Fluting” is the machining noun for a cutter's flute geometry and carries no size of its own, so it describes the flute set of a 4 mm end mill exactly as well as that of a large face mill. public interface IFluting : IMakeXmlSource, IExpandToBox3d, IUpdateByContent, IClearCache, IGetFluteNum Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IExpandToBox3d.ExpandToBox3d(Box3d) IUpdateByContent.UpdateByContent() IClearCache.ClearCache() IGetFluteNum.GetFluteNum() 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) Methods Duplicate(IGetZrList) Creates a duplicate of this fluting. IFluting Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information. Returns IFluting A new instance of IFluting with the same properties. GetFluteContourList() Gets the list of flute contours that make up this fluting. List GetFluteContourList() Returns List A list of flute contours." }, "api/Hi.Milling.FluteContours.IGetFluteNum.html": { "href": "api/Hi.Milling.FluteContours.IGetFluteNum.html", "title": "Interface IGetFluteNum | HiAPI-C# 2025", "summary": "Interface IGetFluteNum Namespace Hi.Milling.FluteContours Assembly HiMech.dll Provides a method to get the number of flutes. public interface IGetFluteNum 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) Methods GetFluteNum() Gets the number of flutes. int GetFluteNum() Returns int" }, "api/Hi.Milling.FluteContours.ISideContour.html": { "href": "api/Hi.Milling.FluteContours.ISideContour.html", "title": "Interface ISideContour | HiAPI-C# 2025", "summary": "Interface ISideContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a side flute contour for milling tools. public interface ISideContour : IWorkingContour, IMakeXmlSource, IExpandToBox3d, IClearCache Inherited Members IWorkingContour.KeyRange IWorkingContour.GetSpanContourPosList() IWorkingContour.Duplicate(IGetZrList) IMakeXmlSource.MakeXmlSource(string, string, bool) IExpandToBox3d.ExpandToBox3d(Box3d) IClearCache.ClearCache() Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) FluteContourUtil.GetDrawing(ISideContour, out Drawing, out Drawing, out NativeTopoStl3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Remarks The side contour defines the cutting geometry along the side of the tool: Implements IWorkingContour for basic contour functionality Uses Z-axis values as the key range for height-based operations Provides geometry for side cutting operations in milling tools" }, "api/Hi.Milling.FluteContours.IWorkingContour.html": { "href": "api/Hi.Milling.FluteContours.IWorkingContour.html", "title": "Interface IWorkingContour | HiAPI-C# 2025", "summary": "Interface IWorkingContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a working contour for cutting operations in milling tools. This interface is implemented by both side contours (ISideContour) and bottom contours (IBottomContour). public interface IWorkingContour : IMakeXmlSource, IExpandToBox3d, IClearCache Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IExpandToBox3d.ExpandToBox3d(Box3d) IClearCache.ClearCache() 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) Remarks The working contour provides essential geometry for tool cutting operations: For side contours, the key range represents Z values (height) For bottom contours, the key range represents R values (radius) Properties KeyRange Gets the key range of the flute contour. Range KeyRange { get; } Property Value Range Remarks For ISideContour, this represents the Z-value range (height range) For IBottomContour, this represents the R-value range (radial range) Methods Duplicate(IGetZrList) Creates a duplicate of this working contour. IWorkingContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The host containing Z-R list information for the new contour. Returns IWorkingContour A new instance of IWorkingContour with the same properties and geometry. GetSpanContourPosList() Gets a list of span contour positions that define the working contour geometry. List GetSpanContourPosList() Returns List A list of SpanContourPos4d objects representing the contour geometry Remarks The positions are ordered: For ISideContour, positions are ordered by ascending Z values For IBottomContour, positions are ordered by ascending R values Note: Future implementation may use List> for block flute support." }, "api/Hi.Milling.FluteContours.ShiftedWorkingContour.html": { "href": "api/Hi.Milling.FluteContours.ShiftedWorkingContour.html", "title": "Class ShiftedWorkingContour | HiAPI-C# 2025", "summary": "Class ShiftedWorkingContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a working contour that has been shifted by a specified angle. This class wraps another working contour and applies an angular transformation to it. public class ShiftedWorkingContour : IWorkingContour, IExpandToBox3d, IClearCache, IMakeXmlSource, IEquatable Inheritance object ShiftedWorkingContour Implements IWorkingContour IExpandToBox3d IClearCache IMakeXmlSource IEquatable Inherited Members object.Equals(object, object) 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 ShiftedWorkingContour() Initializes a new instance of the ShiftedWorkingContour class public ShiftedWorkingContour() ShiftedWorkingContour(double, IWorkingContour) Initializes a new instance of the ShiftedWorkingContour class with a specified shift angle and baseline contour public ShiftedWorkingContour(double shiftAngle_rad, IWorkingContour baselineWorkingContour) Parameters shiftAngle_rad double The shift angle in radians baselineWorkingContour IWorkingContour The baseline working contour to be shifted ShiftedWorkingContour(XElement, string, IWorkingContour) Initializes a new instance of the ShiftedWorkingContour class from XML data public ShiftedWorkingContour(XElement src, string baseDirectory, IWorkingContour baselineWorkingContour) Parameters src XElement The source XML element baseDirectory string The base directory for resolving relative paths baselineWorkingContour IWorkingContour The baseline working contour to be shifted Properties BaselineWorkingContour Gets or sets the baseline working contour that is being shifted public IWorkingContour BaselineWorkingContour { get; set; } Property Value IWorkingContour KeyRange Gets the key range of the baseline working contour public Range KeyRange { get; } Property Value Range ShiftAngle_deg Gets or sets the shift angle in degrees public double ShiftAngle_deg { get; set; } Property Value double ShiftAngle_rad Gets or sets the shift angle in radians public double ShiftAngle_rad { get; set; } Property Value double XName Gets the XML name for serialization public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this contour with a new Z-radius list provider. public IWorkingContour Duplicate(IGetZrList zrList) Parameters zrList IGetZrList The Z-radius list provider for the duplicate. Returns IWorkingContour A new instance of ShiftedWorkingContour. Equals(ShiftedWorkingContour) Determines whether the specified ShiftedWorkingContour is equal to the current ShiftedWorkingContour public bool Equals(ShiftedWorkingContour contour) Parameters contour ShiftedWorkingContour The ShiftedWorkingContour to compare with the current ShiftedWorkingContour Returns bool true if the specified ShiftedWorkingContour is equal to the current ShiftedWorkingContour; otherwise, false Equals(object) Determines whether the specified object is equal to the current object public override bool Equals(object obj) Parameters obj object The object to compare with the current object Returns bool true if the specified object is equal to the current object; otherwise, false ExpandToBox3d(Box3d) Expands the given bounding box to include this shifted working contour public void ExpandToBox3d(Box3d dst) Parameters dst Box3d The bounding box to expand GetHashCode() Returns a hash code for this instance public override int GetHashCode() Returns int A hash code value GetSpanContourPosList() Gets the list of span contour positions after applying the shift transformation public List GetSpanContourPosList() Returns List A list of transformed span contour positions MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Operators operator ==(ShiftedWorkingContour, ShiftedWorkingContour) Determines whether two ShiftedWorkingContour instances are equal public static bool operator ==(ShiftedWorkingContour left, ShiftedWorkingContour right) Parameters left ShiftedWorkingContour The first ShiftedWorkingContour to compare right ShiftedWorkingContour The second ShiftedWorkingContour to compare Returns bool true if the specified ShiftedWorkingContour instances are equal; otherwise, false operator !=(ShiftedWorkingContour, ShiftedWorkingContour) Determines whether two ShiftedWorkingContour instances are not equal public static bool operator !=(ShiftedWorkingContour left, ShiftedWorkingContour right) Parameters left ShiftedWorkingContour The first ShiftedWorkingContour to compare right ShiftedWorkingContour The second ShiftedWorkingContour to compare Returns bool true if the specified ShiftedWorkingContour instances are not equal; otherwise, false" }, "api/Hi.Milling.FluteContours.SideContourDisplayee.html": { "href": "api/Hi.Milling.FluteContours.SideContourDisplayee.html", "title": "Class SideContourDisplayee | HiAPI-C# 2025", "summary": "Class SideContourDisplayee Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a displayable side contour. public class SideContourDisplayee : IDisplayee, IExpandToBox3d, IDisposable Inheritance object SideContourDisplayee 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 DispUtil.Display(IDisplayee, Bind, Mat4d) 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 SideContourDisplayee(ISideContour) Initializes a new instance of the SideContourDisplayee class. public SideContourDisplayee(ISideContour sideContourSurface) Parameters sideContourSurface ISideContour The side contour surface to display. Properties SideContourSurface Gets or sets the side contour surface. public ISideContour SideContourSurface { get; set; } Property Value ISideContour 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 ResetDrawingCache() Resets the drawing cache. public void ResetDrawingCache()" }, "api/Hi.Milling.FluteContours.SlideBottomContour.html": { "href": "api/Hi.Milling.FluteContours.SlideBottomContour.html", "title": "Class SlideBottomContour | HiAPI-C# 2025", "summary": "Class SlideBottomContour Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a slide bottom contour for milling cutters. public class SlideBottomContour : IBottomContour, IWorkingContour, IMakeXmlSource, IExpandToBox3d, IClearCache Inheritance object SlideBottomContour Implements IBottomContour IWorkingContour IMakeXmlSource IExpandToBox3d IClearCache 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) Constructors SlideBottomContour() Initializes a new instance of the SlideBottomContour class. public SlideBottomContour() SlideBottomContour(XElement, string) Ctor by XML. public SlideBottomContour(XElement src, string baseDirectory) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths Properties AxialRakeAngle_deg AxialRakeAngle_rad in degree. public double AxialRakeAngle_deg { get; set; } Property Value double AxialRakeAngle_rad Axial rake angle. Sometimes it is equal to Helix angle from side contour. in radian. public double AxialRakeAngle_rad { get; set; } Property Value double CutterLengthOnBottomProjection_mm cutter length projection from outer edge on bottom plane. public double CutterLengthOnBottomProjection_mm { get; set; } Property Value double DiskAngle_deg angle between bottom surface and horizontal plane. unit is degree. public double DiskAngle_deg { get; set; } Property Value double DiskAngle_rad angle between bottom surface and horizontal plane. unit is radian. public double DiskAngle_rad { get; set; } Property Value double EccentricAngle_deg Gets or sets the eccentric angle in degrees. public double EccentricAngle_deg { get; set; } Property Value double EccentricAngle_rad Projection angle between the line from outer edge tip to center and bottom flute contour on bottom plane. Sometimes it is equal to Radial Rake Angle from side contour. in radian. public double EccentricAngle_rad { get; set; } Property Value double InnerHeight_mm Gets the inner height of the contour in millimeters. public double InnerHeight_mm { get; } Property Value double KeyRange Gets the key range of the flute contour. public Range KeyRange { get; } Property Value Range Remarks For ISideContour, this represents the Z-value range (height range) For IBottomContour, this represents the R-value range (radial range) OuterRadius_mm Gets or sets the outer radius of the contour in millimeters. public double OuterRadius_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this contour with the specified ZR list host. public IWorkingContour Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The ZR list host to use for the duplicate Returns IWorkingContour A new working contour instance 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 GetSpanContourPos4d(double) public SpanContourPos4d GetSpanContourPos4d(double r) Parameters r double specific radius Returns SpanContourPos4d GetSpanContourPosList() Gets a list of span contour positions that define the working contour geometry. public List GetSpanContourPosList() Returns List A list of SpanContourPos4d objects representing the contour geometry Remarks The positions are ordered: For ISideContour, positions are ordered by ascending Z values For IBottomContour, positions are ordered by ascending R values Note: Future implementation may use List> for block flute support. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.FluteContours.SpanContourPos4d.html": { "href": "api/Hi.Milling.FluteContours.SpanContourPos4d.html", "title": "Class SpanContourPos4d | HiAPI-C# 2025", "summary": "Class SpanContourPos4d Namespace Hi.Milling.FluteContours Assembly HiMech.dll Represents a position in 4D space (r, theta, z, radial angle) for contour spans public class SpanContourPos4d : IAdditionOperators, IMultiplyOperators, IDivisionOperators, ICsvRowIo Inheritance object SpanContourPos4d Implements IAdditionOperators IMultiplyOperators IDivisionOperators ICsvRowIo 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) Constructors SpanContourPos4d() Initializes a new instance of the SpanContourPos4d class public SpanContourPos4d() SpanContourPos4d(Polar3d, double) Initializes a new instance of the SpanContourPos4d class with specified polar coordinates and radial angle public SpanContourPos4d(Polar3d polar, double radialAngle_rad) Parameters polar Polar3d The polar coordinates radialAngle_rad double The radial angle in radians SpanContourPos4d(SpanContourPos4d) Initializes a new instance of the SpanContourPos4d class by copying another instance public SpanContourPos4d(SpanContourPos4d src) Parameters src SpanContourPos4d The source instance to copy from Properties CsvText Gets or sets the CSV text representation of this instance public string CsvText { get; set; } Property Value string CsvTitleText Gets the CSV title text for this instance public string CsvTitleText { get; } Property Value string Polar Gets or sets the polar coordinates (r, theta, z) public Polar3d Polar { get; set; } Property Value Polar3d RadialAngle_deg Gets or sets the radial angle in degrees public double RadialAngle_deg { get; set; } Property Value double RadialAngle_rad Gets or sets the radial angle in radians. The radial angle is the angle between surface and radial line. The radial line is the line vertical to the z-axis for side flute or vertical to the r-axis for bottom flute. public double RadialAngle_rad { get; set; } Property Value double StaticCsvTitleText Gets the static CSV title text for the class public static string StaticCsvTitleText { get; } Property Value string Operators operator +(SpanContourPos4d, SpanContourPos4d) Plus. public static SpanContourPos4d operator +(SpanContourPos4d a, SpanContourPos4d b) Parameters a SpanContourPos4d a b SpanContourPos4d b Returns SpanContourPos4d ContourSurfacePos4d(a.Polar+b.Polar,a.RadialAngle_rad+b.RadialAngle_rad) operator /(SpanContourPos4d, double) Get a new object from a scaled by 1/d. public static SpanContourPos4d operator /(SpanContourPos4d a, double d) Parameters a SpanContourPos4d a d double denominator Returns SpanContourPos4d result operator *(SpanContourPos4d, double) Scale a by s. public static SpanContourPos4d operator *(SpanContourPos4d a, double s) Parameters a SpanContourPos4d value s double scale Returns SpanContourPos4d ContourSurfacePos4d(a.Polar * s, a.RadialAngle_rad * s) operator -(SpanContourPos4d, SpanContourPos4d) Plus. public static SpanContourPos4d operator -(SpanContourPos4d a, SpanContourPos4d b) Parameters a SpanContourPos4d a b SpanContourPos4d b Returns SpanContourPos4d ContourSurfacePos4d(a.Polar - b.Polar, a.RadialAngle_rad - b.RadialAngle_rad)" }, "api/Hi.Milling.FluteContours.UniformFluting.html": { "href": "api/Hi.Milling.FluteContours.UniformFluting.html", "title": "Class UniformFluting | HiAPI-C# 2025", "summary": "Class UniformFluting Namespace Hi.Milling.FluteContours Assembly HiMech.dll A milling cutter's fluting built from one shared baseline contour repeated evenly around the cutter: every flute has the same geometry, spaced at equal angles. Use FreeFluting when the flutes need to be defined individually. public class UniformFluting : IFluting, IMakeXmlSource, IExpandToBox3d, IGetFluteNum, IUpdateByContent, IClearCache Inheritance object UniformFluting Implements IFluting IMakeXmlSource IExpandToBox3d IGetFluteNum IUpdateByContent IClearCache 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) Constructors UniformFluting() Initializes a new instance of the UniformFluting class. public UniformFluting() UniformFluting(XElement, string, IProgress, object[]) Ctor. public UniformFluting(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths progress IProgress Progress reporter for diagnostic messages emitted during construction. res object[] Additional optional resources Properties BaselineContourShiftAngle_deg Gets or sets the baseline contour shift angle in degrees. public double BaselineContourShiftAngle_deg { get; set; } Property Value double BaselineOneContour Gets or sets the baseline contour. public FluteContour BaselineOneContour { get; set; } Property Value FluteContour TrackNum Gets or sets the number of flutes this fluting repeats the baseline contour into. public int TrackNum { get; set; } Property Value int XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(IGetZrList) Creates a duplicate of this fluting with the specified ZR list host. public IFluting Duplicate(IGetZrList zrListHost) Parameters zrListHost IGetZrList The ZR list host to use for the duplicate Returns IFluting A new fluting instance 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 GetFluteContourList() Gets the list of flute contours that make up this fluting. public List GetFluteContourList() Returns List A list of flute contours. GetFluteNum() Gets the number of flutes. public int GetFluteNum() Returns int The number of flutes. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.Milling.FluteContours.html": { "href": "api/Hi.Milling.FluteContours.html", "title": "Namespace Hi.Milling.FluteContours | HiAPI-C# 2025", "summary": "Namespace Hi.Milling.FluteContours Classes ConstHelixSideContour Represents a constant helix side contour for milling cutters. FluteContour Represents a flute contour for milling tools. FluteContourUtil Provides utility methods for working with flute contours in milling tools. FreeFluting A milling cutter's fluting in which every flute is defined individually — each flute carries its own contour, so spacing, helix and rake need not repeat. Use UniformFluting when one baseline contour repeated evenly around the cutter is enough. FreeformBottomContour Represents a freeform bottom contour for milling tools, allowing arbitrary contour shapes. FreeformSideContour Represents a freeform side contour for milling tools, allowing arbitrary contour shapes. ShiftedWorkingContour Represents a working contour that has been shifted by a specified angle. This class wraps another working contour and applies an angular transformation to it. SideContourDisplayee Represents a displayable side contour. SlideBottomContour Represents a slide bottom contour for milling cutters. SpanContourPos4d Represents a position in 4D space (r, theta, z, radial angle) for contour spans UniformFluting A milling cutter's fluting built from one shared baseline contour repeated evenly around the cutter: every flute has the same geometry, spaced at equal angles. Use FreeFluting when the flutes need to be defined individually. Interfaces IBottomContour Represents a bottom flute contour for milling tools. IFluteNumSourceProperty Interface that requiring a FluteNumSource property. IFluting A milling cutter's fluting: the complete set of flute contours that do the cutting. Either one shared baseline repeated evenly around the cutter (UniformFluting) or one individually defined contour per flute (FreeFluting) — every flute is definable on its own. “Fluting” is the machining noun for a cutter's flute geometry and carries no size of its own, so it describes the flute set of a 4 mm end mill exactly as well as that of a large face mill. IGetFluteNum Provides a method to get the number of flutes. ISideContour Represents a side flute contour for milling tools. IWorkingContour Represents a working contour for cutting operations in milling tools. This interface is implemented by both side contours (ISideContour) and bottom contours (IBottomContour)." }, "api/Hi.Milling.IGetDiameter.html": { "href": "api/Hi.Milling.IGetDiameter.html", "title": "Interface IGetDiameter | HiAPI-C# 2025", "summary": "Interface IGetDiameter Namespace Hi.Milling Assembly HiGeom.dll Interface for objects that provide diameter information. public interface IGetDiameter 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 Diameter_mm Gets the diameter in millimeters. double Diameter_mm { get; } Property Value double" }, "api/Hi.Milling.IGetFluteHeight.html": { "href": "api/Hi.Milling.IGetFluteHeight.html", "title": "Interface IGetFluteHeight | HiAPI-C# 2025", "summary": "Interface IGetFluteHeight Namespace Hi.Milling Assembly HiGeom.dll Interface for objects that provide flute height information. public interface IGetFluteHeight 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 FluteHeight_mm Gets the height of the flute in millimeters. double FluteHeight_mm { get; } Property Value double" }, "api/Hi.Milling.IGetMillingGeomBrief.html": { "href": "api/Hi.Milling.IGetMillingGeomBrief.html", "title": "Interface IGetMillingGeomBrief | HiAPI-C# 2025", "summary": "Interface IGetMillingGeomBrief Namespace Hi.Milling Assembly HiGeom.dll Interface for retrieving milling geometry brief information. public interface IGetMillingGeomBrief 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) Methods GetMillingGeomBrief() Gets the milling geometry brief information. MillingGeomBrief GetMillingGeomBrief() Returns MillingGeomBrief The milling geometry brief information." }, "api/Hi.Milling.IGetRadialReliefAngle.html": { "href": "api/Hi.Milling.IGetRadialReliefAngle.html", "title": "Interface IGetRadialReliefAngle | HiAPI-C# 2025", "summary": "Interface IGetRadialReliefAngle Namespace Hi.Milling Assembly HiGeom.dll Interface for objects that provide radial relief angle information. public interface IGetRadialReliefAngle 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 RadialReliefAngle_rad Gets the radial relief angle in radians. double RadialReliefAngle_rad { get; } Property Value double" }, "api/Hi.Milling.IMillingGeomBriefAccessor.html": { "href": "api/Hi.Milling.IMillingGeomBriefAccessor.html", "title": "Interface IMillingGeomBriefAccessor | HiAPI-C# 2025", "summary": "Interface IMillingGeomBriefAccessor Namespace Hi.Milling Assembly HiGeom.dll Interface for accessing and modifying milling geometry brief information. public interface IMillingGeomBriefAccessor : IGetMillingGeomBrief Inherited Members IGetMillingGeomBrief.GetMillingGeomBrief() 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 MillingGeomBrief Gets or sets the milling geometry brief information. MillingGeomBrief MillingGeomBrief { get; set; } Property Value MillingGeomBrief" }, "api/Hi.Milling.MillingGeomBrief.html": { "href": "api/Hi.Milling.MillingGeomBrief.html", "title": "Class MillingGeomBrief | HiAPI-C# 2025", "summary": "Class MillingGeomBrief Namespace Hi.Milling Assembly HiGeom.dll Brief of milling geometry. public class MillingGeomBrief : IGetMillingGeomBrief, IGetQuantityByKey, IGetCsvDictionary Inheritance object MillingGeomBrief Implements IGetMillingGeomBrief IGetQuantityByKey IGetCsvDictionary 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) Constructors MillingGeomBrief() Ctor. public MillingGeomBrief() MillingGeomBrief(DVec3d, Vec3d, bool?, double, double, double, double) Ctor. public MillingGeomBrief(DVec3d cl, Vec3d movingDirection, bool? isTouched, double radialWidth, double axialDepth, double mrr_mm3ds, double chipThickness) Parameters cl DVec3d cutter location movingDirection Vec3d moving direction on Workpiece Coordinate isTouched bool? is touched radialWidth double radial width axialDepth double axial depth mrr_mm3ds double meterial removal rate mm3/s chipThickness double chip thickness Properties AxialDepth Axial depth. public double AxialDepth { get; set; } Property Value double ChipThickness Max chip thickness in mm. public double ChipThickness { get; set; } Property Value double Cl Cutter location. public DVec3d Cl { get; set; } Property Value DVec3d IsTouched Is touched. public bool? IsTouched { get; set; } Property Value bool? MovingDirectionOnWorkpieceCoordinate Moving direction on Workpiece Coordinate public Vec3d MovingDirectionOnWorkpieceCoordinate { get; set; } Property Value Vec3d Mrr_mm3ds Material removal rate. Unit: mm3/s. public double Mrr_mm3ds { get; set; } Property Value double RadialWidth Radial width. public double RadialWidth { get; set; } Property Value double Methods GetCsvDictionary() Get row dictionary. It suits for CSV output. public Dictionary GetCsvDictionary() Returns Dictionary csv row dictionary GetMillingGeomBrief() Gets the milling geometry brief information. public MillingGeomBrief GetMillingGeomBrief() Returns MillingGeomBrief The milling geometry brief information. GetQuantityByKey(string) Gets a quantity value associated with the specified key. public double GetQuantityByKey(string key) Parameters key string The key to look up Returns double The quantity value associated with the key GetQuantityDictionary() public Dictionary GetQuantityDictionary() Returns Dictionary SetByCsvDictionary(Dictionary, bool) Sets the properties of this object from a CSV dictionary. public void SetByCsvDictionary(Dictionary src, bool removeFromSource = false) Parameters src Dictionary The source dictionary containing property values as strings removeFromSource bool If true, removes the entries from the source dictionary after retrieving them" }, "api/Hi.Milling.MillingRemovalUtil.html": { "href": "api/Hi.Milling.MillingRemovalUtil.html", "title": "Class MillingRemovalUtil | HiAPI-C# 2025", "summary": "Class MillingRemovalUtil Namespace Hi.Milling Assembly HiMech.dll Utility for milling removal. public static class MillingRemovalUtil Inheritance object MillingRemovalUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetContoursOnToolRunningCoordinate(Substraction, MachineMotionStep) Gets contours on tool running coordinate from a subtraction. public static List> GetContoursOnToolRunningCoordinate(this Substraction substraction, MachineMotionStep machineStep) Parameters substraction Substraction The subtraction containing contact contours. machineStep MachineMotionStep The machining step with coordinate transformation. Returns List> List of contours on tool running coordinate. GetMrr_mm3ds(List>, Vec3d, double) Calculates the material removal rate in cubic millimeters per second. public static double GetMrr_mm3ds(List> contoursOnToolRunningCoordinate, Vec3d movingDirectionOnToolRunningCoordinate, double feedrate_mmds) Parameters contoursOnToolRunningCoordinate List> Contours on tool running coordinate. movingDirectionOnToolRunningCoordinate Vec3d Moving direction on tool running coordinate. feedrate_mmds double Feed rate in millimeters per second. Returns double Material removal rate in cubic millimeters per second." }, "api/Hi.Milling.MillingTools.MillingTool.html": { "href": "api/Hi.Milling.MillingTools.MillingTool.html", "title": "Class MillingTool | HiAPI-C# 2025", "summary": "Class MillingTool Namespace Hi.Milling.MillingTools Assembly HiMech.dll Represents a central stick milling tool that combines a holder and a cutter. public class MillingTool : IMachiningTool, IDisplayee, IExpandToBox3d, ITopo, IGetAsmb, IGetAnchor, IGetTopoIndex, IGetAnchoredDisplayeeList, IGetFletchBuckle, IMakeXmlSource, IAbstractNote, IDuplicate, IClearCache, IGetFluteNum Inheritance object MillingTool Implements IMachiningTool IDisplayee IExpandToBox3d ITopo IGetAsmb IGetAnchor IGetTopoIndex IGetAnchoredDisplayeeList IGetFletchBuckle IMakeXmlSource IAbstractNote IDuplicate IClearCache IGetFluteNum Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MillingToolUtil.GetFullH(IMachiningTool) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 MillingTool() Ctor. public MillingTool() MillingTool(XElement, string, string, IProgress) Initializes a new instance of the MillingTool class. public MillingTool(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing the tool configuration. baseDirectory string The base directory for resolving relative paths. relFile string The relative file path. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties AbstractNote Gets an abstract note describing the tool's dimensions and cutter. public string AbstractNote { get; } Property Value string Asmb Gets the assembly containing the tool components. public Asmb Asmb { get; } Property Value Asmb Cutter Gets the cutting tool. public ICutter Cutter { get; set; } Property Value ICutter CutterFile Gets or sets the file path of the cutter. public string CutterFile { get; set; } Property Value string ExposedCutterBendingPara_umdN Gets the parameter for exposed cutter bending in micrometers per Newton. Pure computation — deliberately uncached: a lazy cache on this shared object races with the parallel per-step force build; per-step session paths read the pair from MillingToolPhysicsPack instead. public double ExposedCutterBendingPara_umdN { get; } Property Value double ExposedCutterHeight_mm Gets or sets the exposed cutter height in millimeters. public double ExposedCutterHeight_mm { get; set; } Property Value double ExposedCutterZDeflectionPara_umdN Gets the parameter for exposed cutter Z-axis deflection in micrometers per Newton. Pure computation — see ExposedCutterBendingPara_umdN. public double ExposedCutterZDeflectionPara_umdN { get; } Property Value double Holder Gets or sets the tool holder. public IHolder Holder { get; set; } Property Value IHolder HolderFile Gets or sets the holder file path. public string HolderFile { get; set; } Property Value string Note Gets or sets a note for this machining tool. public string Note { get; set; } Property Value string ObservationAnchor Gets the tool anchor reference point. public Anchor ObservationAnchor { get; } Property Value Anchor ObservationAnchorReference Gets the tool observation anchor reference point. public MillingToolAnchorReference ObservationAnchorReference { get; set; } Property Value MillingToolAnchorReference ObservationHeightFromToolTip Gets the tool observation point relative to the reference. Pure computation (an Asmb walk) — deliberately uncached; per-step session paths read the value from MillingToolPhysicsPack. public double ObservationHeightFromToolTip { get; } Property Value double ObservationRingRadius_mm Obsoleted. Gets the tool observation reference point. public double ObservationRingRadius_mm { get; set; } Property Value double PreservedDistanceBetweenFluteAndSpindleNose_mm Gets or sets the preserved distance between flute and clamp in millimeters. public double PreservedDistanceBetweenFluteAndSpindleNose_mm { get; set; } Property Value double RelativeHeightFromObservationAnchor_mm Gets the tool observation point relative to the reference. public double RelativeHeightFromObservationAnchor_mm { get; set; } Property Value double SpindleBuckle Gets the motor-side buckle. public Anchor SpindleBuckle { get; } Property Value Anchor SpindleBuckleToToolTipLength Height For NC Compensation table and step number computation. Pure computation (an Asmb walk) — deliberately uncached: a lazy cache on this shared object races with concurrent readers; hot session paths read the value from MillingToolPhysicsPack (per step) or a run-scoped memo (CL parsing). public double SpindleBuckleToToolTipLength { get; } Property Value double ToolTip Gets the tool tip anchor point from the cutter. public Anchor ToolTip { get; } Property Value Anchor XName Initializes a new instance of the StickMachiningTool class from XML data. public static string XName { get; } Property Value string Methods AlignAnchorByExposedCutterHeight() Aligns the anchor by the exposed cutter height. public void AlignAnchorByExposedCutterHeight() ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 Remarks For display GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. public Anchor GetFletchBuckle() Returns Anchor buckle anchor GetFluteNum() Gets the number of flutes. public int GetFluteNum() Returns int MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.MillingTools.MillingToolAnchorReference.html": { "href": "api/Hi.Milling.MillingTools.MillingToolAnchorReference.html", "title": "Enum MillingToolAnchorReference | HiAPI-C# 2025", "summary": "Enum MillingToolAnchorReference Namespace Hi.Milling.MillingTools Assembly HiMech.dll Defines reference points for anchoring milling tools. public enum MillingToolAnchorReference 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 HolderAnc = 2 The holder anchor as the reference point. None = 0 No specific anchor reference point. SpindleBuckleAnc = 4 The spindle buckle anchor as the reference point. ToolTip = 1 The tool tip as the anchor reference point." }, "api/Hi.Milling.MillingTools.MillingToolEditorDisplayee.html": { "href": "api/Hi.Milling.MillingTools.MillingToolEditorDisplayee.html", "title": "Class MillingToolEditorDisplayee | HiAPI-C# 2025", "summary": "Class MillingToolEditorDisplayee Namespace Hi.Milling.MillingTools Assembly HiMech.dll Display host for a milling tool composed of a cutter and a holder. public class MillingToolEditorDisplayee : ITopoDisplayee, ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d, IClearCache Inheritance object MillingToolEditorDisplayee Implements ITopoDisplayee ITopo IGetAsmb IGetAnchoredDisplayeeList IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d IClearCache Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 HolderEditorDisplayee Gets the displayee for the holder. public HolderEditorDisplayee HolderEditorDisplayee { get; } Property Value HolderEditorDisplayee MillingCutterEditorDisplayee Gets the displayee for the milling cutter. public MillingCutterEditorDisplayee MillingCutterEditorDisplayee { get; } Property Value MillingCutterEditorDisplayee MillingTool Gets the current MillingTool instance. public MillingTool MillingTool { get; } Property Value MillingTool MillingToolGetter Gets or sets the delegate that provides the MillingTool instance. public Func MillingToolGetter { get; set; } Property Value Func ShowCutter Gets or sets whether to show the cutter. public bool ShowCutter { get; set; } Property Value bool ShowHolder Gets or sets whether to show the holder. public bool ShowHolder { get; set; } Property Value bool Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb." }, "api/Hi.Milling.MillingTools.MillingToolPhysicsPack.html": { "href": "api/Hi.Milling.MillingTools.MillingToolPhysicsPack.html", "title": "Class MillingToolPhysicsPack | HiAPI-C# 2025", "summary": "Class MillingToolPhysicsPack Namespace Hi.Milling.MillingTools Assembly HiMech.dll The scalar physics derivations of one tool (and one cutting-parameter set), computed once on a sequential boundary and frozen. The per-step force build, the sequential physics, and the step/shot writers read these values thousands to millions of times per play; the tool and cutter objects themselves expose them as deliberately uncached pure computations, so hot session paths read this pack instead — callers outside a session simply pass null and the pure computation runs on use. Owned per session by MachiningSession, keyed by tool id. A pack is never updated in place: the paths that change tool/cutter/para state invalidate the session's packs explicitly (run-op start, tool change — see MachiningSession.InvalidateToolPhysicsPacks), and IsStaleFor(IMachiningTool, ICuttingPara) re-keys on object replacement. public sealed record MillingToolPhysicsPack : IEquatable Inheritance object MillingToolPhysicsPack Implements IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 MillingToolPhysicsPack(IMachiningTool, ICuttingPara, double, double, double, double, double, double, double) The scalar physics derivations of one tool (and one cutting-parameter set), computed once on a sequential boundary and frozen. The per-step force build, the sequential physics, and the step/shot writers read these values thousands to millions of times per play; the tool and cutter objects themselves expose them as deliberately uncached pure computations, so hot session paths read this pack instead — callers outside a session simply pass null and the pure computation runs on use. Owned per session by MachiningSession, keyed by tool id. A pack is never updated in place: the paths that change tool/cutter/para state invalidate the session's packs explicitly (run-op start, tool change — see MachiningSession.InvalidateToolPhysicsPacks), and IsStaleFor(IMachiningTool, ICuttingPara) re-keys on object replacement. public MillingToolPhysicsPack(IMachiningTool Tool, ICuttingPara Para, double SpindleBuckleToToolTipLength, double ObservationHeightFromToolTip, double EffectiveCuttingDiameter_mm, double BendingPara_umdN, double ZDeflectionPara_umdN, double FakeRakeAngle_rad, double MinimumUncutChipThickness_mm) Parameters Tool IMachiningTool The tool the pack was built from. Para ICuttingPara The cutting-parameter set the para-dependent members were built from (may be null). SpindleBuckleToToolTipLength double See SpindleBuckleToToolTipLength. ObservationHeightFromToolTip double See ObservationHeightFromToolTip; NaN when the tool is not a MillingTool. EffectiveCuttingDiameter_mm double See EffectiveCuttingDiameter_mm; NaN without a MillingCutter. BendingPara_umdN double See ExposedCutterBendingPara_umdN; NaN when the deflection geometry is degenerate (the pure getter throws there instead — the pack stays buildable so geometry-only paths keep working). ZDeflectionPara_umdN double The pair member of BendingPara_umdN — see ExposedCutterZDeflectionPara_umdN. FakeRakeAngle_rad double The simplified (side/bottom averaged) rake angle; NaN without a MillingCutter. MinimumUncutChipThickness_mm double See GetMinimumUncutChipThickness_mm(ICuttingPara) for Para. Properties BendingPara_umdN See ExposedCutterBendingPara_umdN; NaN when the deflection geometry is degenerate (the pure getter throws there instead — the pack stays buildable so geometry-only paths keep working). public double BendingPara_umdN { get; init; } Property Value double EffectiveCuttingDiameter_mm See EffectiveCuttingDiameter_mm; NaN without a MillingCutter. public double EffectiveCuttingDiameter_mm { get; init; } Property Value double FakeRakeAngle_rad The simplified (side/bottom averaged) rake angle; NaN without a MillingCutter. public double FakeRakeAngle_rad { get; init; } Property Value double MinimumUncutChipThickness_mm See GetMinimumUncutChipThickness_mm(ICuttingPara) for Para. public double MinimumUncutChipThickness_mm { get; init; } Property Value double ObservationHeightFromToolTip See ObservationHeightFromToolTip; NaN when the tool is not a MillingTool. public double ObservationHeightFromToolTip { get; init; } Property Value double Para The cutting-parameter set the para-dependent members were built from (may be null). public ICuttingPara Para { get; init; } Property Value ICuttingPara SpindleBuckleToToolTipLength See SpindleBuckleToToolTipLength. public double SpindleBuckleToToolTipLength { get; init; } Property Value double Tool The tool the pack was built from. public IMachiningTool Tool { get; init; } Property Value IMachiningTool ZDeflectionPara_umdN The pair member of BendingPara_umdN — see ExposedCutterZDeflectionPara_umdN. public double ZDeflectionPara_umdN { get; init; } Property Value double Methods Build(IMachiningTool, ICuttingPara) Builds a pack from the tool's (and cutter's) pure computations. Call on a sequential boundary (session/play start, tool change) or ad hoc from a no-session caller that wants the values bundled. public static MillingToolPhysicsPack Build(IMachiningTool tool, ICuttingPara para) Parameters tool IMachiningTool The tool to derive from; null yields null. para ICuttingPara The cutting-parameter set for the para-dependent members; may be null. Returns MillingToolPhysicsPack The frozen pack, or null when tool is null. IsStaleFor(IMachiningTool, ICuttingPara) Whether this pack was built from different objects than the live ones — a replaced tool under the same id, or a swapped cutting para. In-place edits are not detected here; they are covered by the explicit invalidation points (MachiningSession.InvalidateToolPhysicsPacks). public bool IsStaleFor(IMachiningTool tool, ICuttingPara para) Parameters tool IMachiningTool The live tool to compare against. para ICuttingPara The live cutting-parameter set to compare against. Returns bool True when the pack must be rebuilt." }, "api/Hi.Milling.MillingTools.MillingToolUtil.html": { "href": "api/Hi.Milling.MillingTools.MillingToolUtil.html", "title": "Class MillingToolUtil | HiAPI-C# 2025", "summary": "Class MillingToolUtil Namespace Hi.Milling.MillingTools Assembly HiMech.dll Provides utility methods for working with milling tools. public static class MillingToolUtil Inheritance object MillingToolUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetFullH(IMachiningTool) Gets the full height of the milling tool. public static double GetFullH(this IMachiningTool millingTool) Parameters millingTool IMachiningTool The milling tool to measure. Returns double The height of the tool in the Z dimension." }, "api/Hi.Milling.MillingTools.html": { "href": "api/Hi.Milling.MillingTools.html", "title": "Namespace Hi.Milling.MillingTools | HiAPI-C# 2025", "summary": "Namespace Hi.Milling.MillingTools Classes MillingTool Represents a central stick milling tool that combines a holder and a cutter. MillingToolEditorDisplayee Display host for a milling tool composed of a cutter and a holder. MillingToolPhysicsPack The scalar physics derivations of one tool (and one cutting-parameter set), computed once on a sequential boundary and frozen. The per-step force build, the sequential physics, and the step/shot writers read these values thousands to millions of times per play; the tool and cutter objects themselves expose them as deliberately uncached pure computations, so hot session paths read this pack instead — callers outside a session simply pass null and the pure computation runs on use. Owned per session by MachiningSession, keyed by tool id. A pack is never updated in place: the paths that change tool/cutter/para state invalidate the session's packs explicitly (run-op start, tool change — see MachiningSession.InvalidateToolPhysicsPacks), and IsStaleFor(IMachiningTool, ICuttingPara) re-keys on object replacement. MillingToolUtil Provides utility methods for working with milling tools. Enums MillingToolAnchorReference Defines reference points for anchoring milling tools." }, "api/Hi.Milling.SpindleCapability.html": { "href": "api/Hi.Milling.SpindleCapability.html", "title": "Class SpindleCapability | HiAPI-C# 2025", "summary": "Class SpindleCapability Namespace Hi.Milling Assembly HiMech.dll Represents the capability of a spindle, including power, torque, and thermal characteristics. Internal Use Only public class SpindleCapability : IMakeXmlSource, INameNote Inheritance object SpindleCapability Implements IMakeXmlSource INameNote 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) Constructors SpindleCapability() Ctor. public SpindleCapability() SpindleCapability(XElement, string, params object[]) Initializes a new instance of the SpindleCapability class. public SpindleCapability(XElement src, string baseDirectory, params object[] res) Parameters src XElement The XML element containing spindle data. baseDirectory string The base directory for resolving relative paths. res object[] Additional resolution parameters. Properties DryRunFrictionPowerCoefficient_mWdrpm Dry Run Friction Power Coefficient. unit is mW/rpm. DryRunFrictionPower = DryRunFrictionPowerCoefficient * S. public double DryRunFrictionPowerCoefficient_mWdrpm { get; set; } Property Value double Remarks default value 4.82 is estimated by paper: The Friction of Radially Loaded Hybrid Spindle Bearings under High Speeds. Figure 13. At 9k rpm, Torque 0.046Nm. DryRunWindagePowerCoefficient_pWdrpm3 Dry Run Windage Power Coefficient. unit is pW/(rpm^3). DryRunWindagePower = DryRunWindagePowerCoefficient * (S^3). public double DryRunWindagePowerCoefficient_pWdrpm3 { get; set; } Property Value double Remarks default value 90 is estimated by paper: CFD Study on the Windage Power Loss of High Speed Gear. rpm W 5000 12 6000 20 7000 29 EnergyEfficiency Energy Conversion Efficiency. Where is Ouput/Input. public double EnergyEfficiency { get; set; } Property Value double GearShiftSpindleSpeed_cycleds Crossover speed. Gear Shift speed. spindle speed at shifting point between low gear mode and high gear mode. null means there is no gear shift mechanism. public double? GearShiftSpindleSpeed_cycleds { get; set; } Property Value double? GearShiftSpindleSpeed_rpm Gear shift spindle speed in RPM. public double? GearShiftSpindleSpeed_rpm { get; set; } Property Value double? InfInsistentSpindleSpeedToPower_cycleDs_kW SpindleSpeed(cycle/sec) to Power(kW) at infinte workable time. public List InfInsistentSpindleSpeedToPower_cycleDs_kW { get; set; } Property Value List InfInsistentSpindleSpeedToTorque_cycleDs_Nm SpindleSpeed(cycle/sec) to Torque(Nm) at 100% insistent ratio. public List InfInsistentSpindleSpeedToTorque_cycleDs_Nm { get; set; } Property Value List Name Name. public string Name { get; set; } Property Value string Note Note. public string Note { get; set; } Property Value string WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW WorkableDuration To SpindleSpeedToPowerContours. The dictionary is workable time (min) to (x:SpindleSpeed(cycle/sec), y:Power(kW)) public Dictionary> WorkableDurationToSpindleSpeedPowerContoursDictionary_min_cycleDs_kW { get; set; } Property Value Dictionary> WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm WorkableDuration To SpindleSpeedToTorqueContours. The dictionary is workable time (min) to (x:SpindleSpeed(cycle/sec), y:Torque(Nm)). public Dictionary> WorkableDurationToSpindleSpeedTorqueContoursDictionary_min_cycleDs_Nm { get; set; } Property Value Dictionary> WorkingTemperatureUpperBoundary_C Upper boundary of working temperature in Celsius. public double WorkingTemperatureUpperBoundary_C { get; set; } Property Value double WorkingTemperatureUpperBoundary_K Upper boundary of working temperature in Kelvin. public double WorkingTemperatureUpperBoundary_K { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods GetHeatPara(double) Gets thermal parameters for the spindle at a given speed. Internal Use Only public (double HeatCapacity_JdK, double ConvectionPara_WdK) GetHeatPara(double spindleSpeed_cycleDs) Parameters spindleSpeed_cycleDs double Spindle speed in cycles per second Returns (double HeatCapacity_JdK, double ConvectionPara_WdK) A tuple containing heat capacity and convection parameter MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.Milling.html": { "href": "api/Hi.Milling.html", "title": "Namespace Hi.Milling | HiAPI-C# 2025", "summary": "Namespace Hi.Milling Classes MillingGeomBrief Brief of milling geometry. MillingRemovalUtil Utility for milling removal. SpindleCapability Represents the capability of a spindle, including power, torque, and thermal characteristics. Internal Use Only Interfaces IGetDiameter Interface for objects that provide diameter information. IGetFluteHeight Interface for objects that provide flute height information. IGetMillingGeomBrief Interface for retrieving milling geometry brief information. IGetRadialReliefAngle Interface for objects that provide radial relief angle information. IMillingGeomBriefAccessor Interface for accessing and modifying milling geometry brief information." }, "api/Hi.MillingForces.Fittings.CuttingParaUtil.html": { "href": "api/Hi.MillingForces.Fittings.CuttingParaUtil.html", "title": "Class CuttingParaUtil | HiAPI-C# 2025", "summary": "Class CuttingParaUtil Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Utility methods for working with cutting parameters. public static class CuttingParaUtil Inheritance object CuttingParaUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ToRakeFaceCuttingPara(ICuttingPara) Converts various cutting parameter types to a RakeFaceCuttingPara. This function is for adjusting obsoleted design as some milling parameter formats are not used anymore. public static RakeFaceCuttingPara3d ToRakeFaceCuttingPara(this ICuttingPara millingPara) Parameters millingPara ICuttingPara The cutting parameter to convert. Returns RakeFaceCuttingPara3d A RakeFaceCuttingPara instance, or null if conversion is not possible." }, "api/Hi.MillingForces.Fittings.ICuttingPara.html": { "href": "api/Hi.MillingForces.Fittings.ICuttingPara.html", "title": "Interface ICuttingPara | HiAPI-C# 2025", "summary": "Interface ICuttingPara Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Interface of milling parameter. The milling parameter is trainable. public interface ICuttingPara : IGetCuttingPara, IMakeXmlSource, INameNote Inherited Members IGetCuttingPara.GetCuttingPara() IMakeXmlSource.MakeXmlSource(string, string, bool) INameNote.Name INameNote.Note Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Properties ElementNum Element number. int ElementNum { get; } Property Value int FluteFormNum Flute form number. int FluteFormNum { get; } Property Value int Methods CloneTemplate() Clone template. ICuttingPara CloneTemplate() Returns ICuttingPara clone template GenUnitParas() Generate the ICuttingPara set used by parameter training. The list length equals ElementNum; entry i corresponds to the element of index i (see SetElementByIndex). List GenUnitParas() Returns List training parameters. GetElementByIndex(int) Get element by index. For parameter training. double GetElementByIndex(int elementIndex) Parameters elementIndex int element index Returns double value SetElementByIndex(int, double) Set element by index. For parameter training. void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int element index v double value ToTemplateXElement() Get XElement for templating. XElement ToTemplateXElement() Returns XElement" }, "api/Hi.MillingForces.Fittings.IGetCuttingPara.html": { "href": "api/Hi.MillingForces.Fittings.IGetCuttingPara.html", "title": "Interface IGetCuttingPara | HiAPI-C# 2025", "summary": "Interface IGetCuttingPara Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Interface of GetCuttingPara(). public interface IGetCuttingPara : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods GetCuttingPara() Get ICuttingPara. ICuttingPara GetCuttingPara() Returns ICuttingPara ICuttingPara" }, "api/Hi.MillingForces.Fittings.SampleCategory.html": { "href": "api/Hi.MillingForces.Fittings.SampleCategory.html", "title": "Class SampleCategory | HiAPI-C# 2025", "summary": "Class SampleCategory Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a category for milling force samples with step and division information. public class SampleCategory Inheritance object SampleCategory Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 SampleCategory() Initializes a new instance of the SampleCategory class. public SampleCategory() SampleCategory(int, int, SampleFlag) Initializes a new instance of the SampleCategory class with specified step index, division index, and sample flag. public SampleCategory(int stepIndex, int localDivisionIndex, SampleFlag sampleDataEnum) Parameters stepIndex int The step index. localDivisionIndex int The local division index. sampleDataEnum SampleFlag The sample data flag. Properties LocalDivisionIndex Gets or sets the local division index. public int LocalDivisionIndex { get; set; } Property Value int SampleDataEnum Gets or sets the sample data flag. public SampleFlag SampleDataEnum { get; set; } Property Value SampleFlag SampleInstance Gets or sets the sample instance. public SampleInstance SampleInstance { get; set; } Property Value SampleInstance StepIndex Gets or sets the step index. public int StepIndex { get; set; } Property Value int Methods ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MillingForces.Fittings.SampleFlag.html": { "href": "api/Hi.MillingForces.Fittings.SampleFlag.html", "title": "Enum SampleFlag | HiAPI-C# 2025", "summary": "Enum SampleFlag Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Flags representing different types of force and moment samples in milling operations. [Flags] public enum SampleFlag Extension Methods InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) MaskUtil.GetMaskedValue(T, T, bool) MaskUtil.SetMask(ref T, T, bool) SampleFlagUtil.IsForce(SampleFlag) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Fields Fx = 1 Force in X direction. Fy = 2 Force in Y direction. Fz = 4 Force in Z direction. Mx = 8 Moment around X axis. My = 16 Moment around Y axis. Mz = 32 Moment around Z axis. Virtual = 0 Virtual or no sample." }, "api/Hi.MillingForces.Fittings.SampleFlagUtil.html": { "href": "api/Hi.MillingForces.Fittings.SampleFlagUtil.html", "title": "Class SampleFlagUtil | HiAPI-C# 2025", "summary": "Class SampleFlagUtil Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Utility methods for working with sample flags. public static class SampleFlagUtil Inheritance object SampleFlagUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods IsForce(SampleFlag) Determines if the sample flag represents a force component (Fx, Fy, or Fz). public static bool IsForce(this SampleFlag src) Parameters src SampleFlag The sample flag to check. Returns bool True if the flag represents a force component; otherwise, false." }, "api/Hi.MillingForces.Fittings.SampleInstance.html": { "href": "api/Hi.MillingForces.Fittings.SampleInstance.html", "title": "Class SampleInstance | HiAPI-C# 2025", "summary": "Class SampleInstance Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a sample instance with step and local division indices for milling force analysis. public class SampleInstance : IEquatable Inheritance object SampleInstance Implements IEquatable Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 SampleInstance() Initializes a new instance of the SampleInstance class. public SampleInstance() SampleInstance(int, int) Initializes a new instance of the SampleInstance class with specified step and local division indices. public SampleInstance(int stepIndex, int localDivisionIndex) Parameters stepIndex int The step index. localDivisionIndex int The local division index. Properties LocalDivisionIndex Gets or sets the local division index. public int LocalDivisionIndex { get; set; } Property Value int StepIndex Gets or sets the step index. public int StepIndex { get; set; } Property Value int Methods Equals(SampleInstance) Indicates whether the current object is equal to another object of the same type. public bool Equals(SampleInstance other) Parameters other SampleInstance An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MillingForces.Fittings.TimeForce.html": { "href": "api/Hi.MillingForces.Fittings.TimeForce.html", "title": "Class TimeForce | HiAPI-C# 2025", "summary": "Class TimeForce Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a force measurement at a specific time point. public class TimeForce Inheritance object TimeForce 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) Constructors TimeForce(double, Vec3d) Initializes a new instance of the TimeForce class. public TimeForce(double time_sec, Vec3d force_N) Parameters time_sec double Time in seconds. force_N Vec3d Force in Newtons. Properties Force_N Gets or sets the force vector in Newtons. public Vec3d Force_N { get; set; } Property Value Vec3d Time_s Gets or sets the time in seconds. public double Time_s { get; set; } Property Value double" }, "api/Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html": { "href": "api/Hi.MillingForces.Fittings.TimeForceFrequencyDomain.html", "title": "Class TimeForceFrequencyDomain | HiAPI-C# 2025", "summary": "Class TimeForceFrequencyDomain Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents force data in the frequency domain after Fourier transformation. public class TimeForceFrequencyDomain Inheritance object TimeForceFrequencyDomain 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 AmpXs Gets or sets the amplitude values for each frequency component. public double[] AmpXs { get; set; } Property Value double[] PhaseXs Gets or sets the phase values for each frequency component. public double[] PhaseXs { get; set; } Property Value double[] SamplingTimeInterval_s Gets or sets the sampling time interval in seconds. public double SamplingTimeInterval_s { get; set; } Property Value double SamplingTime_s Gets or sets the total sampling time in seconds. public double SamplingTime_s { get; set; } Property Value double" }, "api/Hi.MillingForces.Fittings.TimeForceSeries.html": { "href": "api/Hi.MillingForces.Fittings.TimeForceSeries.html", "title": "Class TimeForceSeries | HiAPI-C# 2025", "summary": "Class TimeForceSeries Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a time series of force measurements. public class TimeForceSeries Inheritance object TimeForceSeries 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 TimeForceList TimeForce list. The time is sorted in ascending order. public List TimeForceList { get; set; } Property Value List Methods FourierTransform(int, double, out double[], out double[]) Performs Fourier transform on the force data in the specified direction. public void FourierTransform(int dir, double samplingTimeInterval_s, out double[] amplitudes, out double[] phases) Parameters dir int The direction index (0=X, 1=Y, 2=Z) for the force component to transform. samplingTimeInterval_s double The sampling time interval in seconds. amplitudes double[] Output array of amplitude values for each frequency component. phases double[] Output array of phase values for each frequency component. ReadCsv(string) Reads time-force data from a CSV file. public void ReadCsv(string file) Parameters file string Path to the CSV file containing time-force data." }, "api/Hi.MillingForces.Fittings.TimeForceUtil.html": { "href": "api/Hi.MillingForces.Fittings.TimeForceUtil.html", "title": "Class TimeForceUtil | HiAPI-C# 2025", "summary": "Class TimeForceUtil Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Utility class for reading and processing time-based force measurement data. public static class TimeForceUtil Inheritance object TimeForceUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ReadCsv(string) Reads time-force data from a CSV file. public static List ReadCsv(string file) Parameters file string The path to the CSV file containing time-force data. Returns List A list of TimeForce objects containing the parsed data. The CSV file should have at least 4 columns: Column 1: Time in seconds Column 2: X-component of force in Newtons Column 3: Y-component of force in Newtons Column 4: Z-component of force in Newtons Remarks The method: Skips the first line (assumed to be headers) Parses each subsequent line into time and force components Validates that each line has at least 4 numeric values Creates a TimeForce object for each valid line" }, "api/Hi.MillingForces.Fittings.TimeVsForceSeries.html": { "href": "api/Hi.MillingForces.Fittings.TimeVsForceSeries.html", "title": "Class TimeVsForceSeries | HiAPI-C# 2025", "summary": "Class TimeVsForceSeries Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a time series of force measurements with compensation capabilities. public class TimeVsForceSeries Inheritance object TimeVsForceSeries 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 CompensatedTimeVsForce Gets the force data with offset compensation applied. public SortedList CompensatedTimeVsForce { get; } Property Value SortedList ForceOffset Gets the force offset calculated as the average force in the zero zone. public Vec3d ForceOffset { get; } Property Value Vec3d OriginalTimeVsForce Gets or sets the original time-force data pairs, where the key is time and the value is the force vector. public SortedList OriginalTimeVsForce { get; set; } Property Value SortedList ZeroZoneTimeBegin Gets or sets the start time of the zero force zone used for offset calculation. public double ZeroZoneTimeBegin { get; set; } Property Value double ZeroZoneTimeEnd Gets or sets the end time of the zero force zone used for offset calculation. public double ZeroZoneTimeEnd { get; set; } Property Value double Methods ReadCsv(string) Reads force data from a CSV file. public void ReadCsv(string file) Parameters file string The path to the CSV file containing time-force data." }, "api/Hi.MillingForces.Fittings.TimeVsTorqueSeries.html": { "href": "api/Hi.MillingForces.Fittings.TimeVsTorqueSeries.html", "title": "Class TimeVsTorqueSeries | HiAPI-C# 2025", "summary": "Class TimeVsTorqueSeries Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a time series of torque measurements with compensation capabilities. public class TimeVsTorqueSeries Inheritance object TimeVsTorqueSeries 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 CompensatedTimeVsTorque Gets the torque data with offset compensation applied. public SortedList CompensatedTimeVsTorque { get; } Property Value SortedList OriginalTimeVsTorque Gets or sets the original time-torque data pairs, where the key is time and the value is the torque magnitude. public SortedList OriginalTimeVsTorque { get; set; } Property Value SortedList TorqueOffset Gets the torque offset calculated as the average torque in the zero zone. public double TorqueOffset { get; } Property Value double ZeroZoneTimeBegin Gets or sets the start time of the zero torque zone used for offset calculation. public double ZeroZoneTimeBegin { get; set; } Property Value double ZeroZoneTimeEnd Gets or sets the end time of the zero torque zone used for offset calculation. public double ZeroZoneTimeEnd { get; set; } Property Value double Methods ReadCsv(string) Reads torque data from a CSV file. public void ReadCsv(string file) Parameters file string The path to the CSV file containing time-torque data." }, "api/Hi.MillingForces.Fittings.TrainingSample.html": { "href": "api/Hi.MillingForces.Fittings.TrainingSample.html", "title": "Class TrainingSample | HiAPI-C# 2025", "summary": "Class TrainingSample Namespace Hi.MillingForces.Fittings Assembly HiMech.dll Represents a training sample for milling force prediction models. public class TrainingSample Inheritance object TrainingSample Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 Category Gets or sets the category information for this sample. public SampleCategory Category { get; set; } Property Value SampleCategory InputArray Gets or sets the input feature array for the training sample. public double[] InputArray { get; set; } Property Value double[] Output Gets or sets the output value according to the angle offset. public double Output { get; set; } Property Value double Methods NormalizeByInput() public void NormalizeByInput() Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj ToString() Returns a string representation of the training sample. public override string ToString() Returns string A string containing the category, output, and input array values." }, "api/Hi.MillingForces.Fittings.html": { "href": "api/Hi.MillingForces.Fittings.html", "title": "Namespace Hi.MillingForces.Fittings | HiAPI-C# 2025", "summary": "Namespace Hi.MillingForces.Fittings Classes CuttingParaUtil Utility methods for working with cutting parameters. SampleCategory Represents a category for milling force samples with step and division information. SampleFlagUtil Utility methods for working with sample flags. SampleInstance Represents a sample instance with step and local division indices for milling force analysis. TimeForce Represents a force measurement at a specific time point. TimeForceFrequencyDomain Represents force data in the frequency domain after Fourier transformation. TimeForceSeries Represents a time series of force measurements. TimeForceUtil Utility class for reading and processing time-based force measurement data. TimeVsForceSeries Represents a time series of force measurements with compensation capabilities. TimeVsTorqueSeries Represents a time series of torque measurements with compensation capabilities. TrainingSample Represents a training sample for milling force prediction models. Interfaces ICuttingPara Interface of milling parameter. The milling parameter is trainable. IGetCuttingPara Interface of GetCuttingPara(). Enums SampleFlag Flags representing different types of force and moment samples in milling operations." }, "api/Hi.MillingForces.IGetMillingForce.html": { "href": "api/Hi.MillingForces.IGetMillingForce.html", "title": "Interface IGetMillingForce | HiAPI-C# 2025", "summary": "Interface IGetMillingForce Namespace Hi.MillingForces Assembly HiMech.dll Interface of GetMillingForce(). public interface IGetMillingForce 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) Methods GetMillingForce() Get MillingForce. MillingForce GetMillingForce() Returns MillingForce MillingForce" }, "api/Hi.MillingForces.IMillingForceAccessor.html": { "href": "api/Hi.MillingForces.IMillingForceAccessor.html", "title": "Interface IMillingForceAccessor | HiAPI-C# 2025", "summary": "Interface IMillingForceAccessor Namespace Hi.MillingForces Assembly HiMech.dll Interface of MillingForce. public interface IMillingForceAccessor : IGetMillingForce Inherited Members IGetMillingForce.GetMillingForce() 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 MillingForce Milling force. MillingForce MillingForce { get; set; } Property Value MillingForce" }, "api/Hi.MillingForces.MillingForce.html": { "href": "api/Hi.MillingForces.MillingForce.html", "title": "Class MillingForce | HiAPI-C# 2025", "summary": "Class MillingForce Namespace Hi.MillingForces Assembly HiMech.dll Milling force. public class MillingForce : IGetFeedrate, IGetSpindleSpeed, IGetMillingForce, IGetQuantityByKey, IGetCsvDictionary, IWriteBin Inheritance object MillingForce Implements IGetFeedrate IGetSpindleSpeed IGetMillingForce IGetQuantityByKey IGetCsvDictionary IWriteBin Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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) Remarks The data list such as CuttingForcesToToolOnToolRunningCoordinate in this class is in sequence of time. Constructors MillingForce(BinaryReader) Initializes a new instance of the MillingForce class from binary data. public MillingForce(BinaryReader reader) Parameters reader BinaryReader The binary reader containing the serialized milling force data. Fields DefaultRotationDivisionNum Gets the default number of divisions for one complete rotation. public const int DefaultRotationDivisionNum = 36 Field Value int Remarks This value determines the resolution of force calculations during tool rotation. A higher value provides more detailed force analysis but requires more computational resources. Properties AbsAvgForce Absolute average force. public double AbsAvgForce { get; } Property Value double AbsAxialPower_W Gets the absolute axial power in watts. public double AbsAxialPower_W { get; } Property Value double AvgAbsMomentsAboutSpindle_Nm Gets the average absolute moments about spindle on the spindle sensor coordinate system. public Vec3d AvgAbsMomentsAboutSpindle_Nm { get; } Property Value Vec3d Remarks Calculates the average of absolute values for each component (X, Y, Z) of the moments about the spindle. AvgAxialTorque_Nm Get avg axial torque in N*m. The observation point is at tool tip. The torque is taken by tool. public double AvgAxialTorque_Nm { get; } Property Value double AvgBendingMomentsAboutSpindle_Nm Gets the average bending moments about spindle in Newton-meters. public double? AvgBendingMomentsAboutSpindle_Nm { get; } Property Value double? Remarks Calculates the magnitude of the average bending moment by taking the square root of the sum of squares of the X and Y components of the average absolute moments. AvgContactEdgeLengthPerFlute_mm Gets the average contact edge length per flute in millimeters. public double AvgContactEdgeLengthPerFlute_mm { get; } Property Value double AvgForceToToolOnToolRunningCoordinate Avg cutting force to tool on tool running coordinate. public Vec3d AvgForceToToolOnToolRunningCoordinate { get; } Property Value Vec3d AvgForceToWorkpieceOnWorkpieceCoordinate Avg cutting force on workpiece coordinate. public Vec3d AvgForceToWorkpieceOnWorkpieceCoordinate { get; } Property Value Vec3d AvgIntersectedContactArea_mm2 contact area along cutter outside contact point to circle center direction. The average is for each rotation angle. This property is for computing heat transfer. public double AvgIntersectedContactArea_mm2 { get; } Property Value double AvgMomentToToolAboutObservationPointOnToolRunningZero_Nm Gets the average moment to tool about observation point on tool running zero in Newton-meters. public Vec3d AvgMomentToToolAboutObservationPointOnToolRunningZero_Nm { get; } Property Value Vec3d AxialPowerTakenByWorkpiece_W Axial Power that the spindle has to create due to axial torque. The empowered item is workpiece. The fulcrum is at the tool tip. Unit is Watt. public double AxialPowerTakenByWorkpiece_W { get; } Property Value double CdnTransformFromToolRunningZeroToWorkpieceGeom Tool running coordinate to workpiece geom coordinate. public Mat4d CdnTransformFromToolRunningZeroToWorkpieceGeom { get; } Property Value Mat4d ChipVolume_mm3 Gets the chip volume in cubic millimeters. public double ChipVolume_mm3 { get; } Property Value double CuttingForcesToToolOnToolRunningCoordinate Cutting forces on tool running coordinate. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate { get; } Property Value List CuttingForcesToToolOnWorkpieceCoodinate Cutting forces on workpiece coordinate. The forced item is tool. public List CuttingForcesToToolOnWorkpieceCoodinate { get; } Property Value List CuttingForcesToWorkpieceOnWorkpieceCoordinate Cutting forces on workpiece coordinate. The forced item is workpiece. public List CuttingForcesToWorkpieceOnWorkpieceCoordinate { get; } Property Value List CyclePeriod_s Gets the cycle period in seconds, calculated as 60 / SpindleSpeed_rpm. public double CyclePeriod_s { get; } Property Value double DAngle_deg Delta angle in degree. The value is 360 / RotationDivisionNum. public double DAngle_deg { get; } Property Value double DAngle_rad Delta angle in radian. The value is 2 * pi / RotationDivisionNum. public double DAngle_rad { get; } Property Value double Feedrate_mmds Gets the feed rate in millimeters per second. public double Feedrate_mmds { get; } Property Value double FluteNum Gets the number of flutes on the cutting tool. public int FluteNum { get; } Property Value int FrictionPower_W friction power to workpiece. the unit is watt. public double FrictionPower_W { get; } Property Value double IndexAtMaxCuttingForce Gets the index at which the maximum cutting force occurs. public int IndexAtMaxCuttingForce { get; } Property Value int IsCw Gets a value indicating whether the spindle rotation is clockwise. public bool IsCw { get; } Property Value bool KinematicPowerDivDensity_Wmm3dg Gets the kinematic power divided by density in watts per cubic millimeter per degree. public double KinematicPowerDivDensity_Wmm3dg { get; } Property Value double MaxAbsForce Gets the maximum absolute force magnitude. public double MaxAbsForce { get; } Property Value double MaxAbsForceSlope_NdDeg Absolute max force changed per degree. public double MaxAbsForceSlope_NdDeg { get; } Property Value double MaxAbsMomentAboutObservationPoint_Nm Gets the maximum absolute moment about observation point in Newton-meters. public double MaxAbsMomentAboutObservationPoint_Nm { get; } Property Value double MaxAxialTorqueToToolByToolTip_Nm Get max axial torque in N*m. The observation point is at tool tip. The torque is taken by tool. public double MaxAxialTorqueToToolByToolTip_Nm { get; } Property Value double MaxForceToToolOnToolRunningCoordinate Max cutting force on tool running coordinate. public Vec3d MaxForceToToolOnToolRunningCoordinate { get; } Property Value Vec3d MaxMomentToToolAboutObservationPointOnToolRunningZero_Nm Gets the maximum moment to tool about observation point on tool running zero in Newton-meters. public Vec3d MaxMomentToToolAboutObservationPointOnToolRunningZero_Nm { get; } Property Value Vec3d MaxMomentToToolAboutObservationPointOnWorkpiceGeom_Nm Gets the maximum moment to tool about observation point on workpiece geometry in Newton-meters. public Vec3d MaxMomentToToolAboutObservationPointOnWorkpiceGeom_Nm { get; } Property Value Vec3d MinAbsMomentAboutObservationPoint_Nm Gets the minimum absolute moment about the observation point in Newton-meters. public double MinAbsMomentAboutObservationPoint_Nm { get; } Property Value double MomentsAboutObservationPointOnObservationCoordinate_Nm Gets the moments about observation point on observation coordinate in Newton-meters. public List MomentsAboutObservationPointOnObservationCoordinate_Nm { get; } Property Value List MomentsAboutObservationPointOnToolRunningZero_Nm Gets the minimum absolute moment about the observation point in Newton-meters. public List MomentsAboutObservationPointOnToolRunningZero_Nm { get; } Property Value List MomentsAboutSpindle_Nm Gets the moments about spindle on the spindle sensor coordinate system. public List MomentsAboutSpindle_Nm { get; } Property Value List Remarks The moments are calculated by transforming the moments about the observation point to the spindle sensor coordinate system using the current rotation angle. MomentsToToolAboutObservationPointOnSpindleRotationZero_Nm Gets the moments to tool about observation point on spindle rotation zero in Newton-meters. public List MomentsToToolAboutObservationPointOnSpindleRotationZero_Nm { get; } Property Value List MomentsToToolAboutToolTipOnToolRunningZero_Nm Moments on tool running coordinate in N*m. The fulcrum is at the coordinate zero. The moment is taken by tool. The size is RotationDivisionNum. public List MomentsToToolAboutToolTipOnToolRunningZero_Nm { get; } Property Value List ObservationPositionFromToolTip Specific fulcrum position relative coordinate zero on tool running coordinate. public Vec3d ObservationPositionFromToolTip { get; } Property Value Vec3d PloughForcesOnTr plough force on tool running coordinate. The force is taken by tool. In sequence of time. public List PloughForcesOnTr { get; } Property Value List PowerWithoutFriction_W Gets the power without friction in watts, calculated as axial power taken by workpiece minus friction power. public double PowerWithoutFriction_W { get; } Property Value double RotationAngleInterval Gets the rotation angle interval in radians between divisions. The value is 2 * pi / RotationDivisionNum. public double RotationAngleInterval { get; } Property Value double RotationDivisionNum Gets the number of divisions for one complete rotation. public int RotationDivisionNum { get; } Property Value int ShearForcesOnTr shear forces on tool running coordinate. The force is taken by tool. In sequence of time. public List ShearForcesOnTr { get; } Property Value List SpindleSpeed_radds Gets the spindle speed in radians per second. public double SpindleSpeed_radds { get; } Property Value double SpindleSpeed_rpm Gets the spindle speed in revolutions per minute. public double SpindleSpeed_rpm { get; } Property Value double StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; set; } Property Value int ToothArcDuration_s Gets the duration of one tooth arc pass in seconds, calculated as CyclePeriod_s / FluteNum. public double ToothArcDuration_s { get; } Property Value double TransformFromWorkpieceGeomToObservationPoint Gets the transformation matrix from workpiece geometric coordinate system to the observation point. public Mat4d TransformFromWorkpieceGeomToObservationPoint { get; } Property Value Mat4d Methods DynamicBuildExtension() Internal use. Build extended data. In single thread, no need to use the function. In multi thread, call it before going to un-safe area. public void DynamicBuildExtension() GetCsvDictionary() Get row dictionary. It suits for CSV output. public Dictionary GetCsvDictionary() Returns Dictionary csv row dictionary GetFeedrate_mmds() Gets the program feedrate in millimeters per second. public double GetFeedrate_mmds() Returns double Feedrate in mm/s GetForceBriefDictionary(bool) Gets a dictionary containing force-related quantities. public Dictionary GetForceBriefDictionary(bool isIncludingWave = false) Parameters isIncludingWave bool If true, includes wave-related force data. Returns Dictionary A dictionary mapping quantity names to their values. GetForceToToolOnToolRunningCoordinateCsvString() Gets the force to tool on tool running coordinate as a CSV string. public string GetForceToToolOnToolRunningCoordinateCsvString() Returns string A CSV string representation of the forces. GetForceToWorkpieceOnWorkpieceCoordinateCsvString() Gets the force to workpiece on workpiece coordinate as a CSV string. public string GetForceToWorkpieceOnWorkpieceCoordinateCsvString() Returns string A CSV string representation of the forces. GetMillingForce() Get MillingForce. public MillingForce GetMillingForce() Returns MillingForce MillingForce GetMomentsAboutObservationPointOnToolRunningCoordinate_Nm(double) Gets moments about observation point on tool running coordinate in Newton-meters for a specific observation height. public List GetMomentsAboutObservationPointOnToolRunningCoordinate_Nm(double observationHeightFromToolTip) Parameters observationHeightFromToolTip double The height from tool tip to observation point in millimeters Returns List List of moment vectors in Newton-meters GetMomentsAboutObservationPointOnToolRunningZero_Nm(Vec3d) Gets moments about observation point on tool running zero coordinate system in Newton-meters. public List GetMomentsAboutObservationPointOnToolRunningZero_Nm(Vec3d observationPosFromToolTip) Parameters observationPosFromToolTip Vec3d The position vector from tool tip to observation point Returns List List of moment vectors in Newton-meters GetMomentsToToolAboutObservationPointOnSpindleRotationZeroCsvString() Gets the moments to tool about observation point on spindle rotation zero as a CSV string. public string GetMomentsToToolAboutObservationPointOnSpindleRotationZeroCsvString() Returns string A CSV string representation of the moments. GetQuantityByKey(string) Gets a quantity value associated with the specified key. public double GetQuantityByKey(string key) Parameters key string The key to look up Returns double The quantity value associated with the key GetSpindleDirection() Gets the spindle rotation direction. public SpindleDirection GetSpindleDirection() Returns SpindleDirection The spindle direction (clockwise, counterclockwise, or stopped) GetSpindleSpeed_radds() Gets the spindle speed in radians per second. public double GetSpindleSpeed_radds() Returns double Spindle speed in rad/s ToCuttingForcesString() Converts the cutting forces to a string representation. public string ToCuttingForcesString() Returns string A string representation of the cutting forces. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to" }, "api/Hi.MillingForces.MillingForceLicense.html": { "href": "api/Hi.MillingForces.MillingForceLicense.html", "title": "Class MillingForceLicense | HiAPI-C# 2025", "summary": "Class MillingForceLicense Namespace Hi.MillingForces Assembly HiMech.dll Provides license information and management for the milling force calculation functionality. public static class MillingForceLicense Inheritance object MillingForceLicense Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties LicenseType Gets the current license type for milling force calculations. public static LicenseType LicenseType { get; } Property Value LicenseType RemainedStep Gets the number of remaining steps available in the current license. public static int RemainedStep { get; } Property Value int" }, "api/Hi.MillingForces.MillingForceLuggage.html": { "href": "api/Hi.MillingForces.MillingForceLuggage.html", "title": "Class MillingForceLuggage | HiAPI-C# 2025", "summary": "Class MillingForceLuggage Namespace Hi.MillingForces Assembly HiMech.dll Represents a container for milling force data and calculations. public class MillingForceLuggage Inheritance object MillingForceLuggage 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) Constructors MillingForceLuggage() Initializes a new instance of the MillingForceLuggage class. public MillingForceLuggage() MillingForceLuggage(BinaryReader) Initializes a new instance of the MillingForceLuggage class from a binary reader. public MillingForceLuggage(BinaryReader reader) Parameters reader BinaryReader The binary reader containing the milling force data. Properties CuttingForcesToToolOnToolRunningCoordinate_N Cutting forces on tool running coordinate. The forced item is tool. public List CuttingForcesToToolOnToolRunningCoordinate_N { get; } Property Value List MomentsToToolAboutToolTipOnToolRunningCoordinate_Nm Moments on tool running coordinate in N*m. The fulcrum is at the coordinate zero. The moment is taken by tool. The size is RotationDivisionNum. public List MomentsToToolAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value List PloughForcesOnTr plough force on tool running coordinate. The force is taken by tool. In sequence of time. public List PloughForcesOnTr { get; } Property Value List RotationDivisionNum Gets the number of divisions for one complete rotation. public int RotationDivisionNum { get; } Property Value int ShearForcesOnTr shear forces on tool running coordinate. The force is taken by tool. In sequence of time. public List ShearForcesOnTr { get; } Property Value List StepIndex Step index. For database saving. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; set; } Property Value int Methods GetCuttingForcesToToolOnWorkpieceCoodinate_N(Mat4d) Cutting forces on workpiece coordinate. The forced item is tool. public List GetCuttingForcesToToolOnWorkpieceCoodinate_N(Mat4d CdnTransformFromToolRunningZeroToWorkpieceGeom) Parameters CdnTransformFromToolRunningZeroToWorkpieceGeom Mat4d Returns List GetCuttingForcesToWorkpieceOnProgramCoordinate_N(Mat4d) Cutting forces on workpiece coordinate. The forced item is workpiece. public List GetCuttingForcesToWorkpieceOnProgramCoordinate_N(Mat4d cdnTransformFromToolRunningToProgram) Parameters cdnTransformFromToolRunningToProgram Mat4d Returns List GetCuttingForcesToWorkpieceOnProgramCoordinate_N(MachineMotionStep) Gets the cutting forces to workpiece on program coordinate in Newtons. public List GetCuttingForcesToWorkpieceOnProgramCoordinate_N(MachineMotionStep machineStep) Parameters machineStep MachineMotionStep The machining step to get forces for Returns List List of force vectors in Newtons GetForceToToolOnToolRunningCoordinateCsvString(MachineMotionStep) Gets the force to tool on tool running coordinate as a CSV string. public string GetForceToToolOnToolRunningCoordinateCsvString(MachineMotionStep machineStep) Parameters machineStep MachineMotionStep The machining step to get forces for. Returns string A CSV string representation of the forces. GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep) Gets the force to workpiece on program coordinate as a CSV string. public string GetForceToWorkpieceOnProgramCoordinateCsvString(MachineMotionStep machineStep) Parameters machineStep MachineMotionStep The machining step to get forces for. Returns string A CSV string representation of the forces. GetMomentsAboutAnchorOnToolRunningCoordinate_Nm(IMachiningTool, MillingToolPhysicsPack) Gets the moments about anchor on tool running coordinate in Newton-meters. public List GetMomentsAboutAnchorOnToolRunningCoordinate_Nm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The machining tool to calculate moments for. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the observation height from the tool on use. Returns List A list of moment vectors. GetMomentsAboutToolTipOnSpindleRotationCoordinate_Nm() Gets the moments about tool tip on spindle rotation coordinate in Newton-meters. public List GetMomentsAboutToolTipOnSpindleRotationCoordinate_Nm() Returns List A list of moment vectors. GetMomentsOnToolRunningCoordinate_Nm(Vec3d) Get moments to tool. public List GetMomentsOnToolRunningCoordinate_Nm(Vec3d observationPosFromToolTip) Parameters observationPosFromToolTip Vec3d Returns List GetMomentsOnToolRunningCoordinate_Nm(double) Gets the moments on the tool running coordinate system at a specified height from the tool tip. public List GetMomentsOnToolRunningCoordinate_Nm(double observationHeightFromToolTip) Parameters observationHeightFromToolTip double The height from the tool tip where moments are calculated. Returns List A list of moment vectors in the tool running coordinate system. GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(IMachiningTool, MillingToolPhysicsPack) Get Moments To Tool About Observation Point On Spindle Rotation Coordinate. Unit is Newton-meter. public List GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The machining tool to calculate moments for. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the observation height from the tool on use. Returns List GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(double) Get Moments To Tool About Observation Point On Spindle Rotation Coordinate, with the observation height supplied directly — for a caller that resolved the height once and reads many luggage instances. Unit is Newton-meter. public List GetMomentsToToolAboutObservationPointOnSpindleRotationCoordinate_Nm(double observationHeightFromToolTip) Parameters observationHeightFromToolTip double The observation height from the tool tip in millimeters. Returns List GetMomentsToToolOnSpindleRotationZeroCsvString(IMachiningTool, MachineMotionStep, MillingPhysicsBrief) Gets the moments to tool on spindle rotation zero as a CSV string. public string GetMomentsToToolOnSpindleRotationZeroCsvString(IMachiningTool machiningTool, MachineMotionStep machineStep, MillingPhysicsBrief brief) Parameters machiningTool IMachiningTool The machining tool. machineStep MachineMotionStep The machining step to get moments for. brief MillingPhysicsBrief The rake face physics brief. Returns string A CSV string representation of the moments. GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool, MillingToolPhysicsPack) Gets the tool tip deflection on the tool running coordinate system. public List GetTipDeflectionOnToolRunningCoordinateList_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool for which to calculate deflections. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the deflection parameters from the tool on use. Returns List A list of deflection vectors in millimeters in the tool running coordinate system. GetYieldingStressRatio(IMachiningTool) Gets the yielding stress ratio for the given machining tool. public double GetYieldingStressRatio(IMachiningTool millingTool) Parameters millingTool IMachiningTool The machining tool to calculate the stress ratio for. Returns double The yielding stress ratio, or NaN when it cannot be evaluated — non-milling cutter, missing flute material, or no beam section outside the tip zone. Never a fake-safe 0. NoCut(int) Builds a luggage representing a physically-computed “no cut” state (paired with NoCut(int)): the three per-rotation force lists are each filled with Zero of length rotationDivisionNum. StepIndex is left at default; the caller assigns it. public static MillingForceLuggage NoCut(int rotationDivisionNum) Parameters rotationDivisionNum int Length of each per-rotation list. Returns MillingForceLuggage ToCuttingForcesString() Converts the cutting forces to a string representation. public string ToCuttingForcesString() Returns string A string representation of the cutting forces. WriteBin(BinaryWriter) public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter" }, "api/Hi.MillingForces.MillingForceUtil.html": { "href": "api/Hi.MillingForces.MillingForceUtil.html", "title": "Class MillingForceUtil | HiAPI-C# 2025", "summary": "Class MillingForceUtil Namespace Hi.MillingForces Assembly HiMech.dll Utility class for milling force calculations and related operations. public static class MillingForceUtil Inheritance object MillingForceUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Properties EnableNativeMillingPhysics Whether the physics runs on the native (core.dll) kernels. Default is true, and in shipping builds the native kernel is the only physics implementation: setting this to false requires the managed reference implementation (the non-shipping HiMech.PhysicsRef assembly, registered at startup by dev/test hosts) and throws InvalidOperationException without it — failing at configuration time rather than on every step of a play. Both implementations produce the same results. Process-global like RotationDivisionNum. public static bool EnableNativeMillingPhysics { get; set; } Property Value bool PressureEvaluationDepth_mm For avoid unstable form floating error. public static double PressureEvaluationDepth_mm { get; set; } Property Value double RotationDivisionNum Division number of a spindle cycle. public static int RotationDivisionNum { get; set; } Property Value int Methods GetMillingFoce(ICuttingPara, IMachiningTool, MachineMotionStep, LayerMillingEngagement, out MillingPhysicsBrief, out MillingForceLuggage, double, bool, MillingToolPhysicsPack) Calculates the milling forces for a given machining operation public static void GetMillingFoce(ICuttingPara millingPara, IMachiningTool millingTool, MachineMotionStep machineStep, LayerMillingEngagement engagement, out MillingPhysicsBrief brief, out MillingForceLuggage luggage, double trialClippingHeight_mm, bool enableCalculatingReliefColliding, MillingToolPhysicsPack physicsPack = null) Parameters millingPara ICuttingPara The cutting parameters for the milling operation millingTool IMachiningTool The machining tool used for the operation machineStep MachineMotionStep The machining step information engagement LayerMillingEngagement Layer milling engagement parameters brief MillingPhysicsBrief Output parameter for brief physics information luggage MillingForceLuggage Output parameter for milling force data trialClippingHeight_mm double The available height for cutting height optimization search in millimeters. The value should be always equal or smaller than the cutting depth from the engagement enableCalculatingReliefColliding bool enable calculating effect of relief colliding physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool and millingPara; null (or a pack keyed to a different para) computes the gate values from the tool on use." }, "api/Hi.MillingForces.MillingPhysicsBrief.html": { "href": "api/Hi.MillingForces.MillingPhysicsBrief.html", "title": "Class MillingPhysicsBrief | HiAPI-C# 2025", "summary": "Class MillingPhysicsBrief Namespace Hi.MillingForces Assembly HiMech.dll Instant Physics brief on rake face for milling. public class MillingPhysicsBrief Inheritance object MillingPhysicsBrief 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) Constructors MillingPhysicsBrief() Ctor. public MillingPhysicsBrief() MillingPhysicsBrief(int) Initializes a new instance of the MillingPhysicsBrief class with a specified rotation division number. public MillingPhysicsBrief(int rotationDivisionNum) Parameters rotationDivisionNum int The number of divisions for rotation calculations. Properties AvgAbsForce_N Gets the average absolute force in Newtons. public double AvgAbsForce_N { get; } Property Value double AvgAbsMomentAboutSensorVec3d_Nm Gets the average absolute moment about the sensor as a 3D vector in Newton-meters. public Vec3d AvgAbsMomentAboutSensorVec3d_Nm { get; } Property Value Vec3d AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm Gets the average absolute moment about the sensor on spindle rotation coordinate in Newton-meters. public double AvgAbsMomentXAboutSensorOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm Gets the average absolute moment about the tool tip on spindle rotation coordinate in Newton-meters. public double AvgAbsMomentXAboutToolTipOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgAbsTorqueOnSpindleRotationCoordinate_Nm Gets the average of abs spindle axial torque on Spindle rotation coordinate. public double AvgAbsTorqueOnSpindleRotationCoordinate_Nm { get; } Property Value double AvgContactEdgeLengthPerFlute_mm Gets the average contact edge length per flute in millimeters. public double AvgContactEdgeLengthPerFlute_mm { get; } Property Value double AvgForceToToolOnToolRunningCoordinate_N Avg cutting force to tool on tool running coordinate. public Vec3d AvgForceToToolOnToolRunningCoordinate_N { get; } Property Value Vec3d AvgMomentAboutSensor_Nm Gets the average moment about the sensor in Newton-meters. public double AvgMomentAboutSensor_Nm { get; } Property Value double AvgMomentAboutToolTipOnProgramCoordinate_Nm Gets the average moment about the tool tip on program coordinate in Newton-meters. public Vec3d AvgMomentAboutToolTipOnProgramCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm Gets the average moment about the tool tip on tool running coordinate in Newton-meters. public Vec3d AvgMomentAboutToolTipOnToolRunningCoordinate_Nm { get; } Property Value Vec3d AvgMomentAboutToolTip_Nm Gets the average moment about the tool tip in the program coordinate system, measured in Newton-meters. public double AvgMomentAboutToolTip_Nm { get; } Property Value double AvgMomentXyAboutObservationPoint Gets the average moment about the tool tip in the program coordinate system, measured in Newton-meters. public double AvgMomentXyAboutObservationPoint { get; } Property Value double AvgRadialForcePerFluteToTool_N Gets the average radial force per flute applied to the tool in Newtons. public double AvgRadialForcePerFluteToTool_N { get; } Property Value double ChipMass_g Gets or sets the chip mass in grams. public double ChipMass_g { get; } Property Value double ChipThickness_mm Gets or sets the actual chip thickness in millimeters after cutting. public double ChipThickness_mm { get; } Property Value double ChipVolume_mm3 ChipVolume_mm3 per flute. public double ChipVolume_mm3 { get; } Property Value double ContinueSpindlePowerRatio Spindle Torque Ratio from spindle power capability on infinite insistency boundary. public double ContinueSpindlePowerRatio { get; } Property Value double ContinueSpindleTorqueRatio Spindle Torque Ratio from spindle torque capability on infinite insistency boundary. public double ContinueSpindleTorqueRatio { get; } Property Value double DeltaTipDeflectionOnToolRunningCoordinate_mm Gets the delta tip deflection on tool running coordinate in millimeters. public Vec3d DeltaTipDeflectionOnToolRunningCoordinate_mm { get; } Property Value Vec3d FrictionPower_W friction power takes by workpiece per cycle. the unit is watt. public double FrictionPower_W { get; } Property Value double IsReliefFaceCollided Gets a value indicating whether the relief face is collided. public bool? IsReliefFaceCollided { get; } Property Value bool? MaxAbsForce_N Gets the maximum absolute force in Newtons. public double MaxAbsForce_N { get; } Property Value double MaxAxialTorqueOnToolRunningCoordinateZero_Nm Gets the maximum axial torque at the tool running coordinate origin in Newton-meters. public double MaxAxialTorqueOnToolRunningCoordinateZero_Nm { get; } Property Value double MaxCompetingCuttingForceOnToolRunningCoordinate_N Gets the maximum competing cutting force on tool running coordinate in Newtons. This represents the second-strongest force during the cutting cycle. public Vec3d MaxCompetingCuttingForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxForceOnToolRunningCoordinate_N Gets the maximum force on the tool running coordinate in Newtons. public Vec3d MaxForceOnToolRunningCoordinate_N { get; } Property Value Vec3d MaxMomentAboutSensor_Nm Gets the maximum moment about the sensor in Newton-meters. public double MaxMomentAboutSensor_Nm { get; } Property Value double MaxMomentAboutToolTip_Nm Gets the maximum moment about the tool tip in Newton-meters. public double MaxMomentAboutToolTip_Nm { get; } Property Value double MaxSpindlePowerRatio Spindle Torque Ratio from max spindle power capability. public double MaxSpindlePowerRatio { get; } Property Value double MaxSpindleTorqueRatio Spindle Torque Ratio from max spindle torque capability. public double MaxSpindleTorqueRatio { get; } Property Value double RakeFaceCycleAvgContactArea_mm2 contact area along cutter outside contact point to circle center direction. The average is for each rotation angle. This property is for computing heat transfer. public double RakeFaceCycleAvgContactArea_mm2 { get; } Property Value double ReliefFaceCollidingSpeed_mmds The negative value means there is no relief face collision. public double? ReliefFaceCollidingSpeed_mmds { get; } Property Value double? RotationAngleInterval_deg Delta angle in degree. The value is 360 / RotationDivisionNum. public double RotationAngleInterval_deg { get; } Property Value double RotationAngleInterval_rad Delta angle in radian. The value is 2 * pi / RotationDivisionNum. public double RotationAngleInterval_rad { get; } Property Value double RotationDivisionNum Gets the number of divisions used for rotation calculations. public int RotationDivisionNum { get; } Property Value int UncutChipThickness_mm Gets or sets the uncut chip thickness in millimeters. public double UncutChipThickness_mm { get; } Property Value double WorkpiecePlasticDepth_mm Positive value for compression. Negative value for tension. public double WorkpiecePlasticDepth_mm { get; } Property Value double YieldingStressRatio Gets the yielding stress ratio. public double YieldingStressRatio { get; } Property Value double Methods BuildNonSeqExtension(IMachiningTool, WorkpieceMaterial, SpindleCapability, SpindleSpeedCache, MachineMotionStep, MillingForceLuggage, MillingToolPhysicsPack) Internal use. Build extended data. In single thread, no need to use the function. In multi thread, call it before going to un-safe area. public void BuildNonSeqExtension(IMachiningTool millingTool, WorkpieceMaterial workpieceMaterial, SpindleCapability spindleCapability, SpindleSpeedCache spindleSpeedCache, MachineMotionStep machineStep, MillingForceLuggage luggage, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool workpieceMaterial WorkpieceMaterial spindleCapability SpindleCapability spindleSpeedCache SpindleSpeedCache machineStep MachineMotionStep luggage MillingForceLuggage physicsPack MillingToolPhysicsPack GetAbsAxialPower_W() Gets the absolute axial power in Watts. public double GetAbsAxialPower_W() Returns double Absolute axial power in Watts. GetAvgForceToWorkpieceOnProgramCoordinate(MachineMotionStep) Avg cutting force on workpiece coordinate. public Vec3d GetAvgForceToWorkpieceOnProgramCoordinate(MachineMotionStep machineStep) Parameters machineStep MachineMotionStep Returns Vec3d GetAxialPowerTakenByWorkpiece_W() Gets the axial power taken by workpiece in Watts. public double GetAxialPowerTakenByWorkpiece_W() Returns double Axial power taken by workpiece in Watts. GetDeflectionTransformOnWorkpieceGeomCoordinate(IMachiningTool, WorkpieceMaterial, MachineMotionStep, Func, MillingToolPhysicsPack) Gets the deflection transformation matrix in the workpiece geometric coordinate system. public Mat4d GetDeflectionTransformOnWorkpieceGeomCoordinate(IMachiningTool millingTool, WorkpieceMaterial workpieceMaterial, MachineMotionStep machineStep, Func luggageFunc, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool. workpieceMaterial WorkpieceMaterial The workpiece material. machineStep MachineMotionStep The machining step. luggageFunc Func Function to get the milling force luggage. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the tool's scalar derivations on use. Returns Mat4d The deflection transformation matrix. GetIndexAtMaxCuttingForce() Gets the index at which the maximum cutting force occurs. public int GetIndexAtMaxCuttingForce() Returns int The index of the maximum cutting force. GetInputSpindlePower_W(SpindleCapability) Gets the input spindle power in Watts. public double GetInputSpindlePower_W(SpindleCapability spindleCapability) Parameters spindleCapability SpindleCapability The spindle capability information. Returns double Input spindle power in Watts. GetMaxAbsForceSlope_NdDeg(MachiningToolHouse, WorkpieceMaterial, MachineMotionStep, Func) Absolute max force changed per degree. public double GetMaxAbsForceSlope_NdDeg(MachiningToolHouse toolHouse, WorkpieceMaterial workpieceMaterial, MachineMotionStep machineStep, Func luggageFunc) Parameters toolHouse MachiningToolHouse workpieceMaterial WorkpieceMaterial machineStep MachineMotionStep luggageFunc Func Returns double GetMaxBottomEdgeDeflectionOnToolRunningCoordinate_mm(IMachiningTool, WorkpieceMaterial, MachineMotionStep, Func, MillingToolPhysicsPack) Gets the maximum deflection of the bottom edge in the tool running coordinate system. public Vec3d GetMaxBottomEdgeDeflectionOnToolRunningCoordinate_mm(IMachiningTool millingTool, WorkpieceMaterial workpieceMaterial, MachineMotionStep machineStep, Func luggageFunc, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool to get the deflection for. workpieceMaterial WorkpieceMaterial The workpiece material. machineStep MachineMotionStep The machining step. luggageFunc Func Function to get the milling force luggage. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the tool's scalar derivations on use. Returns Vec3d The maximum deflection vector in millimeters. GetMaxDeflectionTransformOnToolRunningCoordinate(IMachiningTool, WorkpieceMaterial, MachineMotionStep, Func, MillingToolPhysicsPack) GetDeflectionTransformationByTipMovementOnToolRunningCoordinate public Mat4d GetMaxDeflectionTransformOnToolRunningCoordinate(IMachiningTool millingTool_, WorkpieceMaterial workpieceMaterial, MachineMotionStep machineStep, Func luggageFunc, MillingToolPhysicsPack physicsPack = null) Parameters millingTool_ IMachiningTool workpieceMaterial WorkpieceMaterial machineStep MachineMotionStep luggageFunc Func physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool_; null computes the tool's scalar derivations on use. Returns Mat4d GetMaxTipDeflectionOnToolRunningCoordinate_mm(IMachiningTool, MillingToolPhysicsPack) Gets the maximum deflection of the tool tip in the tool running coordinate system. public Vec3d GetMaxTipDeflectionOnToolRunningCoordinate_mm(IMachiningTool millingTool, MillingToolPhysicsPack physicsPack = null) Parameters millingTool IMachiningTool The milling tool to get the deflection for. physicsPack MillingToolPhysicsPack The frozen per-session physics pack of millingTool; null computes the tool's scalar derivations on use. Returns Vec3d The maximum deflection vector in millimeters, or null when it cannot be computed: no tool, or no maximum tool force resolved yet — the force is filled lazily by the force pass, so a brief handed back before (or without) that pass carries none. Callers treat null as “no deflection known” (e.g. StepFeedSolver.BuildCompensation falls back to Zero, i.e. no compensation). NoCut(int) Builds a brief representing a physically-computed “no cut” state — i.e. EnablePhysics=true but the step has no engagement (IsTouched=false). This is semantically distinct from a null brief which means “physics was not computed at all”. All forces, moments, ratios, chip dimensions and deflections are zero; relief-face colliding speed is set to a negative sentinel so IsReliefFaceCollided returns false rather than null. public static MillingPhysicsBrief NoCut(int rotationDivisionNum) Parameters rotationDivisionNum int The rotation division count this brief reports. Returns MillingPhysicsBrief PowerWithoutFriction_W() Gets the power without friction in watts, calculated as axial power taken by workpiece minus friction power. public double PowerWithoutFriction_W() Returns double" }, "api/Hi.MillingForces.PhysicsUtil.html": { "href": "api/Hi.MillingForces.PhysicsUtil.html", "title": "Class PhysicsUtil | HiAPI-C# 2025", "summary": "Class PhysicsUtil Namespace Hi.MillingForces Assembly HiMech.dll Provides utility methods for physics calculations in milling operations. public static class PhysicsUtil Inheritance object PhysicsUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString()" }, "api/Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html": { "href": "api/Hi.MillingForces.ProfileMillingParas.IGetLocalProfileMillingPara.html", "title": "Interface IGetLocalProfileMillingPara | HiAPI-C# 2025", "summary": "Interface IGetLocalProfileMillingPara Namespace Hi.MillingForces.ProfileMillingParas Assembly HiMech.dll Interface of getting LocalProfileMillingPara. public interface IGetLocalProfileMillingPara 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) Methods GetMillingPara() Get LocalProfileMillingPara. LocalProfileMillingPara GetMillingPara() Returns LocalProfileMillingPara LocalProfileMillingPara" }, "api/Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html": { "href": "api/Hi.MillingForces.ProfileMillingParas.LocalProfileMillingPara.html", "title": "Class LocalProfileMillingPara | HiAPI-C# 2025", "summary": "Class LocalProfileMillingPara Namespace Hi.MillingForces.ProfileMillingParas Assembly HiMech.dll Milling parameter of altintas model. public class LocalProfileMillingPara : IEquatable, IMakeXmlSource, IGetLocalProfileMillingPara, ICsvRowIo Inheritance object LocalProfileMillingPara Implements IEquatable IMakeXmlSource IGetLocalProfileMillingPara ICsvRowIo Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 LocalProfileMillingPara() Ctor. public LocalProfileMillingPara() LocalProfileMillingPara(Vec3d, Vec3d) Ctor. public LocalProfileMillingPara(Vec3d shearPara, Vec3d ploughPara) Parameters shearPara Vec3d shear milling parameter. (x,y,z)=(Ksr,Kst,Ksa) — the Ks convention ploughPara Vec3d plough milling parameter. (x,y,z)=(Kpr,Kpt,Kpa) — the Kp convention LocalProfileMillingPara(LocalProfileMillingPara) Copy constructor. public LocalProfileMillingPara(LocalProfileMillingPara srcPara) Parameters srcPara LocalProfileMillingPara Source parameter to copy from. LocalProfileMillingPara(double, double, double, double, double, double) Constructor with specific milling parameters. public LocalProfileMillingPara(double Krc, double Ktc, double Kac, double Kre, double Kte, double Kae) Parameters Krc double Radial shear coefficient. Ktc double Tangential shear coefficient. Kac double Axial shear coefficient. Kre double Radial plough coefficient. Kte double Tangential plough coefficient. Kae double Axial plough coefficient. LocalProfileMillingPara(XElement) Ctor by XML. public LocalProfileMillingPara(XElement src) Parameters src XElement XML Fields Zero Gets a LocalProfileMillingPara instance with all parameters set to zero. public static LocalProfileMillingPara Zero Field Value LocalProfileMillingPara Properties AA7075 Gets milling parameters for AA7075 aluminum alloy. public static LocalProfileMillingPara AA7075 { get; } Property Value LocalProfileMillingPara Al6061T6 Milling parameters for Al6061T6 material. public static LocalProfileMillingPara Al6061T6 { get; } Property Value LocalProfileMillingPara Al6061T6_ Milling parameters for Al6061T6 material (older calibration set, superseded by Al6061T6). public static LocalProfileMillingPara Al6061T6_ { get; } Property Value LocalProfileMillingPara Al6061T6_R0p5 Milling parameters for Al6061T6 material with 0.5mm radius. public static LocalProfileMillingPara Al6061T6_R0p5 { get; } Property Value LocalProfileMillingPara CsvText Csv text. public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. public string CsvTitleText { get; } Property Value string Inconel718 Gets milling parameters for Inconel 718 material. public static LocalProfileMillingPara Inconel718 { get; } Property Value LocalProfileMillingPara Kp Coefficient of (Kpr,Kpt,Kpa). public Vec3d Kp { get; set; } Property Value Vec3d Kpa Coefficient of axial plough force. public double Kpa { get; set; } Property Value double Kpr Coefficient of radial plough force. public double Kpr { get; set; } Property Value double Kpt Coefficient of tangential plough force. public double Kpt { get; set; } Property Value double Ks Coefficient of (Ksr,Kst,Ksa). public Vec3d Ks { get; set; } Property Value Vec3d Ksa Coefficient of axial shear force. public double Ksa { get; set; } Property Value double Ksr Coefficient of radial shear force. public double Ksr { get; set; } Property Value double Kst Coefficient of tangential shear force. public double Kst { get; set; } Property Value double NaN Gets a LocalProfileMillingPara instance with all parameters set to NaN (Not a Number). public static LocalProfileMillingPara NaN { get; } Property Value LocalProfileMillingPara S45C_ColumnEnd Gets milling parameters for S45C material with column end configuration. public static LocalProfileMillingPara S45C_ColumnEnd { get; } Property Value LocalProfileMillingPara SS304 Milling parameters for SS304 stainless steel. public static LocalProfileMillingPara SS304 { get; } Property Value LocalProfileMillingPara SS304_R0 Gets milling parameters for SS304 stainless steel with no radius (R0). public static LocalProfileMillingPara SS304_R0 { get; } Property Value LocalProfileMillingPara SS304_R0p5 Gets milling parameters for SS304 stainless steel with 0.5mm radius (R0.5) and 4 flutes. public static LocalProfileMillingPara SS304_R0p5 { get; } Property Value LocalProfileMillingPara SS304_R3 Gets milling parameters for SS304 stainless steel with 3mm radius (R3) and 4 flutes. public static LocalProfileMillingPara SS304_R3 { get; } Property Value LocalProfileMillingPara Steel17_4PH Milling parameters for Steel 17-4PH material. public static LocalProfileMillingPara Steel17_4PH { get; } Property Value LocalProfileMillingPara Ti6Al4V Gets milling parameters for Ti6Al4V material. public static LocalProfileMillingPara Ti6Al4V { get; } Property Value LocalProfileMillingPara Ti6Al4V_Altintas2001 Gets milling parameters for Ti6Al4V material based on Altintas 2001 research. public static LocalProfileMillingPara Ti6Al4V_Altintas2001 { get; } Property Value LocalProfileMillingPara XName Name for XML IO. public static string XName { get; } Property Value string Methods Equals(LocalProfileMillingPara) Indicates whether the current object is equal to another object of the same type. public bool Equals(LocalProfileMillingPara other) Parameters other LocalProfileMillingPara An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetElementByIndex(RtaMillingParaKey) Gets the parameter value by the specified key. public double GetElementByIndex(RtaMillingParaKey key) Parameters key RtaMillingParaKey The parameter key to retrieve. Returns double The parameter value corresponding to the key. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetMillingPara() Get LocalProfileMillingPara. public LocalProfileMillingPara GetMillingPara() Returns LocalProfileMillingPara LocalProfileMillingPara MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(RtaMillingParaKey, double) Sets the parameter value for the specified key. public void SetElementByIndex(RtaMillingParaKey key, double v) Parameters key RtaMillingParaKey The parameter key to set. v double The value to set. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html": { "href": "api/Hi.MillingForces.ProfileMillingParas.ProfileMillingParaMap.html", "title": "Class ProfileMillingParaMap | HiAPI-C# 2025", "summary": "Class ProfileMillingParaMap Namespace Hi.MillingForces.ProfileMillingParas Assembly HiMech.dll Represents a mapping of milling parameters for profile milling operations. This class manages cutting parameters for both side and bottom milling operations. public class ProfileMillingParaMap : ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote Inheritance object ProfileMillingParaMap Implements ICuttingPara IGetCuttingPara IMakeXmlSource INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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 ProfileMillingParaMap(LocalProfileMillingPara, LocalProfileMillingPara, bool) Ctor for single LocalProfileMillingPara. public ProfileMillingParaMap(LocalProfileMillingPara sidePara, LocalProfileMillingPara bottomPara = null, bool containUpperSide = false) Parameters sidePara LocalProfileMillingPara milling parameter on side bottomPara LocalProfileMillingPara milling parameter on bottom containUpperSide bool Whether to include upper side parameters ProfileMillingParaMap(ProfileMillingParaMap) Copy ctor. public ProfileMillingParaMap(ProfileMillingParaMap src) Parameters src ProfileMillingParaMap src ProfileMillingParaMap(int, int, int, bool) Initializes a new instance of the ProfileMillingParaMap class with specified dimensions. public ProfileMillingParaMap(int fluteNum, int yDivisionNum, int zDivisionNum, bool isUpperSideContained = false) Parameters fluteNum int The number of flutes. yDivisionNum int The number of divisions in Y direction. zDivisionNum int The number of divisions in Z direction. isUpperSideContained bool Whether to include the upper side of the milling profile. ProfileMillingParaMap(XElement, string, bool) Initializes a new instance of the ProfileMillingParaMap class from XML data. public ProfileMillingParaMap(XElement src, string baseDirectory, bool isRtaVersion) Parameters src XElement The XML element containing the parameter data. baseDirectory string The base directory for resolving relative paths. isRtaVersion bool Whether the data is in RTA format. Properties BottomShearParas Gets the bottom shear parameters array. Each element contains cutting coefficients for each flute. public Vec3d[] BottomShearParas { get; } Property Value Vec3d[] ElementNum Gets the total number of elements in the parameter map. public int ElementNum { get; } Property Value int FluteFormNum Gets the number of flute forms in the parameter map. The number should be 1 or be equal to the flute number of the cutter. public int FluteFormNum { get; } Property Value int IsUpperSideContained Gets a value indicating whether the upper side of the milling profile is included in calculations. public bool IsUpperSideContained { get; } Property Value bool Name Gets or sets the name of the parameter map. public string Name { get; set; } Property Value string Note Gets or sets additional notes or descriptions for the parameter map. public string Note { get; set; } Property Value string PloughPara Gets the ploughing force coefficients (Kpr, Kpt, Kpa) for the entire tool. public Vec3d PloughPara { get; } Property Value Vec3d SideShearParas Gets the side shear parameters array. The dimensions represent [flute form, Y division, Z division]. Each element contains cutting coefficients (Ksr, Kst, Ksa) for the corresponding position. public Vec3d[,,] SideShearParas { get; } Property Value Vec3d[,,] SideYParaNum Gets the number of divisions in the Y direction for side milling parameters. public int SideYParaNum { get; } Property Value int SideZParaNum Gets the number of divisions in the Z direction for side milling parameters. public int SideZParaNum { get; } Property Value int XName Name for XML IO. public static string XName { get; } Property Value string XmlSourceFile public string XmlSourceFile { get; set; } Property Value string Methods CloneTemplate() Creates a template clone of this parameter map. public ICuttingPara CloneTemplate() Returns ICuttingPara A new instance with the same dimensions but zero values. GenUnitParas() Generates a list of unit cutting parameters. public List GenUnitParas() Returns List A list of unit cutting parameters. GetBottomMillingPara(int) Gets the milling parameters for the bottom of a specific flute. public LocalProfileMillingPara GetBottomMillingPara(int fluteIndex) Parameters fluteIndex int The index of the flute. Returns LocalProfileMillingPara The local milling parameters for the bottom of the specified flute. GetCuttingPara() Gets the cutting parameter interface for this instance. public ICuttingPara GetCuttingPara() Returns ICuttingPara The cutting parameter interface. GetElementByIndex(int) Gets a parameter value by its element index. public double GetElementByIndex(int elementIndex) Parameters elementIndex int The index of the element to get. Returns double The value at the specified index. GetElements() Gets the elements as an array of values. public double[] GetElements() Returns double[] An array containing all parameter values. GetSideMillingPara(int, double, double) Gets the milling parameters for a specific side position. public LocalProfileMillingPara GetSideMillingPara(int fluteIndex, double atanYX_rad, double atanZX_rad) Parameters fluteIndex int The index of the flute. atanYX_rad double The YX angle in radians. atanZX_rad double The ZX angle in radians. Returns LocalProfileMillingPara The local milling parameters for the specified position. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(int, double) Sets a parameter value by its element index. public void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int The index of the element to set. v double The value to set. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToTemplateXElement() Creates a template XML element for the parameter map. public XElement ToTemplateXElement() Returns XElement A template XML element." }, "api/Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html": { "href": "api/Hi.MillingForces.ProfileMillingParas.RtaMillingParaKey.html", "title": "Enum RtaMillingParaKey | HiAPI-C# 2025", "summary": "Enum RtaMillingParaKey Namespace Hi.MillingForces.ProfileMillingParas Assembly HiMech.dll Keys for milling parameters in radial-tangential-axial (RTA) coordinate system public enum RtaMillingParaKey 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 Kpa = 5 Ploughing force coefficient in axial direction Kpr = 3 Ploughing force coefficient in radial direction Kpt = 4 Ploughing force coefficient in tangential direction Ksa = 2 Shear force coefficient in axial direction Ksr = 0 Shear force coefficient in radial direction Kst = 1 Shear force coefficient in tangential direction" }, "api/Hi.MillingForces.ProfileMillingParas.html": { "href": "api/Hi.MillingForces.ProfileMillingParas.html", "title": "Namespace Hi.MillingForces.ProfileMillingParas | HiAPI-C# 2025", "summary": "Namespace Hi.MillingForces.ProfileMillingParas Classes LocalProfileMillingPara Milling parameter of altintas model. ProfileMillingParaMap Represents a mapping of milling parameters for profile milling operations. This class manages cutting parameters for both side and bottom milling operations. Interfaces IGetLocalProfileMillingPara Interface of getting LocalProfileMillingPara. Enums RtaMillingParaKey Keys for milling parameters in radial-tangential-axial (RTA) coordinate system" }, "api/Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.IRakeFaceCuttingPara.html", "title": "Interface IRakeFaceCuttingPara | HiAPI-C# 2025", "summary": "Interface IRakeFaceCuttingPara Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Defines cutting parameters on the rake face for force modeling, supporting XML IO and duplication. public interface IRakeFaceCuttingPara : ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote, IDuplicate Inherited Members ICuttingPara.FluteFormNum ICuttingPara.ElementNum ICuttingPara.ToTemplateXElement() ICuttingPara.GenUnitParas() ICuttingPara.SetElementByIndex(int, double) ICuttingPara.GetElementByIndex(int) ICuttingPara.CloneTemplate() IGetCuttingPara.GetCuttingPara() IMakeXmlSource.MakeXmlSource(string, string, bool) INameNote.Name INameNote.Note IDuplicate.Duplicate(params object[]) Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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 AnchorRakeAngle_deg Gets or sets the anchor rake angle in degrees. double AnchorRakeAngle_deg { get; set; } Property Value double AnchorRakeAngle_rad Gets or sets the anchor rake angle in radians — the rake angle this parameter set was calibrated at. double AnchorRakeAngle_rad { get; set; } Property Value double Kpc Gets or sets the ploughing coefficient along the rake face cross line (c). Unit: N/mm. double Kpc { get; set; } Property Value double Kpn Gets or sets the ploughing coefficient along the rake face normal direction (n). Unit: N/mm. double Kpn { get; set; } Property Value double Ksc Gets or sets the shear coefficient along the rake face cross line (c). Direction is from outer to center on side cutting. Unit: N/mm². double Ksc { get; set; } Property Value double Ksn Gets or sets the shear coefficient along the rake face normal direction (n). Unit: N/mm². double Ksn { get; set; } Property Value double" }, "api/Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.MillingPhysicsUtil.html", "title": "Class MillingPhysicsUtil | HiAPI-C# 2025", "summary": "Class MillingPhysicsUtil Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Utility class for milling physics calculations. public static class MillingPhysicsUtil Inheritance object MillingPhysicsUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetShearAngle_rad(double, double, double, double) Calculates the shear angle in radians based on the given rake angles and friction parameters. public static double GetShearAngle_rad(double radialRakeAngle_rad, double axialRakeAngle_rad, double frictionAngle_rad, double chipFlowAngle_rad) Parameters radialRakeAngle_rad double The radial rake angle in radians. axialRakeAngle_rad double The axial rake angle (helix angle) in radians. frictionAngle_rad double The friction angle in radians. chipFlowAngle_rad double The chip flow angle in radians. Returns double The calculated shear angle in radians, normalized to [0, π]." }, "api/Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.MultiFormRakeFaceCuttingPara.html", "title": "Class MultiFormRakeFaceCuttingPara | HiAPI-C# 2025", "summary": "Class MultiFormRakeFaceCuttingPara Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Represents a multi-form rake face cutting parameter set that can handle multiple flute forms. Internal Use Only. public class MultiFormRakeFaceCuttingPara : ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote Inheritance object MultiFormRakeFaceCuttingPara Implements ICuttingPara IGetCuttingPara IMakeXmlSource INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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 MultiFormRakeFaceCuttingPara(int) Initializes a new instance of the MultiFormRakeFaceCuttingPara class with the specified number of flute forms. public MultiFormRakeFaceCuttingPara(int fluteFormNum) Parameters fluteFormNum int The number of flute forms to initialize. MultiFormRakeFaceCuttingPara(XElement, string) Initializes a new instance of the MultiFormRakeFaceCuttingPara class from XML data. public MultiFormRakeFaceCuttingPara(XElement src, string baseDirectory) Parameters src XElement The source XML element. baseDirectory string The base directory for resolving relative paths. Properties ElementNum Gets the total number of elements in this parameter set. public int ElementNum { get; } Property Value int FluteFormNum Gets the number of flute forms in this parameter set. public int FluteFormNum { get; } Property Value int LocalRakeFaceCuttingParas Gets or sets the array of local rake face cutting parameters for each flute form. public RakeFaceCuttingPara3d[] LocalRakeFaceCuttingParas { get; set; } Property Value RakeFaceCuttingPara3d[] Name Gets or sets the name of this parameter set. public string Name { get; set; } Property Value string Note Gets or sets additional notes about this parameter set. public string Note { get; set; } Property Value string XName Gets the XML element name for this type. public static string XName { get; } Property Value string XmlSourceFile Gets or sets the XML source file path. public string XmlSourceFile { get; set; } Property Value string Methods CloneTemplate() Creates a clone of this parameter set as a template. public ICuttingPara CloneTemplate() Returns ICuttingPara A cloned instance of this parameter set. GenUnitParas() Generates a list of unit cutting parameters. public List GenUnitParas() Returns List A list of unit cutting parameters. GetCuttingPara() Gets this instance as an ICuttingPara. public ICuttingPara GetCuttingPara() Returns ICuttingPara This instance. GetElementByIndex(int) Gets the value of an element at the specified index. public double GetElementByIndex(int elementIndex) Parameters elementIndex int The index of the element to get. Returns double The value of the element at the specified index. GetLocalRakeFaceCuttingPara(int) Gets the local rake face cutting parameters for the specified flute index. public RakeFaceCuttingPara3d GetLocalRakeFaceCuttingPara(int fluteIndex) Parameters fluteIndex int The zero-based index of the flute. Returns RakeFaceCuttingPara3d The rake face cutting parameters for the specified flute. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(int, double) Sets the value of an element at the specified index. public void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int The index of the element to set. v double The value to set. ToString() Returns a string representation of this parameter set. public override string ToString() Returns string A string containing the name and note of this parameter set. ToTemplateXElement() Get XElement for templating. public XElement ToTemplateXElement() Returns XElement" }, "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara2d.html", "title": "Class RakeFaceCuttingPara2d | HiAPI-C# 2025", "summary": "Class RakeFaceCuttingPara2d Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Represents a 2D cutting parameter for rake face cutting operations. public class RakeFaceCuttingPara2d : IRakeFaceCuttingPara, ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote, IDuplicate Inheritance object RakeFaceCuttingPara2d Implements IRakeFaceCuttingPara ICuttingPara IGetCuttingPara IMakeXmlSource INameNote IDuplicate Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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 RakeFaceCuttingPara2d() Initializes a new instance of the RakeFaceCuttingPara2d class. public RakeFaceCuttingPara2d() RakeFaceCuttingPara2d(RakeFaceCuttingPara2d) Initializes a new instance of the RakeFaceCuttingPara2d class by copying from another instance. public RakeFaceCuttingPara2d(RakeFaceCuttingPara2d src) Parameters src RakeFaceCuttingPara2d The source instance to copy from. RakeFaceCuttingPara2d(XElement, string) Initializes a new instance of the RakeFaceCuttingPara2d class from XML. public RakeFaceCuttingPara2d(XElement src, string baseDirectory) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. Fields element_num Gets the number of elements in the cutting parameter. public const int element_num = 4 Field Value int Properties AnchorRakeAngle_deg Gets or sets the anchor rake angle in degrees. public double AnchorRakeAngle_deg { get; set; } Property Value double AnchorRakeAngle_rad Gets or sets the anchor rake angle in radians — the rake angle this parameter set was calibrated at. public double AnchorRakeAngle_rad { get; set; } Property Value double ElementNum Element number. public int ElementNum { get; } Property Value int FluteFormNum Flute form number. public int FluteFormNum { get; } Property Value int Kp Gets the ploughing coefficient vector in ECN coordinates. public Vec2d Kp { get; set; } Property Value Vec2d Kpc Gets or sets the ploughing coefficient along the rake face cross line (c). Unit: N/mm. public double Kpc { get; set; } Property Value double Kpn Gets or sets the ploughing coefficient along the rake face normal direction (n). Unit: N/mm. public double Kpn { get; set; } Property Value double Ks Gets the shear coefficient vector in ECN coordinates. public Vec2d Ks { get; set; } Property Value Vec2d Ksc Gets or sets the shear coefficient along the rake face cross line (c). Direction is from outer to center on side cutting. Unit: N/mm�. public double Ksc { get; set; } Property Value double Ksn Gets or sets the shear coefficient along the rake face normal direction (n). Unit: N/mm�. public double Ksn { get; set; } Property Value double Name Gets or sets the name of the cutting parameter. public string Name { get; set; } Property Value string Note Gets or sets additional notes about the cutting parameter. public string Note { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string XmlSourceFile public string XmlSourceFile { get; set; } Property Value string Methods CloneTemplate() Clone template. public ICuttingPara CloneTemplate() Returns ICuttingPara clone template Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GenUnitParas() Generate the ICuttingPara set used by parameter training. The list length equals ElementNum; entry i corresponds to the element of index i (see SetElementByIndex). public List GenUnitParas() Returns List training parameters. GetCuttingPara() Get ICuttingPara. public ICuttingPara GetCuttingPara() Returns ICuttingPara ICuttingPara GetElementByIndex(int) Gets the cutting parameter element at the specified index. public double GetElementByIndex(int index) Parameters index int The index of the element to retrieve. Returns double The cutting parameter element at the specified index. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(int, double) Sets the value of an element at the specified index. public void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int The index of the element to set (0-3; see element_num). v double The value to set. Remarks Index mapping: 0 - Ksc (N/mm^2) 1 - Ksn (N/mm^2) 2 - Kpc (N/mm) 3 - Kpn (N/mm) ToTemplateXElement() Get XElement for templating. public XElement ToTemplateXElement() Returns XElement" }, "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingPara3d.html", "title": "Class RakeFaceCuttingPara3d | HiAPI-C# 2025", "summary": "Class RakeFaceCuttingPara3d Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Represents local ECN (Edge-Cross-Normal) cutting parameters for rake face cutting. E: cutting edge direction C: Cross vector, along the rake face cross line, perpendicular to cutting edge N: rake face normal direction Internal Use Only. public class RakeFaceCuttingPara3d : IRakeFaceCuttingPara, ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote, IDuplicate Inheritance object RakeFaceCuttingPara3d Implements IRakeFaceCuttingPara ICuttingPara IGetCuttingPara IMakeXmlSource INameNote IDuplicate Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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) Remarks Velocity is measured relative to the cutter Resulting force is applied to the cutter Constructors RakeFaceCuttingPara3d() Initializes a new instance of the RakeFaceCuttingPara class. public RakeFaceCuttingPara3d() RakeFaceCuttingPara3d(Vec3d, Vec3d, double) Initializes a new instance of the RakeFaceCuttingPara class with specified shear and plough vectors. public RakeFaceCuttingPara3d(Vec3d shearEcn, Vec3d ploughEcn, double anchorRakeAngle_rad = NaN) Parameters shearEcn Vec3d The shear coefficient vector in ECN coordinates (N/mm�). ploughEcn Vec3d The plough coefficient vector in ECN coordinates (N/mm). anchorRakeAngle_rad double The anchor rake angle in radians. RakeFaceCuttingPara3d(RakeFaceCuttingPara3d) Initializes a new instance of the RakeFaceCuttingPara class by copying from another instance. public RakeFaceCuttingPara3d(RakeFaceCuttingPara3d src) Parameters src RakeFaceCuttingPara3d The source instance to copy from. RakeFaceCuttingPara3d(double, double, double, double, double, double, double) Initializes a new instance of the RakeFaceCuttingPara class with individual coefficient values. public RakeFaceCuttingPara3d(double kse, double ksc, double ksn, double kpe, double kpc, double kpn, double anchorRakeAngle_rad) Parameters kse double The shear coefficient along the cutting edge direction (N/mm�). ksc double The shear coefficient along the rake face cross line (N/mm�). ksn double The shear coefficient along the rake face normal direction (N/mm�). kpe double The plough coefficient along the cutting edge direction (N/mm). kpc double The plough coefficient along the rake face cross line (N/mm). kpn double The plough coefficient along the rake face normal direction (N/mm). anchorRakeAngle_rad double The anchor rake angle in radians. RakeFaceCuttingPara3d(XElement, string) Ctor by XML. public RakeFaceCuttingPara3d(XElement src, string baseDirectory) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths Properties AnchorRakeAngle_deg Gets or sets the anchor rake angle in degrees. public double AnchorRakeAngle_deg { get; set; } Property Value double AnchorRakeAngle_rad Gets or sets the anchor rake angle in radians — the rake angle this parameter set was calibrated at. public double AnchorRakeAngle_rad { get; set; } Property Value double ChipFlowAngle_deg Gets the chip flow angle in degrees. public double ChipFlowAngle_deg { get; } Property Value double ChipFlowAngle_rad Gets or sets the chip flow angle in radians. public double ChipFlowAngle_rad { get; } Property Value double CsvText Gets or sets the cutting parameters as a comma-separated value string. Format: Kse,Ksc,Ksn,Kpe,Kpc,Kpn,AnchorRakeAngle_deg public string CsvText { get; set; } Property Value string ElementNum Element number: 6 for (Shear(e,c,n),Plough(e,c,n)). public int ElementNum { get; } Property Value int FluteFormNum Gets the number of flute forms in this parameter set. Always returns 1 as this class represents a single form. public int FluteFormNum { get; } Property Value int FrictionAngle_deg Gets the friction angle in degrees. public double FrictionAngle_deg { get; } Property Value double FrictionAngle_rad Gets the friction angle in radians. public double FrictionAngle_rad { get; } Property Value double Kp Gets the ploughing coefficient vector in ECN coordinates. public Vec3d Kp { get; set; } Property Value Vec3d KpOnZeroRakeAngleCoordinate Gets Kp expressed on the zero-rake-angle coordinate (a NaN AnchorRakeAngle_rad is treated as zero). public Vec3d KpOnZeroRakeAngleCoordinate { get; } Property Value Vec3d Kpc Gets or sets the ploughing coefficient along the rake face cross line (c). Unit: N/mm. public double Kpc { get; set; } Property Value double Kpe Gets or sets the ploughing coefficient along the cutting edge direction (e). Unit: N/mm. public double Kpe { get; set; } Property Value double Kpn Gets or sets the ploughing coefficient along the rake face normal direction (n). Unit: N/mm. public double Kpn { get; set; } Property Value double Ks Gets the shear coefficient vector in ECN coordinates. public Vec3d Ks { get; set; } Property Value Vec3d Ksc Gets or sets the shear coefficient along the rake face cross line (c). Direction is from outer to center on side cutting. Unit: N/mm�. public double Ksc { get; set; } Property Value double Kse Gets or sets the shear coefficient along the cutting edge direction (e). Direction is from lower to upper on side cutting. Unit: N/mm�. public double Kse { get; set; } Property Value double Ksn Gets or sets the shear coefficient along the rake face normal direction (n). Unit: N/mm�. public double Ksn { get; set; } Property Value double Name Gets or sets the name of this parameter set. public string Name { get; set; } Property Value string Note Gets or sets additional notes about this parameter set. public string Note { get; set; } Property Value string XName Gets the XML element name for this type. public static string XName { get; } Property Value string Methods CloneTemplate() Creates a clone of this parameter set as a template. public ICuttingPara CloneTemplate() Returns ICuttingPara A new instance with the same anchor rake angle. Duplicate(params object[]) Creates a deep copy of this instance. public object Duplicate(params object[] res) Parameters res object[] Optional parameters (not used). Returns object A new instance with the same values. GenUnitParas() Generate the ICuttingPara set used by parameter training. The list length equals ElementNum; entry i corresponds to the element of index i (see SetElementByIndex). public List GenUnitParas() Returns List training parameters. GetCuttingPara() Gets this instance as an ICuttingPara. public ICuttingPara GetCuttingPara() Returns ICuttingPara This instance. GetElementByIndex(int) value of (Shear(e,c,n),Plough(e,c,n)) by index. public double GetElementByIndex(int index) Parameters index int The index of the element to get (0-5). Returns double The value at the specified index. Remarks Index mapping: 0 - Kse (N/mm�) 1 - Ksc (N/mm�) 2 - Ksn (N/mm�) 3 - Kpe (N/mm) 4 - Kpc (N/mm) 5 - Kpn (N/mm) MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(int, double) Sets the value of an element at the specified index. public void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int The index of the element to set (0-5). v double The value to set. Remarks Index mapping: 0 - Kse (N/mm�) 1 - Ksc (N/mm�) 2 - Ksn (N/mm�) 3 - Kpe (N/mm) 4 - Kpc (N/mm) 5 - Kpn (N/mm) ToTemplateXElement() Get XElement for templating. public XElement ToTemplateXElement() Returns XElement" }, "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.RakeFaceCuttingParaMap.html", "title": "Class RakeFaceCuttingParaMap | HiAPI-C# 2025", "summary": "Class RakeFaceCuttingParaMap Namespace Hi.MillingForces.RakeFaceCuttingParas Assembly HiMech.dll Represents a map of rake face cutting parameters. public class RakeFaceCuttingParaMap : ICuttingPara, IGetCuttingPara, IMakeXmlSource, INameNote, ICloneable Inheritance object RakeFaceCuttingParaMap Implements ICuttingPara IGetCuttingPara IMakeXmlSource INameNote ICloneable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods CuttingParaUtil.ToRakeFaceCuttingPara(ICuttingPara) 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 RakeFaceCuttingParaMap(RakeFaceCuttingParaMap) Creates a copy of this parameter map. public RakeFaceCuttingParaMap(RakeFaceCuttingParaMap source) Parameters source RakeFaceCuttingParaMap The source parameter map to copy from. RakeFaceCuttingParaMap(int, int, int) Initializes a new instance of the RakeFaceCuttingParaMap class. public RakeFaceCuttingParaMap(int fluteFormNum, int nAngleDivisionNum, int ecAngleDivisionNum) Parameters fluteFormNum int The number of flute forms. nAngleDivisionNum int The number of normal angle divisions. ecAngleDivisionNum int The number of eccentric angle divisions. RakeFaceCuttingParaMap(XElement, string) Ctor by XML. public RakeFaceCuttingParaMap(XElement src, string baseDirectory) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths Properties CircleParas CircleParas[FluteFormIndex,NAngleIndex,EcAngleIndex]. public Vec3d[,,] CircleParas { get; } Property Value Vec3d[,,] EcAngleDivisionNum Angle division number from +E axis on EC plane. Note that range of EcAngle is -pi~pi. public int EcAngleDivisionNum { get; } Property Value int EcAngleInterval_deg Gets or sets the eccentric angle interval in degrees. public double EcAngleInterval_deg { get; } Property Value double EcAngleInterval_rad Gets or sets the eccentric angle interval in radians. public double EcAngleInterval_rad { get; } Property Value double ElementNum Element number. public int ElementNum { get; } Property Value int FluteFormNum Gets or sets the number of flute forms. public int FluteFormNum { get; } Property Value int NAngleDivisionNum Angle division number from N axis. Like R on polar coordinate, but it expresses by angle. Note that range of NAngle is 0~pi/2. public int NAngleDivisionNum { get; } Property Value int NAngleInterval_deg Gets or sets the normal angle interval in degrees. public double NAngleInterval_deg { get; } Property Value double NAngleInterval_rad Gets or sets the normal angle interval in radians. public double NAngleInterval_rad { get; } Property Value double Name Gets or sets the name of the parameter map. public string Name { get; set; } Property Value string Note Gets or sets the note for the parameter map. public string Note { get; set; } Property Value string PloughParas Gets or sets the ploughing parameters. public Vec3d[] PloughParas { get; } Property Value Vec3d[] TipParas TipParas[FluteFormIndex]. tip shear para. public Vec3d[] TipParas { get; } Property Value Vec3d[] XName Name for XML IO. public static string XName { get; } Property Value string XmlSourceFile public string XmlSourceFile { get; set; } Property Value string Methods Clone() Creates a new object that is a copy of the current instance. public object Clone() Returns object A new object that is a copy of this instance. CloneTemplate() Clone template. public ICuttingPara CloneTemplate() Returns ICuttingPara clone template GenUnitParas() Generate the ICuttingPara set used by parameter training. The list length equals ElementNum; entry i corresponds to the element of index i (see SetElementByIndex). public List GenUnitParas() Returns List training parameters. GetCuttingPara() Get ICuttingPara. public ICuttingPara GetCuttingPara() Returns ICuttingPara ICuttingPara GetElementByIndex(int) Get element by index. For parameter training. public double GetElementByIndex(int elementIndex) Parameters elementIndex int element index Returns double value GetLocalRakeFaceCuttingPara(int, double, double) Gets the local rake face cutting parameters for the specified conditions. public RakeFaceCuttingPara3d GetLocalRakeFaceCuttingPara(int fluteIndex, double nAngle_rad, double ecAngle_rad) Parameters fluteIndex int The index of the flute. nAngle_rad double The normal angle in radians. ecAngle_rad double The effective cutting angle in radians. Returns RakeFaceCuttingPara3d A rake face cutting parameter object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetElementByIndex(int, double) Set element by index. For parameter training. public void SetElementByIndex(int elementIndex, double v) Parameters elementIndex int element index v double value Test() Test method for validating the interpolation functionality of the RakeFaceCuttingParaMap. Creates a sample map and outputs interpolated values at various angles. public static void Test() ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToTemplateXElement() Get XElement for templating. public XElement ToTemplateXElement() Returns XElement" }, "api/Hi.MillingForces.RakeFaceCuttingParas.html": { "href": "api/Hi.MillingForces.RakeFaceCuttingParas.html", "title": "Namespace Hi.MillingForces.RakeFaceCuttingParas | HiAPI-C# 2025", "summary": "Namespace Hi.MillingForces.RakeFaceCuttingParas Classes MillingPhysicsUtil Utility class for milling physics calculations. MultiFormRakeFaceCuttingPara Represents a multi-form rake face cutting parameter set that can handle multiple flute forms. Internal Use Only. RakeFaceCuttingPara2d Represents a 2D cutting parameter for rake face cutting operations. RakeFaceCuttingPara3d Represents local ECN (Edge-Cross-Normal) cutting parameters for rake face cutting. E: cutting edge direction C: Cross vector, along the rake face cross line, perpendicular to cutting edge N: rake face normal direction Internal Use Only. RakeFaceCuttingParaMap Represents a map of rake face cutting parameters. Interfaces IRakeFaceCuttingPara Defines cutting parameters on the rake face for force modeling, supporting XML IO and duplication." }, "api/Hi.MillingForces.ToolObservationReference.html": { "href": "api/Hi.MillingForces.ToolObservationReference.html", "title": "Enum ToolObservationReference | HiAPI-C# 2025", "summary": "Enum ToolObservationReference Namespace Hi.MillingForces Assembly HiMech.dll Defines reference points for tool observation measurements. [Flags] public enum ToolObservationReference 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 HolderShankBuckle = 18 The holder shank buckle reference point combined with tool side. ProgramZero = 8 The program zero reference point. SpindleHolderBuckle = 20 The spindle holder buckle reference point combined with tool side. ToolSide = 16 The tool side reference point. ToolTip = 17 The tool tip reference point combined with tool side." }, "api/Hi.MillingForces.Training.MillingParaTrainResult.html": { "href": "api/Hi.MillingForces.Training.MillingParaTrainResult.html", "title": "Class MillingParaTrainResult | HiAPI-C# 2025", "summary": "Class MillingParaTrainResult Namespace Hi.MillingForces.Training Assembly HiNc.dll Snapshot of the most recent milling-parameter training call (LocalProjectService.TrainMillingPara / ReTrainMillingPara) — the queryable training outcome that otherwise only lands in the output .mp file's Note. Held by LocalProjectService.LastMillingParaTrainResult (service lifetime, last-wins) so callers such as the webservice can read it after a run without touching the file system. public class MillingParaTrainResult Inheritance object MillingParaTrainResult 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 CorrelationR Correlation coefficient R of the built parameter against the filtered samples (0..1); null when unavailable. public double? CorrelationR { get; set; } Property Value double? DstRelFile Destination file the built parameter was saved to (relative to the project base directory); null when not saved. public string DstRelFile { get; set; } Property Value string FilteredSampleNum Number of training samples that survived outlier filtering. public int FilteredSampleNum { get; set; } Property Value int Kind Which call produced the snapshot: “Train” or “ReTrain”. public string Kind { get; set; } Property Value string Note The built parameter's Note — the human-readable summary also written into the .mp file. public string Note { get; set; } Property Value string OutlierRatio The outlier exclusion ratio the training used. public double OutlierRatio { get; set; } Property Value double ParaName The built parameter's Name (the destination file name). public string ParaName { get; set; } Property Value string ParaTypeName The built parameter's concrete type name (e.g. RakeFaceCuttingPara2d). public string ParaTypeName { get; set; } Property Value string ParaXml The built parameter's full XML source — carries every trained coefficient in the same form as the saved .mp file. public string ParaXml { get; set; } Property Value string SampleFlags The SampleFlag combination the training used (enum text, e.g. “Mx, My, Mz”). public string SampleFlags { get; set; } Property Value string Succeeded False when the training aborted without a built parameter (no mapped data / no samples); the run's messages explain why. public bool Succeeded { get; set; } Property Value bool TrainedAtUtc UTC instant the training call completed. public DateTime TrainedAtUtc { get; set; } Property Value DateTime" }, "api/Hi.MillingForces.Training.MillingTraining.html": { "href": "api/Hi.MillingForces.Training.MillingTraining.html", "title": "Class MillingTraining | HiAPI-C# 2025", "summary": "Class MillingTraining Namespace Hi.MillingForces.Training Assembly HiNc.dll Provides utilities for milling force training and parameter identification. public static class MillingTraining Inheritance object MillingTraining Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields DesignMatrixSvdRelativeTol Relative singular-value cutoff (σ_i/σ_max on σ(M)) for the truncated pseudo-inverse of the lead-para fit when EnableDesignMatrixSolver is on. Replaces the legacy absolute gap (1e-7) applied to σ(MᵀM) = σ(M)², whose effective cut depends on the data scale. public static double DesignMatrixSvdRelativeTol Field Value double EnableCwePhasePairing When enabled, GatherAndBuild(ICuttingPara, ConcurrentDictionary>, ClStrip, SampleFlag, bool, double, IProgress, CancellationToken, out double, out int) determines each step's rotation phase by the CWE block-pairing detector (Hi.MillingForces.Training.MillingPhasePairing) instead of the self-bootstrapped averaged-basis lead parameter, and replaces the averaged-basis outlier pre-filter by a residual-based pass. Applies to one-flute and symmetric two-flute cutters in light radial side cuts (contact arc smaller than the flute pitch); when its preconditions do not hold the training falls back to the legacy lead path with a warning. public static bool EnableCwePhasePairing Field Value bool EnableDesignMatrixSolver When enabled, the least-squares fits are solved directly on the N-by-p design matrix M (thin QR, plus SVD of its R factor for the lead-para truncated pseudo-inverse) instead of forming the normal-equation matrix MᵀM first. Forming MᵀM squares the condition number (κ(MᵀM) = κ(M)²), which halves the usable precision and blurs the rank structure; the direct path keeps σ(M) intact at the same p-by-p solve size. Experimental flag for the QR-vs-MᵀM solver comparison. public static bool EnableDesignMatrixSolver Field Value bool EnableMzLeverWeighting Gets or sets whether Mz lever weighting is enabled during training sample gathering. public static bool EnableMzLeverWeighting Field Value bool EnableSampleNormalization [Obsolete] public static bool EnableSampleNormalization Field Value bool Remarks The input normalization deminish the quantity effect. The R-value decrease from 99% to 70% in moment training case from NKUST\\nkust2024-milling-para-training-plan\\workingx.hincproj Don't apply this option. MissingEngagementAbortRatio Abort threshold on the fraction of touched, force-bearing steps whose milling-step engagement could not be used during sample gathering — either the luggage row was unreadable, or the row was present but the engagement was never built (physics inactive at simulation time). At or below the threshold the misses are reported as a summary warning and training continues on the remaining steps; above it the training aborts with a ConfigurationError instead of silently building a model from a fraction of the play (one such degraded sweep cell once produced outlier coefficients that were nearly read as a resolution effect). Set to 1 to never abort. public static double MissingEngagementAbortRatio Field Value double ReTrainAnchorOutputScale Weight scale of the virtual anchor samples that pull a GatherAndGetUpdate(ConcurrentDictionary>, ClStrip, ICuttingPara, SampleFlag, double, IProgress, CancellationToken) (ReTrain) result back toward its seed parameter. The anchors are generated at scale * Σoutput / ElementNum per coefficient, so their curvature grows as N² against the data's N — at large sample counts they dominate and the result reproduces the seed. Set to 0 to make ReTrain purely data-driven: the seed then only supplies the phase alignment and the outlier scoring, which turns ReTrain into an external-lead identifiability instrument (\"with a known-good lead but no prior, what do the data actually say?\"). The default 0.1 keeps the historical seed-anchored ridge behaviour. public static double ReTrainAnchorOutputScale Field Value double Properties CycleDivisionNum Division number of a spindle cycle. public static int CycleDivisionNum { get; } Property Value int DefaultParaTemplate Gets or sets the parameter template for cutting operations. public static ICuttingPara DefaultParaTemplate { get; set; } Property Value ICuttingPara StepQuantityNames Gets the names of step quantities used in training. public static string[] StepQuantityNames { get; } Property Value string[] TextAngleOffset_deg Gets the text key for angle offset in degrees. public static string TextAngleOffset_deg { get; } Property Value string TextTrainingErrRatio Gets the text key for training error ratio. public static string TextTrainingErrRatio { get; } Property Value string Methods Convert(ICuttingPara, ICuttingPara, GeneralApt, double, double, IProgress, CancellationToken) Converts one cutting parameter model to another based on the provided parameters. public static ICuttingPara Convert(ICuttingPara src, ICuttingPara resultParaTemplate, GeneralApt apt, double helixAngle_rad, double radialRakeAngle_rad, IProgress messageProgress, CancellationToken cancellationToken) Parameters src ICuttingPara Source cutting parameter model resultParaTemplate ICuttingPara Destination template for the converted model apt GeneralApt General apt parameters helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageProgress IProgress Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The converted cutting parameter model Convert(LocalProfileMillingPara, double, double, IProgress, CancellationToken) Converts a LocalProfileMillingPara to a RakeFaceCuttingPara. public static RakeFaceCuttingPara2d Convert(LocalProfileMillingPara src, double helixAngle_rad, double radialRakeAngle_rad, IProgress messageProgress, CancellationToken cancellationToken) Parameters src LocalProfileMillingPara Source LocalProfileMillingPara helixAngle_rad double Helix angle in radians radialRakeAngle_rad double Radial rake angle in radians messageProgress IProgress Message host for logging cancellationToken CancellationToken Cancellation token Returns RakeFaceCuttingPara2d The converted RakeFaceCuttingPara GatherAndGetUpdate(ConcurrentDictionary>, ClStrip, ICuttingPara, SampleFlag, double, IProgress, CancellationToken) Gathers training samples and updates an existing cutting parameter model. public static ICuttingPara GatherAndGetUpdate(ConcurrentDictionary> stepToTimeShotListDictionary, ClStrip clStrip, ICuttingPara anchorPara, SampleFlag sampleFlags, double outlierRatio, IProgress messageProgress, CancellationToken cancellationToken) Parameters stepToTimeShotListDictionary ConcurrentDictionary> Dictionary mapping step indices to time shot lists clStrip ClStrip The cutter location strip anchorPara ICuttingPara The anchor cutting parameter model to update sampleFlags SampleFlag Sample flags indicating which forces to use outlierRatio double Ratio of outliers to exclude messageProgress IProgress Message host for logging cancellationToken CancellationToken Cancellation token Returns ICuttingPara The updated cutting parameter model" }, "api/Hi.MillingForces.Training.html": { "href": "api/Hi.MillingForces.Training.html", "title": "Namespace Hi.MillingForces.Training | HiAPI-C# 2025", "summary": "Namespace Hi.MillingForces.Training Classes MillingParaTrainResult Snapshot of the most recent milling-parameter training call (LocalProjectService.TrainMillingPara / ReTrainMillingPara) — the queryable training outcome that otherwise only lands in the output .mp file's Note. Held by LocalProjectService.LastMillingParaTrainResult (service lifetime, last-wins) so callers such as the webservice can read it after a run without touching the file system. MillingTraining Provides utilities for milling force training and parameter identification." }, "api/Hi.MillingForces.html": { "href": "api/Hi.MillingForces.html", "title": "Namespace Hi.MillingForces | HiAPI-C# 2025", "summary": "Namespace Hi.MillingForces Classes MillingForce Milling force. MillingForceLicense Provides license information and management for the milling force calculation functionality. MillingForceLuggage Represents a container for milling force data and calculations. MillingForceUtil Utility class for milling force calculations and related operations. MillingPhysicsBrief Instant Physics brief on rake face for milling. PhysicsUtil Provides utility methods for physics calculations in milling operations. Interfaces IGetMillingForce Interface of GetMillingForce(). IMillingForceAccessor Interface of MillingForce. Enums ToolObservationReference Defines reference points for tool observation measurements." }, "api/Hi.MillingProcs.MillingGuide.html": { "href": "api/Hi.MillingProcs.MillingGuide.html", "title": "Class MillingGuide | HiAPI-C# 2025", "summary": "Class MillingGuide Namespace Hi.MillingProcs Assembly HiNc.dll Provides guidance and configuration for milling visualization and analysis. public class MillingGuide : IMakeXmlSource Inheritance object MillingGuide Implements IMakeXmlSource 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) Constructors MillingGuide() Initializes a new instance of the MillingGuide class with default configurations. public MillingGuide() MillingGuide(XElement, string, IProgress) Initializes a new instance of the MillingGuide class from XML data. public MillingGuide(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element containing configuration data baseDirectory string Base directory for resolving relative paths progress IProgress Progress reporter for XML deserialization. Properties ClStripChartConfig Gets or sets the configuration for cutter location strip charts. public ClStripChartConfig ClStripChartConfig { get; set; } Property Value ClStripChartConfig DictionaryColorGuide Gets or sets the dictionary of color guides for visualizing different properties. public DictionaryColorGuide DictionaryColorGuide { get; set; } Property Value DictionaryColorGuide ForceWCycleLineDivConfig Gets or sets the configuration for force cycle line division. public ForceCycleLineDivConfig ForceWCycleLineDivConfig { get; set; } Property Value ForceCycleLineDivConfig SensorSpindleMomentCycleLineDivConfig Gets or sets the configuration for sensor spindle moment cycle line division. public SpindleMomentCycleLineDivConfig SensorSpindleMomentCycleLineDivConfig { get; set; } Property Value SpindleMomentCycleLineDivConfig SimSpindleMomentCycleLineDivConfig Gets or sets the configuration for simulation spindle moment cycle line division. public SpindleMomentCycleLineDivConfig SimSpindleMomentCycleLineDivConfig { get; set; } Property Value SpindleMomentCycleLineDivConfig XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MillingProcs.html": { "href": "api/Hi.MillingProcs.html", "title": "Namespace Hi.MillingProcs | HiAPI-C# 2025", "summary": "Namespace Hi.MillingProcs Classes MillingGuide Provides guidance and configuration for milling visualization and analysis." }, "api/Hi.MillingStepUtils.ClStripChartConfig.html": { "href": "api/Hi.MillingStepUtils.ClStripChartConfig.html", "title": "Class ClStripChartConfig | HiAPI-C# 2025", "summary": "Class ClStripChartConfig Namespace Hi.MillingStepUtils Assembly HiNc.dll Configuration for ClStrip charts. public class ClStripChartConfig : IMakeXmlSource Inheritance object ClStripChartConfig Implements IMakeXmlSource 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) Constructors ClStripChartConfig() Initializes a new instance of the ClStripChartConfig class. public ClStripChartConfig() ClStripChartConfig(XElement) Ctor. public ClStripChartConfig(XElement src) Parameters src XElement XML Properties ItemConfigDictionary Dictionary of chart item configurations, indexed by key. public Dictionary ItemConfigDictionary { get; set; } Property Value Dictionary XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MillingStepUtils.ClStripChartItemConfig.html": { "href": "api/Hi.MillingStepUtils.ClStripChartItemConfig.html", "title": "Class ClStripChartItemConfig | HiAPI-C# 2025", "summary": "Class ClStripChartItemConfig Namespace Hi.MillingStepUtils Assembly HiNc.dll Configuration for an individual ClStrip chart item. public class ClStripChartItemConfig : IMakeXmlSource Inheritance object ClStripChartItemConfig Implements IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ClStripChartItemConfig() Ctor. public ClStripChartItemConfig() ClStripChartItemConfig(XElement) Ctor. public ClStripChartItemConfig(XElement src) Parameters src XElement XML Properties TimeChartYConfig Gets or sets the Y-axis configuration for time charts. public TimeChartYConfig TimeChartYConfig { get; set; } Property Value TimeChartYConfig XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MillingStepUtils.ForceCycleFlag.html": { "href": "api/Hi.MillingStepUtils.ForceCycleFlag.html", "title": "Enum ForceCycleFlag | HiAPI-C# 2025", "summary": "Enum ForceCycleFlag Namespace Hi.MillingStepUtils Assembly HiNc.dll Flags representing different force cycle types. public enum ForceCycleFlag 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 ForceToToolOnToolRunningCoordinate = 2 Force applied to tool on tool running coordinate. ForceToWorkpieceOnProgramCoordinate = 1 Force applied to workpiece on program coordinate." }, "api/Hi.MillingStepUtils.ForceCycleLineDivConfig.html": { "href": "api/Hi.MillingStepUtils.ForceCycleLineDivConfig.html", "title": "Class ForceCycleLineDivConfig | HiAPI-C# 2025", "summary": "Class ForceCycleLineDivConfig Namespace Hi.MillingStepUtils Assembly HiNc.dll Configuration for force cycle line division display and analysis. public class ForceCycleLineDivConfig : TimeChartYConfig, IMakeXmlSource Inheritance object TimeChartYConfig ForceCycleLineDivConfig Implements IMakeXmlSource Inherited Members TimeChartYConfig.VRangeMode TimeChartYConfig.VRange TimeChartYConfig.ToString() object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 ForceCycleLineDivConfig() Default constructor with initial range settings. public ForceCycleLineDivConfig() ForceCycleLineDivConfig(XElement) Ctor. public ForceCycleLineDivConfig(XElement src) Parameters src XElement XML Properties MainForceCycleFlag Gets or sets the main force cycle flag determining how forces are represented. public ForceCycleFlag MainForceCycleFlag { get; set; } Property Value ForceCycleFlag XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MillingStepUtils.LineChartVRangeMode.html": { "href": "api/Hi.MillingStepUtils.LineChartVRangeMode.html", "title": "Enum LineChartVRangeMode | HiAPI-C# 2025", "summary": "Enum LineChartVRangeMode Namespace Hi.MillingStepUtils Assembly HiNc.dll Specifies the mode for vertical range in line charts. public enum LineChartVRangeMode 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 Fit = 0 Automatically fit the vertical range to data. Lock = 1 Lock the vertical range to specified values." }, "api/Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html": { "href": "api/Hi.MillingStepUtils.SpindleMomentCycleLineDivConfig.html", "title": "Class SpindleMomentCycleLineDivConfig | HiAPI-C# 2025", "summary": "Class SpindleMomentCycleLineDivConfig Namespace Hi.MillingStepUtils Assembly HiNc.dll Configuration for spindle moment cycle line division display and analysis. public class SpindleMomentCycleLineDivConfig : IMakeXmlSource Inheritance object SpindleMomentCycleLineDivConfig Implements IMakeXmlSource 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) Constructors SpindleMomentCycleLineDivConfig() Ctor. public SpindleMomentCycleLineDivConfig() SpindleMomentCycleLineDivConfig(XElement) Ctor. public SpindleMomentCycleLineDivConfig(XElement src) Parameters src XElement XML Properties TimeChartYConfig Gets or sets the Y-axis configuration for the time chart display. public TimeChartYConfig TimeChartYConfig { get; set; } Property Value TimeChartYConfig XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.MillingStepUtils.TimeChartYConfig.html": { "href": "api/Hi.MillingStepUtils.TimeChartYConfig.html", "title": "Class TimeChartYConfig | HiAPI-C# 2025", "summary": "Class TimeChartYConfig Namespace Hi.MillingStepUtils Assembly HiNc.dll Configuration for Y-axis settings in time charts. public class TimeChartYConfig : IMakeXmlSource Inheritance object TimeChartYConfig Implements IMakeXmlSource Derived ForceCycleLineDivConfig Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 TimeChartYConfig() Ctor. public TimeChartYConfig() TimeChartYConfig(XElement) Ctor. public TimeChartYConfig(XElement src) Parameters src XElement XML Properties VRange Minimum and maximum values for the vertical range. public Range VRange { get; set; } Property Value Range VRangeMode Vertical range mode. public LineChartVRangeMode VRangeMode { get; set; } Property Value LineChartVRangeMode XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object." }, "api/Hi.MillingStepUtils.html": { "href": "api/Hi.MillingStepUtils.html", "title": "Namespace Hi.MillingStepUtils | HiAPI-C# 2025", "summary": "Namespace Hi.MillingStepUtils Classes ClStripChartConfig Configuration for ClStrip charts. ClStripChartItemConfig Configuration for an individual ClStrip chart item. ForceCycleLineDivConfig Configuration for force cycle line division display and analysis. SpindleMomentCycleLineDivConfig Configuration for spindle moment cycle line division display and analysis. TimeChartYConfig Configuration for Y-axis settings in time charts. Enums ForceCycleFlag Flags representing different force cycle types. LineChartVRangeMode Specifies the mode for vertical range in line charts." }, "api/Hi.MillingSteps.MillingInstance.html": { "href": "api/Hi.MillingSteps.MillingInstance.html", "title": "Class MillingInstance | HiAPI-C# 2025", "summary": "Class MillingInstance Namespace Hi.MillingSteps Assembly HiMech.dll Instance of milling in a MachiningStep. public class MillingInstance : ISuccessivePhysicsBriefAccessor Inheritance object MillingInstance Implements ISuccessivePhysicsBriefAccessor 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) Remarks The name is not MillingStep since it conflicts with the MachiningStep. The object is part of data in the MachiningStep but not the same level object. Properties BoundingBoxOnToolRunningCoordinate Gets or sets the bounding box of the cutting area on the tool running coordinate system. public Box3d BoundingBoxOnToolRunningCoordinate { get; } Property Value Box3d CuttingDepth_mm Axial Depth. public double CuttingDepth_mm { get; } Property Value double CuttingWidth_mm Radial Width. The value may not equal to the bounding box. It has filtered by plural method. The value is for human viewing. public double CuttingWidth_mm { get; } Property Value double IsTouched Gets a value indicating whether the tool is touching the workpiece. public bool IsTouched { get; } Property Value bool MillingPhysicsBrief Gets the rake face physics brief containing force and other physical calculations. Tri-state contract: null — physics not computed (EnablePhysics=false, or no tool, or spindle not rotating). non-null with computed forces — physics computed on an engaged step (IsTouched=true). non-null with all-zero forces / ratios — physics computed on a no-engagement step (EnablePhysics=true, IsTouched=false); produced via NoCut(int). Use IsTouched to distinguish this from a real cut whose forces happen to be near zero. public MillingPhysicsBrief MillingPhysicsBrief { get; } Property Value MillingPhysicsBrief Mrr_mm3ds Gets or sets the material removal rate in cubic millimeters per second. public double Mrr_mm3ds { get; } Property Value double SeqPhysicsBrief Gets or sets the sequential physics brief for this step. public SeqPhysicsBrief SeqPhysicsBrief { get; set; } Property Value SeqPhysicsBrief StepIndex Gets the index of this step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; } Property Value int" }, "api/Hi.MillingSteps.MillingStepLuggage.html": { "href": "api/Hi.MillingSteps.MillingStepLuggage.html", "title": "Class MillingStepLuggage | HiAPI-C# 2025", "summary": "Class MillingStepLuggage Namespace Hi.MillingSteps Assembly HiMech.dll Represents additional data associated with a milling step. public class MillingStepLuggage Inheritance object MillingStepLuggage 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) Constructors MillingStepLuggage() Initializes a new instance of the MillingStepLuggage class. public MillingStepLuggage() MillingStepLuggage(int, Substraction, LayerMillingEngagement, MillingForceLuggage) Initializes a new instance of the MillingStepLuggage class with specified parameters. public MillingStepLuggage(int stepIndex, Substraction substraction, LayerMillingEngagement layerMillingEngagement, MillingForceLuggage millingForceLuggage) Parameters stepIndex int The index of the associated milling step. substraction Substraction The substraction information. layerMillingEngagement LayerMillingEngagement The layer milling engagement information. millingForceLuggage MillingForceLuggage The milling force luggage information. Properties LayerMillingEngagement Gets or sets the layer milling engagement information. public LayerMillingEngagement LayerMillingEngagement { get; set; } Property Value LayerMillingEngagement MillingForceLuggage Gets or sets the milling force luggage information. public MillingForceLuggage MillingForceLuggage { get; set; } Property Value MillingForceLuggage StepIndex Gets or sets the index of the associated milling step. [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int StepIndex { get; set; } Property Value int Substraction Gets or sets the substraction information for the milling step. public Substraction Substraction { get; set; } Property Value Substraction" }, "api/Hi.MillingSteps.html": { "href": "api/Hi.MillingSteps.html", "title": "Namespace Hi.MillingSteps | HiAPI-C# 2025", "summary": "Namespace Hi.MillingSteps Classes MillingInstance Instance of milling in a MachiningStep. MillingStepLuggage Represents additional data associated with a milling step." }, "api/Hi.Motion.MatValves.ClMachiningValve.html": { "href": "api/Hi.Motion.MatValves.ClMachiningValve.html", "title": "Class ClMachiningValve | HiAPI-C# 2025", "summary": "Class ClMachiningValve Namespace Hi.Motion.MatValves Assembly HiMech.dll Optimize the sequential transformation matrixes step by step for machining. Filtering the unnecessary transformation matrixes. Accept milling mode by IsSpinMachining. public class ClMachiningValve : IMotionValve Inheritance object ClMachiningValve Implements IMotionValve 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) Constructors ClMachiningValve() Ctor. public ClMachiningValve() Properties IsSpinMachining Gets or sets a value indicating whether the machining is in spin mode. When true, the valve optimizes for milling operations with tool rotation. public bool IsSpinMachining { get; set; } Property Value bool MotionValve Motion valve. The default value is StepMotionValve. public IMotionValve MotionValve { get; set; } Property Value IMotionValve Methods ClearState() Clear state. public void ClearState() Finish() Finish. public SeqPair Finish() Returns SeqPair The end of the optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat. Step(DVec3d) Output optimized sequence transformation matrixes. public SeqPair Step(DVec3d cl) Parameters cl DVec3d cutter location Returns SeqPair optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat Step(Mat4d) Output optimized sequence transformation matrixes. public SeqPair Step(Mat4d at) Parameters at Mat4d Input matrix Returns SeqPair optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat. Remarks return null if the transformation has been returned before." }, "api/Hi.Motion.MatValves.IMotionValve.html": { "href": "api/Hi.Motion.MatValves.IMotionValve.html", "title": "Interface IMotionValve | HiAPI-C# 2025", "summary": "Interface IMotionValve Namespace Hi.Motion.MatValves Assembly HiMech.dll Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes. public interface IMotionValve 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) Methods ClearState() Clear state. void ClearState() Finish() Finish. SeqPair Finish() Returns SeqPair The end of the optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat. Step(Mat4d) Output optimized sequence transformation matrixes. SeqPair Step(Mat4d at) Parameters at Mat4d Input matrix Returns SeqPair optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat." }, "api/Hi.Motion.MatValves.MacroMotionValve.html": { "href": "api/Hi.Motion.MatValves.MacroMotionValve.html", "title": "Class MacroMotionValve | HiAPI-C# 2025", "summary": "Class MacroMotionValve Namespace Hi.Motion.MatValves Assembly HiMech.dll Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes. The steps in the middle of each linear cut are filtered. public class MacroMotionValve : IMotionValve Inheritance object MacroMotionValve Implements IMotionValve 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) Constructors MacroMotionValve() Initializes a new instance of the MacroMotionValve class. public MacroMotionValve() Methods ClearState() Clear state. public void ClearState() Finish() Finish. public SeqPair Finish() Returns SeqPair The end of the optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat. Step(Mat4d) Output optimized sequence transformation matrixes. public SeqPair Step(Mat4d at) Parameters at Mat4d Input matrix Returns SeqPair optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat." }, "api/Hi.Motion.MatValves.StepMotionValve.html": { "href": "api/Hi.Motion.MatValves.StepMotionValve.html", "title": "Class StepMotionValve | HiAPI-C# 2025", "summary": "Class StepMotionValve Namespace Hi.Motion.MatValves Assembly HiMech.dll Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes. All step will be pumped. public class StepMotionValve : IMotionValve Inheritance object StepMotionValve Implements IMotionValve 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) Constructors StepMotionValve() Initializes a new instance of the StepMotionValve class. public StepMotionValve() Methods ClearState() Clear state. public void ClearState() Finish() Finish. public SeqPair Finish() Returns SeqPair The end of the optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat. Step(Mat4d) Output optimized sequence transformation matrixes. public SeqPair Step(Mat4d at) Parameters at Mat4d Input matrix Returns SeqPair optimized sequence transformation matrixes. return pair.first: one of the previous mat; pair.second: current mat." }, "api/Hi.Motion.MatValves.html": { "href": "api/Hi.Motion.MatValves.html", "title": "Namespace Hi.Motion.MatValves | HiAPI-C# 2025", "summary": "Namespace Hi.Motion.MatValves Classes ClMachiningValve Optimize the sequential transformation matrixes step by step for machining. Filtering the unnecessary transformation matrixes. Accept milling mode by IsSpinMachining. MacroMotionValve Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes. The steps in the middle of each linear cut are filtered. StepMotionValve Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes. All step will be pumped. Interfaces IMotionValve Optimize the sequential transformation matrixes step by step by filtering the unnecessary transformation matrixes." }, "api/Hi.Motion.MotionUtil.html": { "href": "api/Hi.Motion.MotionUtil.html", "title": "Class MotionUtil | HiAPI-C# 2025", "summary": "Class MotionUtil Namespace Hi.Motion Assembly HiMech.dll Cutter location utility. public static class MotionUtil Inheritance object MotionUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GetLinearRatio(Vec3d, Vec3d, Vec3d) Get linear ratio, which is cos(theta) square. Theta is the clamping angle between (v1-v0) and (v2-v1). public static double GetLinearRatio(Vec3d v0, Vec3d v1, Vec3d v2) Parameters v0 Vec3d v1 Vec3d v2 Vec3d Returns double InterpolateClMat(Mat4d, DVec3d) Interpolates the cutter location mat by cutter location and orientation. public static IEnumerable InterpolateClMat(Mat4d clMat0, DVec3d targetCl) Parameters clMat0 Mat4d current cutter location mat, at begining position targetCl DVec3d The target cl, at end position Returns IEnumerable InterpolateClRotMatByClNormal(Mat4d, Vec3d) Interpolates the cutter location mat by cutter orientation. public static IEnumerable InterpolateClRotMatByClNormal(Mat4d clMat0, Vec3d targetClNormal) Parameters clMat0 Mat4d current cutter location mat, at begining position targetClNormal Vec3d The target cl.n, at end position Returns IEnumerable Interpolation(Mat4d, Mat4d, double) Interpolate by rotation and translation. public static Mat4d Interpolation(Mat4d m0, Mat4d m1, double alpha) Parameters m0 Mat4d m0 m1 Mat4d m1 alpha double ratio between m0 and m1. Returns Mat4d interpolated matrix IsMcLinear(DVec3d, DVec3d, DVec3d, double) Determines if three machine coordinate points form a linear path. public static bool IsMcLinear(DVec3d mc0, DVec3d mc1, DVec3d mc2, double linearGap = 0.9999999) Parameters mc0 DVec3d The first machine coordinate point. mc1 DVec3d The second machine coordinate point. mc2 DVec3d The third machine coordinate point. linearGap double The threshold for linearity determination. Default is (1 - 1e-7). Returns bool True if the points form a linear path; otherwise, false." }, "api/Hi.Motion.html": { "href": "api/Hi.Motion.html", "title": "Namespace Hi.Motion | HiAPI-C# 2025", "summary": "Namespace Hi.Motion Classes MotionUtil Cutter location utility." }, "api/Hi.Native.StopSource.html": { "href": "api/Hi.Native.StopSource.html", "title": "Class StopSource | HiAPI-C# 2025", "summary": "Class StopSource Namespace Hi.Native Assembly HiDisp.dll Represents a source that can be used to create and control stop tokens. public class StopSource : IDisposable Inheritance object StopSource Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StopSource() Initializes a new instance of the StopSource class. public StopSource() Properties StopSourcePtr Gets the pointer to the native stop source. public nint StopSourcePtr { get; } Property Value nint Methods 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 ~StopSource() Finalizer for the StopSource class. protected ~StopSource() GetStopToken() Gets a stop token from this source. public StopToken GetStopToken() Returns StopToken A new StopToken instance. IsStopPossible() Checks if stopping is possible for this source. public bool IsStopPossible() Returns bool True if stopping is possible; otherwise, false. IsStopRequested() Checks if stopping has been requested for this source. public bool IsStopRequested() Returns bool True if stopping has been requested; otherwise, false. RequestStop() Requests stopping of operations associated with this source. public bool RequestStop() Returns bool True if the stop request was successful; otherwise, false." }, "api/Hi.Native.StopToken.html": { "href": "api/Hi.Native.StopToken.html", "title": "Class StopToken | HiAPI-C# 2025", "summary": "Class StopToken Namespace Hi.Native Assembly HiDisp.dll Represents a token that can be used to request cancellation of operations. public class StopToken : IDisposable Inheritance object StopToken Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StopToken(nint, bool) Initializes a new instance of the StopToken class. public StopToken(nint stopTokenPtr, bool isDisposable) Parameters stopTokenPtr nint Pointer to the native stop token isDisposable bool Specifies whether this token should be disposed by managed code: Set to false if the pointer is created by C++ (disposal handled by native code) Set to true if the pointer is created by StopSource.GetStopToken() (disposal handled by managed code) Properties StopTokenPtr Gets the pointer to the native stop token. public nint StopTokenPtr { get; } Property Value nint Methods 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 ~StopToken() Finalizer for the StopToken class. protected ~StopToken() IsStopPossible() Checks if stopping is possible for this token. public bool IsStopPossible() Returns bool True if stopping is possible; otherwise, false. IsStopRequested() Checks if stopping has been requested for this token. public bool IsStopRequested() Returns bool True if stopping has been requested; otherwise, false." }, "api/Hi.Native.StopTokenKit.html": { "href": "api/Hi.Native.StopTokenKit.html", "title": "Class StopTokenKit | HiAPI-C# 2025", "summary": "Class StopTokenKit Namespace Hi.Native Assembly HiDisp.dll A kit that manages the lifecycle of a StopToken and its associated resources. public class StopTokenKit : IDisposable Inheritance object StopTokenKit Implements 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) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors StopTokenKit(CancellationToken) Initializes a new instance of the StopTokenKit class. public StopTokenKit(CancellationToken token) Parameters token CancellationToken The cancellation token to register with. Properties StopTokenPtr Gets the pointer to the native stop token. public nint StopTokenPtr { get; } Property Value nint Methods 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" }, "api/Hi.Native.StopTokenUtil.html": { "href": "api/Hi.Native.StopTokenUtil.html", "title": "Class StopTokenUtil | HiAPI-C# 2025", "summary": "Class StopTokenUtil Namespace Hi.Native Assembly HiDisp.dll Utility class for working with stop tokens. public static class StopTokenUtil Inheritance object StopTokenUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods GenStopTokenKit(CancellationToken) Generates a StopTokenKit from a CancellationToken. public static StopTokenKit GenStopTokenKit(this CancellationToken token) Parameters token CancellationToken The cancellation token to convert. Returns StopTokenKit A new StopTokenKit instance." }, "api/Hi.Native.bind_t.html": { "href": "api/Hi.Native.bind_t.html", "title": "Struct bind_t | HiAPI-C# 2025", "summary": "Struct bind_t Namespace Hi.Native Assembly HiDisp.dll Runtime rendering data for each iteration in rendering loop. It manipulates geometry transformation, such as moving, rotatingand scaling. It also deal with color and picking. A bind_t object is generated by rendering in the every beginning of each rendering iteration. public struct bind_t 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 height Canvas height. public int height Field Value int is_picking_mode Is picking mode. public int is_picking_mode Field Value int models Model matrixes in MVP convention. public mat_stack_t models Field Value mat_stack_t picking_id Current picking id. public int picking_id Field Value int pixelProj Pixel mapping part of the projection matrix in MVP convention. public mat4d pixelProj Field Value mat4d See Also projMat pixel_width_on_model Pixel width on model layer. public double pixel_width_on_model Field Value double projMat Projection matrix in MVP convention. Equal to scaleProj * pixelProj. public mat4d projMat Field Value mat4d rgb Current color (rgb). public vec3f rgb Field Value vec3f scaleProj Scale part of the projection matrix in MVP convention. public mat4d scaleProj Field Value mat4d See Also projMat sparkle_rate Sparkle rate of specular light. The rate only effects on the Drawing which contains N(normal) value. public float sparkle_rate Field Value float view View matrix in MVP convention. public mat4d view Field Value mat4d vpMat view * projMat. public mat4d vpMat Field Value mat4d width Canvas width. public int width Field Value int" }, "api/Hi.Native.box2d.html": { "href": "api/Hi.Native.box2d.html", "title": "Struct box2d | HiAPI-C# 2025", "summary": "Struct box2d Namespace Hi.Native Assembly HiGeom.dll Native box3d. public struct box2d 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) Constructors box2d(Box2d) Ctor. public box2d(Box2d src) Parameters src Box2d src Fields max max. public vec2d max Field Value vec2d min min. public vec2d min Field Value vec2d Methods ExpandToBox2d(Box2d) public void ExpandToBox2d(Box2d dst) Parameters dst Box2d" }, "api/Hi.Native.box3d.html": { "href": "api/Hi.Native.box3d.html", "title": "Struct box3d | HiAPI-C# 2025", "summary": "Struct box3d Namespace Hi.Native Assembly HiGeom.dll Native implementation of a 3D bounding box structure for interop scenarios. public struct box3d : IExpandToBox3d Implements IExpandToBox3d Inherited Members ValueType.Equals(object) ValueType.GetHashCode() object.Equals(object, object) object.GetType() object.ReferenceEquals(object, object) Extension Methods GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) 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) Constructors box3d(Box3d) Initializes a new instance of the box3d struct from a Box3d object. public box3d(Box3d src) Parameters src Box3d The source Box3d object to convert from. Fields max The maximum point of the box (upper-right-front corner). public vec3d max Field Value vec3d min The minimum point of the box (lower-left-back corner). public vec3d min Field Value vec3d Methods 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 ToString() Returns the fully qualified type name of this instance. public override string ToString() Returns string The fully qualified type name." }, "api/Hi.Native.expand_to_box3d_func_t.html": { "href": "api/Hi.Native.expand_to_box3d_func_t.html", "title": "Delegate expand_to_box3d_func_t | HiAPI-C# 2025", "summary": "Delegate expand_to_box3d_func_t Namespace Hi.Native Assembly HiDisp.dll Delegate for expanding a bounding box. public delegate void expand_to_box3d_func_t(void* para, box3d* dst) Parameters para void* User parameter. dst box3d* Destination box to expand. 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)" }, "api/Hi.Native.html": { "href": "api/Hi.Native.html", "title": "Namespace Hi.Native | HiAPI-C# 2025", "summary": "Namespace Hi.Native Classes StopSource Represents a source that can be used to create and control stop tokens. StopToken Represents a token that can be used to request cancellation of operations. StopTokenKit A kit that manages the lifecycle of a StopToken and its associated resources. StopTokenUtil Utility class for working with stop tokens. Structs bind_t Runtime rendering data for each iteration in rendering loop. It manipulates geometry transformation, such as moving, rotatingand scaling. It also deal with color and picking. A bind_t object is generated by rendering in the every beginning of each rendering iteration. box2d Native box3d. box3d Native implementation of a 3D bounding box structure for interop scenarios. key_event_t Native key event. key_table__transform_view_by_key_pressing_t Native key table for native function transform_view_by_key_pressing. Key values follow W3C KeyboardEvent.key standard (e.g. “Home”, “ArrowLeft”, “Shift”). mat4d Native mat4d. mat_stack_t Native mat_stack_t. mouse_button_event_t Native mouse button event. mouse_button_table__transform_view_by_mouse_drag_t Mouse button table for native function of transform_view_by_mouse_drag. mouse_move_event_t Native mouse move event. mouse_wheel_event_t Native mouse wheel event. panel_state_t Native panel state. picking_event_t Internal Use Only. picking_mark_t Internal Use Only. tri3d Native tri3d. vec2d Native vec2d. vec3d Native vec3d. vec3f Native vec3f. Enums ui_event_type Native ui event. Delegates expand_to_box3d_func_t Delegate for expanding a bounding box." }, "api/Hi.Native.key_event_t.html": { "href": "api/Hi.Native.key_event_t.html", "title": "Struct key_event_t | HiAPI-C# 2025", "summary": "Struct key_event_t Namespace Hi.Native Assembly HiDisp.dll Native key event. public struct key_event_t 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 type Event type. public ui_event_type type Field Value ui_event_type Properties Key Key string (W3C KeyboardEvent.key value, e.g. “Alt”, “ArrowLeft”, “a”). public string Key { get; } Property Value string" }, "api/Hi.Native.key_table__transform_view_by_key_pressing_t.html": { "href": "api/Hi.Native.key_table__transform_view_by_key_pressing_t.html", "title": "Struct key_table__transform_view_by_key_pressing_t | HiAPI-C# 2025", "summary": "Struct key_table__transform_view_by_key_pressing_t Namespace Hi.Native Assembly HiDisp.dll Native key table for native function transform_view_by_key_pressing. Key values follow W3C KeyboardEvent.key standard (e.g. “Home”, “ArrowLeft”, “Shift”). public struct key_table__transform_view_by_key_pressing_t 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 ARROW_DOWN ARROW_DOWN. W3C key: “ArrowDown” public string ARROW_DOWN Field Value string ARROW_LEFT ARROW_LEFT. W3C key: “ArrowLeft” public string ARROW_LEFT Field Value string ARROW_RIGHT ARROW_RIGHT. W3C key: “ArrowRight” public string ARROW_RIGHT Field Value string ARROW_UP ARROW_UP. W3C key: “ArrowUp” public string ARROW_UP Field Value string F1 F1. W3C key: “F1” public string F1 Field Value string F2 F2. W3C key: “F2” public string F2 Field Value string F3 F3. W3C key: “F3” public string F3 Field Value string F4 F4. W3C key: “F4” public string F4 Field Value string HOME HOME. W3C key: “Home” public string HOME Field Value string PAGE_DOWN PAGE_DOWN. W3C key: “PageDown” public string PAGE_DOWN Field Value string PAGE_UP PAGE_UP. W3C key: “PageUp” public string PAGE_UP Field Value string SHIFT SHIFT. W3C key: “Shift” public string SHIFT Field Value string" }, "api/Hi.Native.mat4d.html": { "href": "api/Hi.Native.mat4d.html", "title": "Struct mat4d | HiAPI-C# 2025", "summary": "Struct mat4d Namespace Hi.Native Assembly HiGeom.dll Native mat4d. public struct mat4d : IEquatable Implements IEquatable Inherited Members 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) Constructors mat4d(Mat4d) Ctor. public mat4d(Mat4d mat) Parameters mat Mat4d managed matrix mat4d(double[]) Ctor. public mat4d(double[] m) Parameters m double[] array that has 4x4=16 elements Fields m value array. public double* m Field Value double* Methods Equals(mat4d) Indicates whether the current object is equal to another object of the same type. public bool Equals(mat4d other) Parameters other mat4d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Operators operator ==(mat4d, mat4d) public static bool operator ==(mat4d left, mat4d right) Parameters left mat4d right mat4d Returns bool operator !=(mat4d, mat4d) public static bool operator !=(mat4d left, mat4d right) Parameters left mat4d right mat4d Returns bool" }, "api/Hi.Native.mat_stack_t.html": { "href": "api/Hi.Native.mat_stack_t.html", "title": "Struct mat_stack_t | HiAPI-C# 2025", "summary": "Struct mat_stack_t Namespace Hi.Native Assembly HiDisp.dll Native mat_stack_t. public struct mat_stack_t 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)" }, "api/Hi.Native.mouse_button_event_t.html": { "href": "api/Hi.Native.mouse_button_event_t.html", "title": "Struct mouse_button_event_t | HiAPI-C# 2025", "summary": "Struct mouse_button_event_t Namespace Hi.Native Assembly HiDisp.dll Native mouse button event. public struct mouse_button_event_t 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 mouse_button Mouse button code. public long mouse_button Field Value long type Event type. public ui_event_type type Field Value ui_event_type" }, "api/Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html": { "href": "api/Hi.Native.mouse_button_table__transform_view_by_mouse_drag_t.html", "title": "Struct mouse_button_table__transform_view_by_mouse_drag_t | HiAPI-C# 2025", "summary": "Struct mouse_button_table__transform_view_by_mouse_drag_t Namespace Hi.Native Assembly HiDisp.dll Mouse button table for native function of transform_view_by_mouse_drag. public struct mouse_button_table__transform_view_by_mouse_drag_t 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 LEFT_BUTTON Left button. public long LEFT_BUTTON Field Value long RIGHT_BUTTON Right button. public long RIGHT_BUTTON Field Value long" }, "api/Hi.Native.mouse_move_event_t.html": { "href": "api/Hi.Native.mouse_move_event_t.html", "title": "Struct mouse_move_event_t | HiAPI-C# 2025", "summary": "Struct mouse_move_event_t Namespace Hi.Native Assembly HiDisp.dll Native mouse move event. public struct mouse_move_event_t 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 cursor_x Cursor position x. public int cursor_x Field Value int cursor_y Cursor position y. public int cursor_y Field Value int type Event type. public ui_event_type type Field Value ui_event_type" }, "api/Hi.Native.mouse_wheel_event_t.html": { "href": "api/Hi.Native.mouse_wheel_event_t.html", "title": "Struct mouse_wheel_event_t | HiAPI-C# 2025", "summary": "Struct mouse_wheel_event_t Namespace Hi.Native Assembly HiDisp.dll Native mouse wheel event. public struct mouse_wheel_event_t 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 type Event type. public ui_event_type type Field Value ui_event_type wheel_offset_x Wheel offset X. public int wheel_offset_x Field Value int wheel_offset_y Wheel offset Y. public int wheel_offset_y Field Value int" }, "api/Hi.Native.panel_state_t.html": { "href": "api/Hi.Native.panel_state_t.html", "title": "Struct panel_state_t | HiAPI-C# 2025", "summary": "Struct panel_state_t Namespace Hi.Native Assembly HiDisp.dll Native panel state. public struct panel_state_t 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 cursor_pre_x Previous cursor X position. public int cursor_pre_x Field Value int cursor_pre_y Previous cursor Y position. public int cursor_pre_y Field Value int cursor_x Current cursor X position. public int cursor_x Field Value int cursor_y Current cursor Y position. public int cursor_y Field Value int is_visible Is panel visible. public int is_visible Field Value int panel_h Panel height. public int panel_h Field Value int panel_w Panel width. public int panel_w Field Value int panel_x X position of the panel from the system desktop. public int panel_x Field Value int panel_y Y position of the panel from the system desktop. public int panel_y Field Value int Methods IsKeyPressed(string) Checks if a keyboard key is currently pressed. public bool IsKeyPressed(string key) Parameters key string Key string (W3C KeyboardEvent.key value, e.g. “Alt”, “ArrowLeft”). Returns bool IsMouseButtonPressed(long) Checks if a mouse button is currently pressed. public bool IsMouseButtonPressed(long mouse_button) Parameters mouse_button long Mouse button code. Returns bool" }, "api/Hi.Native.picking_event_t.html": { "href": "api/Hi.Native.picking_event_t.html", "title": "Struct picking_event_t | HiAPI-C# 2025", "summary": "Struct picking_event_t Namespace Hi.Native Assembly HiDisp.dll Internal Use Only. public struct picking_event_t 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)" }, "api/Hi.Native.picking_mark_t.html": { "href": "api/Hi.Native.picking_mark_t.html", "title": "Struct picking_mark_t | HiAPI-C# 2025", "summary": "Struct picking_mark_t Namespace Hi.Native Assembly HiDisp.dll Internal Use Only. public struct picking_mark_t 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 picked Internal Use Only. Pointer to the picked object. public void* picked Field Value void* picking_func Internal Use Only. Function pointer to the picking function. public nint picking_func Field Value nint" }, "api/Hi.Native.tri3d.html": { "href": "api/Hi.Native.tri3d.html", "title": "Struct tri3d | HiAPI-C# 2025", "summary": "Struct tri3d Namespace Hi.Native Assembly HiGeom.dll Native tri3d. public struct tri3d 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) Constructors tri3d(Tri3d) Ctor. public tri3d(Tri3d src) Parameters src Tri3d src tri3d(vec3d, vec3d, vec3d, vec3d) Ctor. public tri3d(vec3d p0, vec3d p1, vec3d p2, vec3d n) Parameters p0 vec3d p0 p1 vec3d p1 p2 vec3d p2 n vec3d n Fields n Normal. public vec3d n Field Value vec3d p0 Apex 0. public vec3d p0 Field Value vec3d p1 Apex 1. public vec3d p1 Field Value vec3d p2 Apex 2. public vec3d p2 Field Value vec3d" }, "api/Hi.Native.ui_event_type.html": { "href": "api/Hi.Native.ui_event_type.html", "title": "Enum ui_event_type | HiAPI-C# 2025", "summary": "Enum ui_event_type Namespace Hi.Native Assembly HiDisp.dll Native ui event. public enum ui_event_type 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 Key_Pressed = 1 Key pressed. Key_Released = 2 Key released. Mouse_Entered = 5 Mouse entered. Mouse_Exited = 6 Mouse exited. Mouse_Moved = 7 Mouse moved. Mouse_Pressed = 3 Mouse pressed. Mouse_Released = 4 Mouse released. Mouse_Wheel_Moved = 8 Mouse wheel moved. No_Event = 0 No event. Not_Defined = 9 Not defined." }, "api/Hi.Native.vec2d.html": { "href": "api/Hi.Native.vec2d.html", "title": "Struct vec2d | HiAPI-C# 2025", "summary": "Struct vec2d Namespace Hi.Native Assembly HiGeom.dll Native vec2d. public struct vec2d : IEquatable Implements IEquatable Inherited Members 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) Constructors vec2d(Vec2d) Ctor. public vec2d(Vec2d src) Parameters src Vec2d src vec2d(double, double) Ctor.x public vec2d(double x, double y) Parameters x double x y double y Fields x x. public double x Field Value double y y. public double y Field Value double Methods Equals(vec2d) Indicates whether the current object is equal to another object of the same type. public bool Equals(vec2d other) Parameters other vec2d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Operators operator ==(vec2d, vec2d) public static bool operator ==(vec2d left, vec2d right) Parameters left vec2d right vec2d Returns bool operator !=(vec2d, vec2d) public static bool operator !=(vec2d left, vec2d right) Parameters left vec2d right vec2d Returns bool" }, "api/Hi.Native.vec3d.html": { "href": "api/Hi.Native.vec3d.html", "title": "Struct vec3d | HiAPI-C# 2025", "summary": "Struct vec3d Namespace Hi.Native Assembly HiGeom.dll Native vec3d. public struct vec3d : IEquatable Implements IEquatable Inherited Members 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) Constructors vec3d(Vec3d) Ctor. public vec3d(Vec3d src) Parameters src Vec3d src vec3d(double, double, double) Ctor.x public vec3d(double x, double y, double z) Parameters x double x y double y z double z Fields x x. public double x Field Value double y y. public double y Field Value double z z. public double z Field Value double Methods Equals(vec3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(vec3d other) Parameters other vec3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. ToString() To representative string with format:(x,y,z). public override string ToString() Returns string Representative string Operators operator ==(vec3d, vec3d) public static bool operator ==(vec3d left, vec3d right) Parameters left vec3d right vec3d Returns bool operator !=(vec3d, vec3d) public static bool operator !=(vec3d left, vec3d right) Parameters left vec3d right vec3d Returns bool" }, "api/Hi.Native.vec3f.html": { "href": "api/Hi.Native.vec3f.html", "title": "Struct vec3f | HiAPI-C# 2025", "summary": "Struct vec3f Namespace Hi.Native Assembly HiGeom.dll Native vec3f. public struct vec3f : IEquatable Implements IEquatable Inherited Members 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) Constructors vec3f(Vec3d) Ctor. public vec3f(Vec3d src) Parameters src Vec3d src vec3f(float, float, float) Ctor. public vec3f(float x, float y, float z) Parameters x float x y float y z float z Fields x x. public float x Field Value float y y. public float y Field Value float z z. public float z Field Value float Methods Equals(vec3f) Indicates whether the current object is equal to another object of the same type. public bool Equals(vec3f other) Parameters other vec3f An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Indicates whether this instance and a specified object are equal. public override bool Equals(object obj) Parameters obj object The object to compare with the current instance. Returns bool true if obj and this instance are the same type and represent the same value; otherwise, false. GetHashCode() Returns the hash code for this instance. public override int GetHashCode() Returns int A 32-bit signed integer that is the hash code for this instance. Operators operator ==(vec3f, vec3f) public static bool operator ==(vec3f left, vec3f right) Parameters left vec3f right vec3f Returns bool operator !=(vec3f, vec3f) public static bool operator !=(vec3f left, vec3f right) Parameters left vec3f right vec3f Returns bool" }, "api/Hi.NcMech.Fixtures.Fixture.html": { "href": "api/Hi.NcMech.Fixtures.Fixture.html", "title": "Class Fixture | HiAPI-C# 2025", "summary": "Class Fixture Namespace Hi.NcMech.Fixtures Assembly HiMech.dll Represents a fixture used to hold workpieces during machining operations. public class Fixture : IGetSolid, IMakeXmlSource, IDisplayee, IExpandToBox3d, IGetAnchoredDisplayeeList, IGetAsmb, IGetAnchor, IGetTopoIndex, IDisposable, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable Inheritance object Fixture Implements IGetSolid IMakeXmlSource IDisplayee IExpandToBox3d IGetAnchoredDisplayeeList IGetAsmb IGetAnchor IGetTopoIndex IDisposable IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 Fixture() Initializes a new instance of the Fixture class. public Fixture() Fixture(XElement, string, string, IProgress) Initializes a new instance of the Fixture class from XML. public Fixture(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing fixture data. baseDirectory string The base directory for resolving relative paths. relFile string The relative file path. progress IProgress Progress reporter for diagnostic messages emitted during construction. Fields XName Name for XML IO. public static string XName Field Value string Properties Asmb Gets the assembly that contains the fixture components. public Asmb Asmb { get; } Property Value Asmb CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Geom Geometry. Delegate by Solid.Geom. public IGetStl Geom { get; set; } Property Value IGetStl GeomAnchor Anchor that represents the geometry origin of the fixture. public Anchor GeomAnchor { get; } Property Value Anchor GeomToTableBranch Branch that transforms from geometry origin to table origin. public Branch GeomToTableBranch { get; } Property Value Branch GeomToTableTransformer Transformer from Geometry origin to table (machine tool side) origin. public ITransformer GeomToTableTransformer { get; set; } Property Value ITransformer GeomToWorkpieceBranch Branch that transforms from geometry origin to workpiece origin. public Branch GeomToWorkpieceBranch { get; } Property Value Branch GeomToWorkpieceTransformer Transformer from Geometry origin to workpiece origin. public ITransformer GeomToWorkpieceTransformer { get; set; } Property Value ITransformer Solid Gets the solid representation of the fixture. public Solid Solid { get; } Property Value Solid TableBuckle Table buckle. Root. Solid anchor. public Anchor TableBuckle { get; } Property Value Anchor ThemeColor Default theme color used when rendering the fixture. public static Vec3d ThemeColor { get; } Property Value Vec3d WorkpieceBuckle Gets the workpiece buckle anchor point. public Anchor WorkpieceBuckle { get; } Property Value Anchor Methods ClearGeomCache() Update cache of Geom. The method is used after inner content of Geom is altered. public void ClearGeomCache() 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollidableAnchor() Gets the anchor associated with this collidable leaf. public Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetWorkpieceTransformationToGeomTopCenter() Sets the workpiece transformation to position it at the top center of the fixture. public void SetWorkpieceTransformationToGeomTopCenter()" }, "api/Hi.NcMech.Fixtures.FixtureEditorDisplayee.html": { "href": "api/Hi.NcMech.Fixtures.FixtureEditorDisplayee.html", "title": "Class FixtureEditorDisplayee | HiAPI-C# 2025", "summary": "Class FixtureEditorDisplayee Namespace Hi.NcMech.Fixtures Assembly HiMech.dll Displayee for fixture visualization and editor overlays. public class FixtureEditorDisplayee : IDisplayee, IExpandToBox3d, IGetAsmb, IGetAnchor, IGetTopoIndex Inheritance object FixtureEditorDisplayee Implements IDisplayee IExpandToBox3d IGetAsmb IGetAnchor IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 Config Gets or sets the visualization configuration. public FixtureEditorDisplayeeConfig Config { get; set; } Property Value FixtureEditorDisplayeeConfig Fixture Gets the current Fixture. public Fixture Fixture { get; } Property Value Fixture FixtureGetter Gets or sets the delegate that provides the current Fixture. public Func FixtureGetter { get; set; } Property Value Func RenderingMode Gets or sets the rendering mode for the underlying solid. public Solid.RenderingModeEnum RenderingMode { get; set; } Property Value Solid.RenderingModeEnum ShowGeomAnchor Gets or sets whether to show the geometry anchor. public bool ShowGeomAnchor { get; set; } Property Value bool ShowTableBuckle Gets or sets whether to show the table buckle anchor. public bool ShowTableBuckle { get; set; } Property Value bool ShowWorkpieceBuckle Gets or sets whether to show the workpiece buckle anchor. public bool ShowWorkpieceBuckle { get; set; } 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. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb." }, "api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html": { "href": "api/Hi.NcMech.Fixtures.FixtureEditorDisplayeeConfig.html", "title": "Class FixtureEditorDisplayeeConfig | HiAPI-C# 2025", "summary": "Class FixtureEditorDisplayeeConfig Namespace Hi.NcMech.Fixtures Assembly HiMech.dll Configuration settings for fixture editor display features. public class FixtureEditorDisplayeeConfig : IMakeXmlSource Inheritance object FixtureEditorDisplayeeConfig Implements IMakeXmlSource 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) Constructors FixtureEditorDisplayeeConfig() Initializes a new instance of the FixtureEditorDisplayeeConfig class. public FixtureEditorDisplayeeConfig() FixtureEditorDisplayeeConfig(XElement) Initializes a new instance from XML. public FixtureEditorDisplayeeConfig(XElement element) Parameters element XElement Properties RenderingMode Gets or sets the rendering mode of the solid. public Solid.RenderingModeEnum RenderingMode { get; set; } Property Value Solid.RenderingModeEnum ShowGeomAnchor Gets or sets whether to show the geometry anchor. public bool ShowGeomAnchor { get; set; } Property Value bool ShowTableBuckle Gets or sets whether to show the table buckle. public bool ShowTableBuckle { get; set; } Property Value bool ShowWorkpieceBuckle Gets or sets whether to show the workpiece buckle. public bool ShowWorkpieceBuckle { get; set; } Property Value bool XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Fixtures.html": { "href": "api/Hi.NcMech.Fixtures.html", "title": "Namespace Hi.NcMech.Fixtures | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Fixtures Classes Fixture Represents a fixture used to hold workpieces during machining operations. FixtureEditorDisplayee Displayee for fixture visualization and editor overlays. FixtureEditorDisplayeeConfig Configuration settings for fixture editor display features." }, "api/Hi.NcMech.Holders.CylindroidHolder.html": { "href": "api/Hi.NcMech.Holders.CylindroidHolder.html", "title": "Class CylindroidHolder | HiAPI-C# 2025", "summary": "Class CylindroidHolder Namespace Hi.NcMech.Holders Assembly HiMech.dll Represents a cylindrical tool holder for machining operations. public class CylindroidHolder : IHolder, ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IAnchoredDisplayee, IDisplayee, IExpandToBox3d, IMakeXmlSource, IAbstractNote, IGetFletchBuckle, IDuplicate, INameNote, IAnchoredCollidabled, IGetCollidable, IGetAnchor, IGetTopoIndex, IGetSolid, IDisposable, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable, IClearCache Inheritance object CylindroidHolder Implements IHolder ITopo IGetAsmb IGetAnchoredDisplayeeList IAnchoredDisplayee IDisplayee IExpandToBox3d IMakeXmlSource IAbstractNote IGetFletchBuckle IDuplicate INameNote IAnchoredCollidabled IGetCollidable IGetAnchor IGetTopoIndex IGetSolid IDisposable IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable IClearCache 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 CylindroidHolder() Ctor. public CylindroidHolder() CylindroidHolder(Cylindroid) Ctor. public CylindroidHolder(Cylindroid cylindroid) Parameters cylindroid Cylindroid The cylindroid geometry for this holder. CylindroidHolder(XElement, string, string, IProgress) Initializes a new instance of the CylindroidHolder class from XML. public CylindroidHolder(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing holder data. baseDirectory string The base directory for resolving relative paths. relFile string The relative file path. progress IProgress Progress reporter for diagnostic messages emitted during construction. Fields XName XML Name. public static string XName Field Value string Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string Branch Gets the branch connecting the fletch buckle to the tail buckle. public Branch Branch { get; } Property Value Branch CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag CutterBuckle Gets the cutter buckle anchor. public Anchor CutterBuckle { get; } Property Value Anchor Cylindroid Gets or sets the cylindroid geometry that defines this holder. public Cylindroid Cylindroid { get; set; } Property Value Cylindroid GeomAnchor Equivalent of CutterBuckle. public Anchor GeomAnchor { get; } Property Value Anchor Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string PolarResolution2d Gets or sets the polar resolution used for STL generation. public PolarResolution2d PolarResolution2d { get; set; } Property Value PolarResolution2d SpindleBuckle Gets the spindle buckle anchor. public Anchor SpindleBuckle { get; } Property Value Anchor Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() 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 Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidableAnchor() Gets the anchor associated with the collidable object. public Anchor GetCollidableAnchor() Returns Anchor The Anchor instance. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. public Anchor GetFletchBuckle() Returns Anchor buckle anchor GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. GetTailBuckle() Gets the cutter buckle anchor, generally located on the free-end side. public Anchor GetTailBuckle() Returns Anchor MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByCylindroid() Update Branch By Cylindroid. Call the function if the Cylindroid content changed. public void UpdateByCylindroid()" }, "api/Hi.NcMech.Holders.FreeformHolder.html": { "href": "api/Hi.NcMech.Holders.FreeformHolder.html", "title": "Class FreeformHolder | HiAPI-C# 2025", "summary": "Class FreeformHolder Namespace Hi.NcMech.Holders Assembly HiMech.dll Represents a freeform tool holder with customizable geometry. public class FreeformHolder : IHolder, ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IAnchoredDisplayee, IDisplayee, IExpandToBox3d, IMakeXmlSource, IAbstractNote, IGetFletchBuckle, IDuplicate, INameNote, IAnchoredCollidabled, IGetCollidable, IGetAnchor, IGetTopoIndex, IGetSolid, IDisposable, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable, IClearCache Inheritance object FreeformHolder Implements IHolder ITopo IGetAsmb IGetAnchoredDisplayeeList IAnchoredDisplayee IDisplayee IExpandToBox3d IMakeXmlSource IAbstractNote IGetFletchBuckle IDuplicate INameNote IAnchoredCollidabled IGetCollidable IGetAnchor IGetTopoIndex IGetSolid IDisposable IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable IClearCache 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 FreeformHolder() Ctor. public FreeformHolder() FreeformHolder(IStlSource) Initializes a new instance of the FreeformHolder class from STL geometry. public FreeformHolder(IStlSource geom) Parameters geom IStlSource The STL geometry provider. FreeformHolder(XElement, string, string, IProgress) Initializes a new instance of the FreeformHolder class from XML data. public FreeformHolder(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement The XML element containing holder data baseDirectory string Base directory path for resolving relative paths relFile string Relative file path progress IProgress Progress reporter for diagnostic messages emitted during construction. Fields XName XML Name. public static string XName Field Value string Properties AbstractNote Gets a descriptive note or abstract about the object. public string AbstractNote { get; } Property Value string CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag CutterBuckle Gets the tail buckle (tool buckle) anchor point public Anchor CutterBuckle { get; } Property Value Anchor Geom Gets the transformation geometry. Internal Use Only. public IStlSource Geom { get; set; } Property Value IStlSource Remarks Call UpdateByGeom() to keep state of Hi.NcMech.Holders.FreeformHolder.Solid if content modified. GeomAnchor Gets the geometry anchor point public Anchor GeomAnchor { get; } Property Value Anchor GeomAnchorToSpindleBuckleBranch Gets the branch from GeomAnchor to SpindleBuckle. public Branch GeomAnchorToSpindleBuckleBranch { get; } Property Value Branch GeomToCutterBranch Gets the branch from GeomAnchor to CutterBuckle. public Branch GeomToCutterBranch { get; } Property Value Branch GeomToCutterTransformer Gets or sets the transformer from geometry to tail (Cutter). public ITransformer GeomToCutterTransformer { get; set; } Property Value ITransformer GeomToSpindleTransformer Gets or sets the transformer from geometry to base (Spindle) public ITransformer GeomToSpindleTransformer { get; set; } Property Value ITransformer Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string PolarResolution2d Gets or sets the polar resolution 2D settings. public PolarResolution2d PolarResolution2d { get; set; } Property Value PolarResolution2d SpindleBuckle Gets the base buckle (spindle buckle) anchor point public Anchor SpindleBuckle { get; } Property Value Anchor Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() 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 Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidableAnchor() Gets the anchor associated with the collidable object. public Anchor GetCollidableAnchor() Returns Anchor The Anchor instance. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetFletchBuckle() Get fletch buckle anchor. the anchor that generally connect to fixed part such as ground and triggering(motor)-side. public Anchor GetFletchBuckle() Returns Anchor buckle anchor GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. GetTailBuckle() Gets the cutter buckle anchor, generally located on the free-end side. public Anchor GetTailBuckle() Returns Anchor MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory UpdateByGeom() Call the function if the Geom content changed. public void UpdateByGeom()" }, "api/Hi.NcMech.Holders.HolderEditorDisplayee.html": { "href": "api/Hi.NcMech.Holders.HolderEditorDisplayee.html", "title": "Class HolderEditorDisplayee | HiAPI-C# 2025", "summary": "Class HolderEditorDisplayee Namespace Hi.NcMech.Holders Assembly HiMech.dll Displayee for holder editor that provides visualization functionality. public class HolderEditorDisplayee : IAnchoredDisplayee, IGetAnchor, IDisplayee, IExpandToBox3d, IGetAsmb, IGetTopoIndex Inheritance object HolderEditorDisplayee Implements IAnchoredDisplayee IGetAnchor IDisplayee IExpandToBox3d IGetAsmb IGetTopoIndex Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 HolderEditorDisplayee() Initializes a new instance of the HolderEditorDisplayee class public HolderEditorDisplayee() HolderEditorDisplayee(IHolder) Initializes a new instance of the HolderEditorDisplayee class with a specified holder public HolderEditorDisplayee(IHolder holder) Parameters holder IHolder The holder to display Properties Holder Gets or sets the holder to be displayed public IHolder Holder { get; set; } Property Value IHolder RenderingMode Gets or sets the rendering mode for the holder solid. public Solid.RenderingModeEnum RenderingMode { get; set; } Property Value Solid.RenderingModeEnum ShowCutterBuckle Gets or sets whether to show the cutter buckle anchor. public bool ShowCutterBuckle { get; set; } Property Value bool ShowGeomAnchor Gets or sets whether to show the geometry anchor. public bool ShowGeomAnchor { get; set; } Property Value bool ShowSpindleBuckle Gets or sets whether to show the spindle buckle anchor. public bool ShowSpindleBuckle { get; set; } 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. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb." }, "api/Hi.NcMech.Holders.IHolder.html": { "href": "api/Hi.NcMech.Holders.IHolder.html", "title": "Interface IHolder | HiAPI-C# 2025", "summary": "Interface IHolder Namespace Hi.NcMech.Holders Assembly HiMech.dll Interface for tool holders in NC machining. public interface IHolder : ITopo, IGetAsmb, IGetAnchoredDisplayeeList, IAnchoredDisplayee, IDisplayee, IExpandToBox3d, IMakeXmlSource, IAbstractNote, IGetFletchBuckle, IAnchoredCollidableBased, IDuplicate, INameNote, IAnchoredCollidabled, IGetCollidable, IGetAnchor, IGetTopoIndex, IGetSolid Inherited Members IGetAsmb.GetAsmb() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IMakeXmlSource.MakeXmlSource(string, string, bool) IAbstractNote.AbstractNote IGetFletchBuckle.GetFletchBuckle() IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() IDuplicate.Duplicate(params object[]) INameNote.Name INameNote.Note IAnchoredCollidabled.GetCollidableAnchor() IGetCollidable.GetCollidable() IGetAnchor.GetAnchor() IGetSolid.GetSolid() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) TopoDisplayeeUtil.Display(ITopo, Bind) TopoDisplayeeUtil.ExpandToBox3d(ITopo, Box3d) 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 CutterBuckle Gets the cutter buckle anchor. Anchor CutterBuckle { get; } Property Value Anchor GeomAnchor Gets the geometry anchor of the holder. Anchor GeomAnchor { get; } Property Value Anchor SpindleBuckle Gets the spindle buckle anchor. Anchor SpindleBuckle { get; } Property Value Anchor ThemeColor Default theme color for holder visualization. public static Vec3d ThemeColor { get; } Property Value Vec3d Methods GetTailBuckle() Gets the cutter buckle anchor, generally located on the free-end side. Anchor GetTailBuckle() Returns Anchor" }, "api/Hi.NcMech.Holders.html": { "href": "api/Hi.NcMech.Holders.html", "title": "Namespace Hi.NcMech.Holders | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Holders Classes CylindroidHolder Represents a cylindrical tool holder for machining operations. FreeformHolder Represents a freeform tool holder with customizable geometry. HolderEditorDisplayee Displayee for holder editor that provides visualization functionality. Interfaces IHolder Interface for tool holders in NC machining." }, "api/Hi.NcMech.ICollisionIndexPairsSource.html": { "href": "api/Hi.NcMech.ICollisionIndexPairsSource.html", "title": "Interface ICollisionIndexPairsSource | HiAPI-C# 2025", "summary": "Interface ICollisionIndexPairsSource Namespace Hi.NcMech Assembly HiMech.dll Interface that provides access to collision index pairs and XML serialization capabilities. Extends IGetCollisionIndexPairs with XML serialization support. public interface ICollisionIndexPairsSource : IGetCollisionIndexPairs, IMakeXmlSource Inherited Members IGetCollisionIndexPairs.GetCollisionIndexPairs() IMakeXmlSource.MakeXmlSource(string, string, bool) 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)" }, "api/Hi.NcMech.Solids.IGetSolid.html": { "href": "api/Hi.NcMech.Solids.IGetSolid.html", "title": "Interface IGetSolid | HiAPI-C# 2025", "summary": "Interface IGetSolid Namespace Hi.NcMech.Solids Assembly HiMech.dll Interface for retrieving solid geometry objects. Provides a standardized way to access solid models. public interface IGetSolid 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) Methods GetSolid() Gets the solid geometry object. Solid GetSolid() Returns Solid The solid geometry object." }, "api/Hi.NcMech.Solids.Solid.RenderingModeEnum.html": { "href": "api/Hi.NcMech.Solids.Solid.RenderingModeEnum.html", "title": "Enum Solid.RenderingModeEnum | HiAPI-C# 2025", "summary": "Enum Solid.RenderingModeEnum Namespace Hi.NcMech.Solids Assembly HiMech.dll Rendering mode for solids. public enum Solid.RenderingModeEnum 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 Edge = 1 Render only feature edges. Hide = 2 Hidden (do not render). Solid = 0 Render full solid surfaces." }, "api/Hi.NcMech.Solids.Solid.html": { "href": "api/Hi.NcMech.Solids.Solid.html", "title": "Class Solid | HiAPI-C# 2025", "summary": "Class Solid Namespace Hi.NcMech.Solids Assembly HiMech.dll Represents a solid geometry object with display, collision detection, and STL capabilities. Provides thread-safe access to geometry data and caching mechanisms. public class Solid : IGetTriTree, ICollidable, IGetCollidable, IDisplayee, IExpandToBox3d, IStlSource, IGetStl, IPolarResolution2dSourceProperty, IDisposable, IMakeXmlSource, IGetSolid, IUpdateByContent, IClearCache Inheritance object Solid Implements IGetTriTree ICollidable IGetCollidable IDisplayee IExpandToBox3d IStlSource IGetStl IPolarResolution2dSourceProperty IDisposable IMakeXmlSource IGetSolid IUpdateByContent IClearCache Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) StlUtil.ToFaceDrawing(IGetStl) StlUtil.ToLineDrawing(IGetStl) StlUtil.ToSparkleLineDrawing(IGetStl) 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 Solid() Initializes a new instance of the Solid class. public Solid() Solid(IGetStl) Initializes a new instance of the Solid class with the specified STL geometry source. public Solid(IGetStl geom) Parameters geom IGetStl The STL geometry source. Solid(XElement, string, IProgress) Initializes a new instance of the Solid class from XML. public Solid(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Fields XName Gets the XML element name for serialization. public static string XName Field Value string Properties CollisionFlag Gets or sets the collision flag indicating the collision state of this solid. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Geom Gets or sets the STL geometry source. Setting this property will clear the cached data. public IGetStl Geom { get; set; } Property Value IGetStl NativeStl Gets the native STL representation. The data is created from the STL representation when first accessed. public NativeStl NativeStl { get; } Property Value NativeStl PolarResolution2dSource The provider of IPolarResolution2d. public Func PolarResolution2dSource { get; set; } Property Value Func Prepared Gets or sets whether the solid geometry is prepared for use. Setting this to true will ensure all necessary data structures are initialized. Setting this to false will clear the cached data. public bool Prepared { get; set; } Property Value bool Rgb Optional authored display color (RGB, each channel 0~1). Null means not authored: display sites fall back to a color seeded from the hosting anchor's persisted Guid, and Display(Bind) pushes no color of its own. A collision (Collision) always overrides the authored color with red. Serialized as the optional Rgb attribute of the element; legacy readers ignore attributes, so the addition is backward and forward compatible. public Vec3d Rgb { get; set; } Property Value Vec3d SmoothTopoStl3d Gets the native smooth topology STL representation. The data is created from the STL representation when first accessed. public NativeTopoStl3d SmoothTopoStl3d { get; } Property Value NativeTopoStl3d Stl Gets the STL representation of the solid geometry. The STL data is cached after first access. public Stl Stl { get; } Property Value Stl TriTree Gets the triangle tree representation for collision detection. The tree is built from the native STL data when first accessed. public TriTree TriTree { get; } Property Value TriTree Methods ClearCache() Manually clears the cached data if the content of Geom has changed. The cache determines the behavior of the Solid. public void ClearCache() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. Display(Bind, RenderingModeEnum) Displays the solid according to the specified rendering mode. public void Display(Bind bind, Solid.RenderingModeEnum renderingMode) Parameters bind Bind Display binding context. renderingMode Solid.RenderingModeEnum Rendering mode. DisplayFeatureEdges(Bind) Displays the feature edges of the solid. public void DisplayFeatureEdges(Bind bind) Parameters bind Bind Display binding context. Dispose() Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() Dispose(bool) Releases the unmanaged resources and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. 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 GetCollidable() Get ICollidable. public ICollidable GetCollidable() Returns ICollidable The collidable object. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. GetSourceGeom() Gets the source geometry object. public IGetStl GetSourceGeom() Returns IGetStl The source geometry object. GetStl() Gets the STL geometry data. public Stl GetStl() Returns Stl The STL geometry object GetTriTree() Get TriTree. public TriTree GetTriTree() Returns TriTree TriTree MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.NcMech.Solids.SolidFuncSource.html": { "href": "api/Hi.NcMech.Solids.SolidFuncSource.html", "title": "Class SolidFuncSource | HiAPI-C# 2025", "summary": "Class SolidFuncSource Namespace Hi.NcMech.Solids Assembly HiMech.dll Provides a function-based source for solid geometry objects. Allows dynamic generation of solid models through a delegate function. public class SolidFuncSource : IGetSolid Inheritance object SolidFuncSource Implements IGetSolid 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) Constructors SolidFuncSource(Func) Initializes a new instance of the SolidFuncSource class with the specified solid getter function. public SolidFuncSource(Func solidGetter) Parameters solidGetter Func The function that generates the solid geometry object. Properties SolidGetter Gets or sets the function that generates the solid geometry object. public Func SolidGetter { get; set; } Property Value Func Methods GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object." }, "api/Hi.NcMech.Solids.html": { "href": "api/Hi.NcMech.Solids.html", "title": "Namespace Hi.NcMech.Solids | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Solids Classes Solid Represents a solid geometry object with display, collision detection, and STL capabilities. Provides thread-safe access to geometry data and caching mechanisms. SolidFuncSource Provides a function-based source for solid geometry objects. Allows dynamic generation of solid models through a delegate function. Interfaces IGetSolid Interface for retrieving solid geometry objects. Provides a standardized way to access solid models. Enums Solid.RenderingModeEnum Rendering mode for solids." }, "api/Hi.NcMech.Topo.INcStroke.html": { "href": "api/Hi.NcMech.Topo.INcStroke.html", "title": "Interface INcStroke | HiAPI-C# 2025", "summary": "Interface INcStroke Namespace Hi.NcMech.Topo Assembly HiMech.dll Nc capability include key char, stroke and speed limit. public interface INcStroke 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) Methods GetKeyCode() Get key code of the motion axis. string GetKeyCode() Returns string GetSpeedLimit() Get speed limit. double GetSpeedLimit() Returns double GetStrokeMax() Get positivest stroke. double GetStrokeMax() Returns double GetStrokeMin() Get negativest stroke. double GetStrokeMin() Returns double" }, "api/Hi.NcMech.Topo.INcTransformer.html": { "href": "api/Hi.NcMech.Topo.INcTransformer.html", "title": "Interface INcTransformer | HiAPI-C# 2025", "summary": "Interface INcTransformer Namespace Hi.NcMech.Topo Assembly HiMech.dll Transformer for NC motion axis. public interface INcTransformer : IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IToPresentDto, INcStroke Inherited Members IDynamicRegular.Step ITransformer.GetMat() ITransformer.GetMatInv() ITransformer.Clone() IMakeXmlSource.MakeXmlSource(string, string, bool) IToPresentDto.ToPresentDto() INcStroke.GetKeyCode() INcStroke.GetStrokeMin() INcStroke.GetStrokeMax() INcStroke.GetSpeedLimit() 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)" }, "api/Hi.NcMech.Topo.ITopoBrick.html": { "href": "api/Hi.NcMech.Topo.ITopoBrick.html", "title": "Interface ITopoBrick | HiAPI-C# 2025", "summary": "Interface ITopoBrick Namespace Hi.NcMech.Topo Assembly HiMech.dll Interface that represents a topological brick in NC machining. Combines solid geometry, display capabilities, and collision detection functionality. public interface ITopoBrick : IGetSolid, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable Inherited Members IGetSolid.GetSolid() IGetAnchor.GetAnchor() IDisplayee.Display(Bind) IExpandToBox3d.ExpandToBox3d(Box3d) IAnchoredCollidableLeaf.GetCollidableAnchor() IAnchoredCollidableBased.CollidableName IAnchoredCollidableBased.GetAnchoredCollidableNode() ICollidable.CollisionFlag ICollidable.GetCollidee() Extension Methods CollisionUtil.Detect(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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)" }, "api/Hi.NcMech.Topo.NcRotation.html": { "href": "api/Hi.NcMech.Topo.NcRotation.html", "title": "Class NcRotation | HiAPI-C# 2025", "summary": "Class NcRotation Namespace Hi.NcMech.Topo Assembly HiMech.dll Represents a rotational transformer for NC machine tool axes. Provides functionality for rotational motion with stroke and speed limits. public class NcRotation : DynamicRotation, IDynamicRotation, IGetInverseTransformer, INcTransformer, IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IToPresentDto, INcStroke Inheritance object DynamicRotation NcRotation Implements IDynamicRotation IGetInverseTransformer INcTransformer IDynamicRegular IDynamicTransformer ITransformer IMakeXmlSource IToPresentDto INcStroke Inherited Members DynamicRotation.Set(DynamicRotation) DynamicRotation.Step DynamicRotation.GetMat() DynamicRotation.GetMatInv() DynamicRotation.GetInverseTransformer() DynamicRotation.Axis DynamicRotation.Angle_rad DynamicRotation.Angle_deg DynamicRotation.Pivot DynamicRotation.ToPresentDto() 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 NcRotation() Initializes a new instance of the NcRotation class. public NcRotation() NcRotation(Vec3d, double) Initializes a new instance of the NcRotation class with the specified axis and angle. public NcRotation(Vec3d axis, double angle_rad = 0) Parameters axis Vec3d The rotation axis vector. angle_rad double The rotation angle in radians. NcRotation(Vec3d, double, Vec3d) Initializes a new instance of the NcRotation class with the specified axis, angle and pivot point. public NcRotation(Vec3d axis, double angle_rad, Vec3d pivot) Parameters axis Vec3d The rotation axis vector. angle_rad double The rotation angle in radians. pivot Vec3d The pivot point for rotation. NcRotation(XElement) Initializes a new instance of the NcRotation class from XML. public NcRotation(XElement src) Parameters src XElement The XML source element. Properties KeyCode Gets or sets the key code of the motion axis. public string KeyCode { get; set; } Property Value string SpeedLimit_radds Gets or sets the speed limit in radians per second. public double SpeedLimit_radds { get; set; } Property Value double SpeedLimit_rpm Gets or sets the speed limit in revolutions per minute. public double SpeedLimit_rpm { get; set; } Property Value double StrokeMax_deg Gets or sets the maximum stroke angle in degrees. public double StrokeMax_deg { get; set; } Property Value double StrokeMax_rad Gets or sets the maximum stroke angle in radians. public double StrokeMax_rad { get; set; } Property Value double StrokeMin_deg Gets or sets the minimum stroke angle in degrees. public double StrokeMin_deg { get; set; } Property Value double StrokeMin_rad Gets or sets the minimum stroke angle in radians. public double StrokeMin_rad { get; set; } Property Value double XName Gets the XML element name for serialization. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public override ITransformer Clone() Returns ITransformer clone GetKeyCode() Get key code of the motion axis. public string GetKeyCode() Returns string GetSpeedLimit() Get speed limit. public double GetSpeedLimit() Returns double Remarks Gets the speed limit in radians per second. GetStrokeMax() Get positivest stroke. public double GetStrokeMax() Returns double Remarks Gets the maximum stroke angle in radians. GetStrokeMin() Get negativest stroke. public double GetStrokeMin() Returns double Remarks Gets the minimum stroke angle in radians. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Topo.NcTranslation.html": { "href": "api/Hi.NcMech.Topo.NcTranslation.html", "title": "Class NcTranslation | HiAPI-C# 2025", "summary": "Class NcTranslation Namespace Hi.NcMech.Topo Assembly HiMech.dll Represents a translational transformer for NC machine tool axes. Provides functionality for linear motion with stroke and speed limits. public class NcTranslation : DynamicTranslation, IGetInverseTransformer, INcTransformer, IDynamicRegular, IDynamicTransformer, ITransformer, IMakeXmlSource, IToPresentDto, INcStroke Inheritance object DynamicTranslation NcTranslation Implements IGetInverseTransformer INcTransformer IDynamicRegular IDynamicTransformer ITransformer IMakeXmlSource IToPresentDto INcStroke Inherited Members DynamicTranslation.Set(DynamicTranslation) DynamicTranslation.Step DynamicTranslation.GetMat() DynamicTranslation.GetMatInv() DynamicTranslation.GetInverseTransformer() DynamicTranslation.Axis DynamicTranslation.Len DynamicTranslation.ToPresentDto() 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 NcTranslation() Initializes a new instance of the NcTranslation class. public NcTranslation() NcTranslation(Vec3d, double) Initializes a new instance of the NcTranslation class with the specified translation vector and length. public NcTranslation(Vec3d trans, double len = 0) Parameters trans Vec3d The translation vector. len double The translation length. NcTranslation(XElement) Initializes a new instance of the NcTranslation class from XML. public NcTranslation(XElement src) Parameters src XElement The XML source element. Properties KeyCode Gets or sets the key code of the motion axis. public string KeyCode { get; set; } Property Value string SpeedLimit_mmdmin Gets or sets the speed limit in millimeters per minute. public double SpeedLimit_mmdmin { get; set; } Property Value double SpeedLimit_mmds Gets or sets the speed limit in millimeters per second. public double SpeedLimit_mmds { get; set; } Property Value double StrokeMax_mm Gets or sets the maximum stroke distance in millimeters. public double StrokeMax_mm { get; set; } Property Value double StrokeMin_mm Gets or sets the minimum stroke distance in millimeters. public double StrokeMin_mm { get; set; } Property Value double XName Gets the XML element name for serialization. public static string XName { get; } Property Value string Methods Clone() Clones this instance. public override ITransformer Clone() Returns ITransformer clone GetKeyCode() Get key code of the motion axis. public string GetKeyCode() Returns string GetSpeedLimit() Get speed limit. public double GetSpeedLimit() Returns double Remarks Gets the speed limit in millimeters per second. GetStrokeMax() Get positivest stroke. public double GetStrokeMax() Returns double Remarks Gets the maximum stroke distance in millimeters. GetStrokeMin() Get negativest stroke. public double GetStrokeMin() Returns double Remarks Gets the minimum stroke distance in millimeters. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Topo.SolidSourceTopoBrick.html": { "href": "api/Hi.NcMech.Topo.SolidSourceTopoBrick.html", "title": "Class SolidSourceTopoBrick | HiAPI-C# 2025", "summary": "Class SolidSourceTopoBrick Namespace Hi.NcMech.Topo Assembly HiMech.dll Represents a topological brick that sources its geometry from a solid model. Implements display, collision detection, and content update capabilities. public class SolidSourceTopoBrick : ITopoBrick, IGetSolid, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable, IUpdateByContent, IClearCache Inheritance object SolidSourceTopoBrick Implements ITopoBrick IGetSolid IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable IUpdateByContent IClearCache 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 SolidSourceTopoBrick() Initializes a new instance of the SolidSourceTopoBrick class. public SolidSourceTopoBrick() SolidSourceTopoBrick(Anchor) Initializes a new instance of the SolidSourceTopoBrick class with the specified anchor. public SolidSourceTopoBrick(Anchor anchor) Parameters anchor Anchor The anchor point for this brick. SolidSourceTopoBrick(Anchor, IGetSolid) Initializes a new instance of the SolidSourceTopoBrick class with the specified anchor and solid source. public SolidSourceTopoBrick(Anchor anchor, IGetSolid solidSource) Parameters anchor Anchor The anchor point for this brick. solidSource IGetSolid The solid geometry source. Properties Anchor Gets the anchor point for this brick. public Anchor Anchor { get; } Property Value Anchor CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag SolidSource Gets the solid geometry source. public IGetSolid SolidSource { get; } Property Value IGetSolid Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetCollidableAnchor() Gets the anchor associated with this collidable leaf. public Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.NcMech.Topo.StlSourceTopoBrick.html": { "href": "api/Hi.NcMech.Topo.StlSourceTopoBrick.html", "title": "Class StlSourceTopoBrick | HiAPI-C# 2025", "summary": "Class StlSourceTopoBrick Namespace Hi.NcMech.Topo Assembly HiMech.dll Represents a topological brick that sources its geometry from an STL file. Implements display, collision detection, and content update capabilities. public class StlSourceTopoBrick : ITopoBrick, IGetSolid, IAnchoredDisplayee, IGetAnchor, IGetTopoIndex, IDisplayee, IExpandToBox3d, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable, IDisposable, IUpdateByContent, IClearCache Inheritance object StlSourceTopoBrick Implements ITopoBrick IGetSolid IAnchoredDisplayee IGetAnchor IGetTopoIndex IDisplayee IExpandToBox3d IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable IDisposable IUpdateByContent IClearCache 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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 StlSourceTopoBrick() Initializes a new instance of the StlSourceTopoBrick class. public StlSourceTopoBrick() StlSourceTopoBrick(Anchor) Initializes a new instance of the StlSourceTopoBrick class with the specified anchor. public StlSourceTopoBrick(Anchor anchor) Parameters anchor Anchor The anchor point for this brick. StlSourceTopoBrick(Anchor, IGetStl) Initializes a new instance of the StlSourceTopoBrick class with the specified anchor and geometry. public StlSourceTopoBrick(Anchor anchor, IGetStl geom) Parameters anchor Anchor The anchor point for this brick. geom IGetStl The STL geometry source. StlSourceTopoBrick(Anchor, Solid) Initializes a new instance of the StlSourceTopoBrick class hosting an externally owned Solid. The brick does NOT dispose an injected solid: the provider keeps its lifecycle, so one solid instance can be shared by several hosts (e.g. two topology entities displaying the same machine part). public StlSourceTopoBrick(Anchor anchor, Solid solid) Parameters anchor Anchor The anchor point for this brick. solid Solid The externally owned solid to host. Properties Anchor Gets the anchor point for this brick. public Anchor Anchor { get; } Property Value Anchor CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag Geom Gets or sets the STL geometry source. public IGetStl Geom { get; set; } Property Value IGetStl Solid Gets the solid geometry instance. public Solid Solid { get; } Property Value Solid Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() 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) Releases the unmanaged resources and optionally releases the managed resources. protected virtual void Dispose(bool disposing) Parameters disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetCollidableAnchor() Gets the anchor associated with this collidable leaf. public Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetSolid() Gets the solid geometry object. public Solid GetSolid() Returns Solid The solid geometry object. UpdateByContent() Updates the object based on its current content. public void UpdateByContent()" }, "api/Hi.NcMech.Topo.html": { "href": "api/Hi.NcMech.Topo.html", "title": "Namespace Hi.NcMech.Topo | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Topo Classes NcRotation Represents a rotational transformer for NC machine tool axes. Provides functionality for rotational motion with stroke and speed limits. NcTranslation Represents a translational transformer for NC machine tool axes. Provides functionality for linear motion with stroke and speed limits. SolidSourceTopoBrick Represents a topological brick that sources its geometry from a solid model. Implements display, collision detection, and content update capabilities. StlSourceTopoBrick Represents a topological brick that sources its geometry from an STL file. Implements display, collision detection, and content update capabilities. Interfaces INcStroke Nc capability include key char, stroke and speed limit. INcTransformer Transformer for NC motion axis. ITopoBrick Interface that represents a topological brick in NC machining. Combines solid geometry, display capabilities, and collision detection functionality." }, "api/Hi.NcMech.Workpieces.Workpiece.html": { "href": "api/Hi.NcMech.Workpieces.Workpiece.html", "title": "Class Workpiece | HiAPI-C# 2025", "summary": "Class Workpiece Namespace Hi.NcMech.Workpieces Assembly HiMech.dll Workpiece configuration data model. public class Workpiece : IGetAnchor, IGetTopoIndex, IGetCuttingPara, IMakeXmlSource Inheritance object Workpiece Implements IGetAnchor IGetTopoIndex IGetCuttingPara IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) 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) Remarks Workpiece holds the persistent/serializable configuration. Meshed geometry, caching, diff calculation, defect scanning, display and collision are managed by WorkpieceService. Constructors Workpiece() Initializes a new instance of the Workpiece class. public Workpiece() Workpiece(XElement, string, string, IProgress) Initializes a new instance of the Workpiece class. public Workpiece(XElement src, string baseDirectory, string relFile, IProgress progress) Parameters src XElement XML element source. baseDirectory string Base directory. relFile string Relative file path. progress IProgress Progress reporter for diagnostic messages emitted during construction. Properties Asmb Asmb. public Asmb Asmb { get; } Property Value Asmb CollidableName Collidable name. public string CollidableName { get; } Property Value string CuttingPara Milling parameters. public ICuttingPara CuttingPara { get; set; } Property Value ICuttingPara CuttingParaFile File path for milling parameters. public string CuttingParaFile { get; set; } Property Value string FixtureBuckle Buckle anchor. public Anchor FixtureBuckle { get; } Property Value Anchor FixtureToProgramZeroMat4d Matrix transformation from fixture to program zero. public Mat4d FixtureToProgramZeroMat4d { get; } Property Value Mat4d GeomAnchor Anchor of workpiece geometry. public Anchor GeomAnchor { get; } Property Value Anchor IdealGeom Ideal geometry representation. public IGetStl IdealGeom { get; set; } Property Value IGetStl InitGeom Raw geometry for initiate. public IMakeXmlSource InitGeom { get; set; } Property Value IMakeXmlSource InitResolution Resolution for initialization. public double InitResolution { get; set; } Property Value double ProgramZeroAnchor Anchor of geometry zero and cutter location zero. public Anchor ProgramZeroAnchor { get; } Property Value Anchor WorkpieceGeomToFixtureBuckleBranch Branch connecting workpiece geometry to fixture buckle. public Branch WorkpieceGeomToFixtureBuckleBranch { get; } Property Value Branch WorkpieceGeomToFixtureBuckleTransformer Transformer connecting workpiece geometry to fixture buckle. public ITransformer WorkpieceGeomToFixtureBuckleTransformer { get; set; } Property Value ITransformer WorkpieceGeomToProgramZeroBranch Branch connecting workpiece geometry to program zero. public Branch WorkpieceGeomToProgramZeroBranch { get; } Property Value Branch WorkpieceGeomToProgramZeroTransformer Transformer connecting workpiece geometry to program zero. public ITransformer WorkpieceGeomToProgramZeroTransformer { get; set; } Property Value ITransformer WorkpieceMaterial Workpiece material. public WorkpieceMaterial WorkpieceMaterial { get; set; } Property Value WorkpieceMaterial WorkpieceMaterialFile File path for workpiece material. public string WorkpieceMaterialFile { get; set; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetCuttingPara() Get ICuttingPara. public ICuttingPara GetCuttingPara() Returns ICuttingPara ICuttingPara MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html": { "href": "api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.html", "title": "Class WorkpieceEditorDisplayee | HiAPI-C# 2025", "summary": "Class WorkpieceEditorDisplayee Namespace Hi.NcMech.Workpieces Assembly HiMech.dll Displayee for visualizing workpiece raw/ideal/meshed geometry and anchors. public class WorkpieceEditorDisplayee : IDisplayee, IExpandToBox3d Inheritance object WorkpieceEditorDisplayee Implements IDisplayee IExpandToBox3d Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) 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 WorkpieceEditorDisplayee(IProgress) public WorkpieceEditorDisplayee(IProgress progress = null) Parameters progress IProgress Progress reporter for meshed geometry operations (e.g. defect warnings). Properties Config Gets or sets the configuration for visualization. public WorkpieceEditorDisplayeeConfig Config { get; set; } Property Value WorkpieceEditorDisplayeeConfig FixtureRenderingMode Gets or sets the rendering mode for fixture. public Solid.RenderingModeEnum FixtureRenderingMode { get; set; } Property Value Solid.RenderingModeEnum IdealGeomRenderingMode Gets or sets the rendering mode for ideal geometry. public Solid.RenderingModeEnum IdealGeomRenderingMode { get; set; } Property Value Solid.RenderingModeEnum MachiningEquipmentGetter Gets or sets the delegate that provides Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.MachiningEquipment. public Func MachiningEquipmentGetter { get; set; } Property Value Func Progress Progress reporter for meshed geometry operations. public IProgress Progress { get; } Property Value IProgress RawGeomRenderingMode Gets or sets the rendering mode for raw geometry. public Solid.RenderingModeEnum RawGeomRenderingMode { get; set; } Property Value Solid.RenderingModeEnum ShowMeshedGeom Gets or sets whether to show meshed geometry. public bool ShowMeshedGeom { get; set; } Property Value bool WorkpieceServiceGetter Gets or sets the delegate that provides Hi.NcMech.Workpieces.WorkpieceEditorDisplayee.WorkpieceService. public Func WorkpieceServiceGetter { get; set; } Property Value Func Methods ClearIdealGeomCache() Clears the ideal geometry cache on workpiece service. public void ClearIdealGeomCache() ClearRawGeomCache() Clears the raw geometry cache on workpiece service. public void ClearRawGeomCache() Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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" }, "api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html": { "href": "api/Hi.NcMech.Workpieces.WorkpieceEditorDisplayeeConfig.html", "title": "Class WorkpieceEditorDisplayeeConfig | HiAPI-C# 2025", "summary": "Class WorkpieceEditorDisplayeeConfig Namespace Hi.NcMech.Workpieces Assembly HiMech.dll Configuration settings for workpiece editor display. public class WorkpieceEditorDisplayeeConfig : IMakeXmlSource Inheritance object WorkpieceEditorDisplayeeConfig Implements IMakeXmlSource 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) Constructors WorkpieceEditorDisplayeeConfig() Initializes a new instance of the WorkpieceEditorDisplayeeConfig class. public WorkpieceEditorDisplayeeConfig() WorkpieceEditorDisplayeeConfig(XElement) Initializes a new instance from XML. public WorkpieceEditorDisplayeeConfig(XElement element) Parameters element XElement Properties FixtureRenderingMode Rendering mode for fixture geometry. public Solid.RenderingModeEnum FixtureRenderingMode { get; set; } Property Value Solid.RenderingModeEnum IdealGeomRenderingMode Rendering mode for ideal geometry. public Solid.RenderingModeEnum IdealGeomRenderingMode { get; set; } Property Value Solid.RenderingModeEnum RawGeomRenderingMode Rendering mode for raw geometry. public Solid.RenderingModeEnum RawGeomRenderingMode { get; set; } Property Value Solid.RenderingModeEnum ShowFixtureBuckle Whether to show fixture buckle. public bool ShowFixtureBuckle { get; set; } Property Value bool ShowGeomAnchor Whether to show geometry anchor. public bool ShowGeomAnchor { get; set; } Property Value bool ShowMeshedGeom Whether to show meshed geometry. public bool ShowMeshedGeom { get; set; } Property Value bool ShowProgramZeroAnchor Whether to show program zero anchor. public bool ShowProgramZeroAnchor { get; set; } Property Value bool XName Name for XML IO. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Workpieces.WorkpieceService.html": { "href": "api/Hi.NcMech.Workpieces.WorkpieceService.html", "title": "Class WorkpieceService | HiAPI-C# 2025", "summary": "Class WorkpieceService Namespace Hi.NcMech.Workpieces Assembly HiMech.dll Runtime service for Workpiece. public class WorkpieceService : IDisplayee, IExpandToBox3d, IDisposable, IGetAnchoredDisplayeeList, IAnchoredCollidableLeaf, IAnchoredCollidableNode, IAnchoredCollidableBased, ICollidable Inheritance object WorkpieceService Implements IDisplayee IExpandToBox3d IDisposable IGetAnchoredDisplayeeList IAnchoredCollidableLeaf IAnchoredCollidableNode IAnchoredCollidableBased ICollidable 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(ICollidable, ICollidable, Mat4d, double, int) DispUtil.Display(IDisplayee, Bind, Mat4d) 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) Remarks WorkpieceService handles meshed geometry, caching, diff calculation, defect scanning, display and collision — state that does not require configuration IO. Compare to Workpiece, which holds the persistent/serializable configuration. Constructors WorkpieceService(Func, Func) Ctor. public WorkpieceService(Func workpieceGetter, Func baseDirectoryGetter = null) Parameters workpieceGetter Func baseDirectoryGetter Func Properties BaseDirectoryGetter Provides the base directory that relative file paths in this service resolve against (injected by the owning project service); when null, paths are used as-is. public Func BaseDirectoryGetter { get; } Property Value Func BottomResolution Resolution. public double BottomResolution { get; } Property Value double CollidableName Gets the name of the collidable object. public string CollidableName { get; } Property Value string CollisionFlag Gets or sets the collision flag. public CollisionFlag CollisionFlag { get; set; } Property Value CollisionFlag ConstructionDefectDisplayee Construction defect displayee. public ConstructionDefectDisplayee ConstructionDefectDisplayee { get; } Property Value ConstructionDefectDisplayee DetectionRadius_mm Detection radius in millimeters last used by Diff(double, CancellationToken, IProgress). It is set by that runtime call (e.g. from a session / mission command), not by display callers, and saved on the service so consumers (e.g. the web UI) can bound DiffVisualRadius_mm to it — the visual radius is meaningful only up to the detection radius. public double DetectionRadius_mm { get; set; } Property Value double DiffAttachmentBag transient object. For Internal Use. public ConcurrentBag DiffAttachmentBag { get; } Property Value ConcurrentBag DiffRangeColorRule Internal used. public RangeColorRule DiffRangeColorRule { get; set; } Property Value RangeColorRule DiffVisualRadius_mm Visual radius for difference visualization. public double DiffVisualRadius_mm { get; set; } Property Value double HasDiff Indicates whether there are differences between ideal and actual geometry. public bool HasDiff { get; } Property Value bool IdealGeom Delegate property for IdealGeom with cache cleanup. public IGetStl IdealGeom { get; set; } Property Value IGetStl IdealSolid Gets the drawing representing the ideal geometry faces of the workpiece. The derived solid from IdealGeom. public Solid IdealSolid { get; } Property Value Solid InitGeom Delegate property for InitGeom with runtime cleanup. public IMakeXmlSource InitGeom { get; set; } Property Value IMakeXmlSource InitSolid The derived solid from InitGeom. public Solid InitSolid { get; } Property Value Solid IsMeshedGeomInit Indicates whether the meshed geometry is initialized. public bool IsMeshedGeomInit { get; } Property Value bool Workpiece The underlying workpiece data model. public Workpiece Workpiece { get; } Property Value Workpiece WorkpieceGetter Lazy factory for the active Workpiece; invoked whenever consumers read Workpiece. public Func WorkpieceGetter { get; } Property Value Func Methods ClearCache() Drops the raw / ideal solid and defect display caches so the next access rebuilds from the current Workpiece. public void ClearCache() ClearDefectDisplayee() Clears all defect displayees. public void ClearDefectDisplayee() ClearIdealGeomCache() Clears the ideal geometry cache. public void ClearIdealGeomCache() ClearRawGeomCache() Clears the raw geometry cache. public void ClearRawGeomCache() Diff(double, CancellationToken, IProgress) Calculates the difference between ideal and actual geometry. public void Diff(double detectionRadius, CancellationToken token, IProgress messageProgress = null) Parameters detectionRadius double Detection radius; also saved to DetectionRadius_mm. token CancellationToken Cancellation token. messageProgress IProgress Progress reporting interface. 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 GetAnchoredCollidableNode() Gets the anchored collidable node associated with this object. public IAnchoredCollidableNode GetAnchoredCollidableNode() Returns IAnchoredCollidableNode The anchored collidable node. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetCollidableAnchor() Gets the anchor associated with this collidable leaf. public Anchor GetCollidableAnchor() Returns Anchor The anchor for this collidable leaf. GetCollidee() Get ICollidee. public ICollidee GetCollidee() Returns ICollidee ICollidee GetOrBuildMeshedGeom(CancellationToken, IProgress) Returns the current meshed geometry, lazily building it from the workpiece's InitGeom (voxelize via NewWithDefectInfos(Stl, double, CancellationToken, IProgress), or load a CubeTreeFile) when not yet present. The first build can be slow — hence the cancellation token + progress sinks; once built, the tree is returned cheaply. public CubeTree GetOrBuildMeshedGeom(CancellationToken token, IProgress messageProgress = null) Parameters token CancellationToken Cancels an in-progress build (leaves the geometry unbuilt / null). messageProgress IProgress IMessage-channel sink (null = silent). Returns CubeTree The meshed cube tree; null when there is no workpiece / InitGeom, or the build was cancelled. ReadMeshedGeom(string, IProgress) Reads the meshed geometry from a file, relative to BaseDirectoryGetter. public bool ReadMeshedGeom(string relFile, IProgress messageProgress = null) Parameters relFile string Source file path, relative to the injected base directory. messageProgress IProgress IMessage-channel sink injected by the caller (null = silent). Returns bool True if the file existed and was read; false if it was not found. ResetMeshedGeom() Resets the meshed geometry. public void ResetMeshedGeom() RetireAttachments(IReadOnlyCollection) Retires attachments OWNED BY A CALLER (e.g. ClStrip's ClStripPos) that are attached to the current meshed tree. If a tree is current it detaches them under its write-gate render barrier first; otherwise (tree already retired) it just frees them on the background chain. Targeted — never touches the base attachment or diff attachments. public void RetireAttachments(IReadOnlyCollection attachments) Parameters attachments IReadOnlyCollection ScanMeshedGeomInfDefect(IProgress, CancellationToken) Scans the meshed geometry for inf defects. public bool? ScanMeshedGeomInfDefect(IProgress messageProgress, CancellationToken cancellationToken) Parameters messageProgress IProgress cancellationToken CancellationToken Returns bool? SetMeshedGeom(CubeTree) Sets the meshed geometry instance and rebuilds its attachments. public void SetMeshedGeom(CubeTree meshedGeom_) Parameters meshedGeom_ CubeTree The meshed cube tree geometry. WriteMeshedGeom(string, CancellationToken, IProgress) Writes the meshed geometry to a file, relative to BaseDirectoryGetter. public void WriteMeshedGeom(string relFile, CancellationToken token, IProgress messageProgress = null) Parameters relFile string Target file path, relative to the injected base directory. token CancellationToken Cancellation token. messageProgress IProgress IMessage-channel progress sink (null = silent)." }, "api/Hi.NcMech.Workpieces.html": { "href": "api/Hi.NcMech.Workpieces.html", "title": "Namespace Hi.NcMech.Workpieces | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Workpieces Classes Workpiece Workpiece configuration data model. WorkpieceEditorDisplayee Displayee for visualizing workpiece raw/ideal/meshed geometry and anchors. WorkpieceEditorDisplayeeConfig Configuration settings for workpiece editor display. WorkpieceService Runtime service for Workpiece." }, "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineTool.html", "title": "Class CodeXyzabcMachineTool | HiAPI-C# 2025", "summary": "Class CodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. public class CodeXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object CodeXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors CodeXyzabcMachineTool(CodeXyzabcChain) Initializes a new instance of the CodeXyzabcMachineTool class. public CodeXyzabcMachineTool(CodeXyzabcChain xyzabcChain) Parameters xyzabcChain CodeXyzabcChain The XYZABC chain instance. CodeXyzabcMachineTool(string, bool) Builds a machine tool from a compact CodeXyzabcChain axis string and vertical/horizontal layout flag. public CodeXyzabcMachineTool(string chainCode = \"[O][Z][C][w];[O][Y][X][B][S][t]\", bool isVertical = true) Parameters chainCode string Bracket token string consumed by CodeXyzabcChain (defaults to a common 5-axis layout). isVertical bool Whether the Z column is treated as vertical for the generated chain. CodeXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance from XML. public CodeXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. progress IProgress The progress reporter. Properties CollisionIndexPairs Gets or sets the collection of collision index pairs. public HashSet CollisionIndexPairs { get; set; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loading from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine codes array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine transformers array. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XName Name of XML element. public static string XName { get; } Property Value string XyzabcChain Gets the XYZABC chain instance. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GenerateCollisionIndexPairs() Generates collision index pairs for the machine tool components. public void GenerateCollisionIndexPairs() GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html": { "href": "api/Hi.NcMech.Xyzabc.CodeXyzabcMachineToolUri.html", "title": "Class CodeXyzabcMachineToolUri | HiAPI-C# 2025", "summary": "Class CodeXyzabcMachineToolUri Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll Represents a URI-based container for CodeXyzabcMachineTool. public class CodeXyzabcMachineToolUri : IGetCodeXyzabcMachineTool, IMakeXmlSource, IUriGetter Inheritance object CodeXyzabcMachineToolUri Implements IGetCodeXyzabcMachineTool IMakeXmlSource IUriGetter 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) Constructors CodeXyzabcMachineToolUri(string, CodeXyzabcMachineTool) Initializes a new instance of the CodeXyzabcMachineToolUri class. public CodeXyzabcMachineToolUri(string uri, CodeXyzabcMachineTool data) Parameters uri string URI location. data CodeXyzabcMachineTool Machine tool data. CodeXyzabcMachineToolUri(XElement, string, IProgress, object[]) Ctor. public CodeXyzabcMachineToolUri(XElement src, string baseDirectory, IProgress progress, object[] res) Parameters src XElement XML element source. baseDirectory string Base directory. progress IProgress Progress reporter passed to LoadFromUri(string, IProgress, object[]). res object[] Additional resources. Properties IsEncrypted Gets or sets whether the content is encrypted. public bool IsEncrypted { get; set; } Property Value bool MachineTool Gets or sets the machine tool. public CodeXyzabcMachineTool MachineTool { get; } Property Value CodeXyzabcMachineTool Uri Gets the URI string. public string Uri { get; } Property Value string XName Name for XML IO. public static string XName { get; } Property Value string Methods GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetXyzabcMachineTool() Get CodeXyzabcMachineTool. public CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool Machine tool. LoadFromUri(string, IProgress, object[]) Loads the machine tool data from the URI. public void LoadFromUri(string baseDirectory, IProgress progress, object[] res) Parameters baseDirectory string Base directory. progress IProgress Progress reporter for nested XML / factory loading. res object[] Additional resources. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SaveToUri(string) Saves the machine tool data to the URI. public void SaveToUri(string baseDirectory) Parameters baseDirectory string Base directory." }, "api/Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.GeneralXyzabcMachineTool.html", "title": "Class GeneralXyzabcMachineTool | HiAPI-C# 2025", "summary": "Class GeneralXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll General implementation of an XYZABC machine tool. public class GeneralXyzabcMachineTool : IXyzabcMachineTool, IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inheritance object GeneralXyzabcMachineTool Implements IXyzabcMachineTool IDisplayee IGetCollisionIndexPairs IXyzabcChain IGetXyzabcChain IMachiningChain IGetAsmb IGetAnchor IGetTopoIndex IMakeXmlSource IGetAnchorToSolidDictionary IGetAnchoredDisplayeeList IExpandToBox3d INameNote Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors GeneralXyzabcMachineTool(IXyzabcChain) Initializes a new instance of the GeneralXyzabcMachineTool class. public GeneralXyzabcMachineTool(IXyzabcChain xyzabcChain) Parameters xyzabcChain IXyzabcChain XYZABC chain to use. GeneralXyzabcMachineTool(XElement, string, IProgress) Initializes a new instance of the GeneralXyzabcMachineTool class from XML. public GeneralXyzabcMachineTool(XElement src, string baseDirectory, IProgress progress) Parameters src XElement XML element source. baseDirectory string Base directory. progress IProgress Progress reporter for loading XyzabcChain and related children. Fields XName Name of XML element. public static string XName Field Value string Properties CollisionIndexPairs Collection of collision index pairs for collision detection. public HashSet CollisionIndexPairs { get; } Property Value HashSet EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded Gets or sets whether to automatically generate collision index pairs when loaded from XML. public bool EnableAutoGeneratingCollisionIndexPairsOnXmlLoaded { get; set; } Property Value bool McCodes Gets the machine coordinate code sequence for decoding the MC array. public string[] McCodes { get; } Property Value string[] McTransformers Gets the machine coordinate transformers. public IDynamicRegular[] McTransformers { get; } Property Value IDynamicRegular[] Name Gets or sets the name of the object. public string Name { get; set; } Property Value string Note Gets or sets the descriptive note for the object. public string Note { get; set; } Property Value string TableAnchor Anchor to attach fixture or workpiece. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetTableBuckle. public Anchor TableAnchor { get; } Property Value Anchor ToolAnchor Anchor to attach tool. The anchor is the same as IXyzabcChain.Hi.Numerical.Xyzabc.IXyzabcChain.GetToolBuckle. public Anchor ToolAnchor { get; } Property Value Anchor XyzabcChain XYZABC chain for this machine tool. public IXyzabcChain XyzabcChain { get; } Property Value IXyzabcChain XyzabcChainFile File path for XYZABC chain. public string XyzabcChainFile { get; set; } Property Value string Methods Display(Bind) Display function called in DispEngine rendering loop. public void Display(Bind bind) Parameters bind Bind Bind with DispEngine. See Bind. 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 GetAnchor() Get key anchor. (i.e. root anchor) public Anchor GetAnchor() Returns Anchor key anchor GetAnchorToSolidDictionary() Gets a dictionary that maps Anchor objects to their corresponding Solid objects. public Dictionary GetAnchorToSolidDictionary() Returns Dictionary A dictionary where keys are anchors and values are their associated solids. GetAnchoredDisplayeeList() Gets a list of anchored displayable objects. public List GetAnchoredDisplayeeList() Returns List A list of IAnchoredDisplayee objects GetAsmb() Gets the key asmb. public Asmb GetAsmb() Returns Asmb The key asmb. GetCollisionIndexPairs() Gets a collection of collision index pairs for collision detection. public IEnumerable GetCollisionIndexPairs() Returns IEnumerable A collection of CollisionIndexPair objects. GetMachiningChain() public IMachiningChain GetMachiningChain() Returns IMachiningChain GetMcCodeTransformerDictionary() public Dictionary GetMcCodeTransformerDictionary() Returns Dictionary GetTableBuckle() Gets the table buckle anchor point. public IGetAnchor GetTableBuckle() Returns IGetAnchor The table buckle anchor point. GetToolBuckle() Gets the tool buckle anchor point. public IGetAnchor GetToolBuckle() Returns IGetAnchor The tool buckle anchor point. GetTransformerA() Get transformer A. public DynamicRotation GetTransformerA() Returns DynamicRotation transformer A GetTransformerB() Get transformer B. public DynamicRotation GetTransformerB() Returns DynamicRotation transformer B GetTransformerC() Get transformer C. public DynamicRotation GetTransformerC() Returns DynamicRotation transformer C GetTransformerX() Get transformer X. public DynamicTranslation GetTransformerX() Returns DynamicTranslation transformer X GetTransformerY() Get transformer Y. public DynamicTranslation GetTransformerY() Returns DynamicTranslation transformer Y GetTransformerZ() Get transformer Z. public DynamicTranslation GetTransformerZ() Returns DynamicTranslation transformer Z GetXyzabcChain() Get IXyzabcChain. public IXyzabcChain GetXyzabcChain() Returns IXyzabcChain IXyzabcChain GetXyzabcMachineTool() public GeneralXyzabcMachineTool GetXyzabcMachineTool() Returns GeneralXyzabcMachineTool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.IGetCodeXyzabcMachineTool.html", "title": "Interface IGetCodeXyzabcMachineTool | HiAPI-C# 2025", "summary": "Interface IGetCodeXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll Interface of GetXyzabcMachineTool(). public interface IGetCodeXyzabcMachineTool 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) Methods GetXyzabcMachineTool() Get CodeXyzabcMachineTool. CodeXyzabcMachineTool GetXyzabcMachineTool() Returns CodeXyzabcMachineTool Machine tool." }, "api/Hi.NcMech.Xyzabc.IXyzabcMachineTool.html": { "href": "api/Hi.NcMech.Xyzabc.IXyzabcMachineTool.html", "title": "Interface IXyzabcMachineTool | HiAPI-C# 2025", "summary": "Interface IXyzabcMachineTool Namespace Hi.NcMech.Xyzabc Assembly HiMech.dll Interface for XYZABC machine tools that combines chain, display, collision and other functionalities. public interface IXyzabcMachineTool : IDisplayee, IGetCollisionIndexPairs, IXyzabcChain, IGetXyzabcChain, IMachiningChain, IGetAsmb, IGetAnchor, IGetTopoIndex, IMakeXmlSource, IGetAnchorToSolidDictionary, IGetAnchoredDisplayeeList, IExpandToBox3d, INameNote Inherited Members IDisplayee.Display(Bind) IGetCollisionIndexPairs.GetCollisionIndexPairs() IXyzabcChain.GetTransformerX() IXyzabcChain.GetTransformerY() IXyzabcChain.GetTransformerZ() IXyzabcChain.GetTransformerA() IXyzabcChain.GetTransformerB() IXyzabcChain.GetTransformerC() IXyzabcChain.GetTransformerXyz() IXyzabcChain.GetTransformerAbc() IGetXyzabcChain.GetXyzabcChain() IMachiningChain.GetTableBuckle() IMachiningChain.GetToolBuckle() IMachiningChain.McCodes IMachiningChain.McTransformers IGetAsmb.GetAsmb() IGetAnchor.GetAnchor() IMakeXmlSource.MakeXmlSource(string, string, bool) IGetAnchorToSolidDictionary.GetAnchorToSolidDictionary() IGetAnchorToSolidDictionary.PrepareAnchorSolids() IGetAnchoredDisplayeeList.GetAnchoredDisplayeeList() IExpandToBox3d.ExpandToBox3d(Box3d) INameNote.Name INameNote.Note Extension Methods DispUtil.Display(IDisplayee, Bind, Mat4d) MachiningChainUtil.GetMcCodeTransformerDictionary(IMachiningChain) TopoUtil.Display(IGetAnchor, Bind, Dictionary) TopoUtil.ExpandToBox3d(IGetAnchor, Box3d, Dictionary) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) XyzabcUtil.GenerateCollisionIndexPairs(IXyzabcChain) XyzabcUtil.GetMc(IXyzabcChain, out DVec3d) XyzabcUtil.GetMc(IXyzabcChain, out double, out double, out double, out double, out double, out double) XyzabcUtil.GetMcAbc_rad(IXyzabcChain, out Abc) XyzabcUtil.GetMcXyzabc(IXyzabcChain) XyzabcUtil.GetNp(IXyzabcChain) XyzabcUtil.GetTransformationMat4d(IXyzabcChain) XyzabcUtil.SetMc(IXyzabcChain, DVec3d) XyzabcUtil.SetMc(IXyzabcChain, Vec3d) XyzabcUtil.SetMc(IXyzabcChain, double, double, double) XyzabcUtil.SetMc(IXyzabcChain, double, double, double, double, double, double) XyzabcUtil.SetMcAbc_rad(IXyzabcChain, Vec3d) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object)" }, "api/Hi.NcMech.Xyzabc.html": { "href": "api/Hi.NcMech.Xyzabc.html", "title": "Namespace Hi.NcMech.Xyzabc | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech.Xyzabc Classes CodeXyzabcMachineTool This machine tool class helps very quick test by the code configuration. For general/end-user use, apply GeneralXyzabcMachineTool instead. CodeXyzabcMachineToolUri Represents a URI-based container for CodeXyzabcMachineTool. GeneralXyzabcMachineTool General implementation of an XYZABC machine tool. Interfaces IGetCodeXyzabcMachineTool Interface of GetXyzabcMachineTool(). IXyzabcMachineTool Interface for XYZABC machine tools that combines chain, display, collision and other functionalities." }, "api/Hi.NcMech.html": { "href": "api/Hi.NcMech.html", "title": "Namespace Hi.NcMech | HiAPI-C# 2025", "summary": "Namespace Hi.NcMech Interfaces ICollisionIndexPairsSource Interface that provides access to collision index pairs and XML serialization capabilities. Extends IGetCollisionIndexPairs with XML serialization support." }, "api/Hi.NcOpt.CuttingVelocityOptLimit.html": { "href": "api/Hi.NcOpt.CuttingVelocityOptLimit.html", "title": "Class CuttingVelocityOptLimit | HiAPI-C# 2025", "summary": "Class CuttingVelocityOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Represents optimization limits for cutting velocity parameters. public class CuttingVelocityOptLimit : ICuttingVelocityOptLimit, IMakeXmlSource, IDuplicate, IToXElement Inheritance object CuttingVelocityOptLimit Implements ICuttingVelocityOptLimit IMakeXmlSource IDuplicate IToXElement 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) Constructors CuttingVelocityOptLimit() Initializes a new instance of the CuttingVelocityOptLimit class. public CuttingVelocityOptLimit() CuttingVelocityOptLimit(XElement, string) Initializes a new instance of the CuttingVelocityOptLimit class from XML. public CuttingVelocityOptLimit(XElement src, string baseDirectory) Parameters src XElement The XML source element. baseDirectory string The base directory for resolving relative paths. Properties MaxCuttingVelocity_mmdmin Gets or sets the maximum cutting velocity in millimeters per minute. public double MaxCuttingVelocity_mmdmin { get; set; } Property Value double MaxCuttingVelocity_mmds Gets or sets the maximum cutting velocity in millimeters per second. public double MaxCuttingVelocity_mmds { get; set; } Property Value double MinCuttingVelocity_mmdmin Gets or sets the minimum cutting velocity in millimeters per minute. public double MinCuttingVelocity_mmdmin { get; set; } Property Value double MinCuttingVelocity_mmds Gets or sets the minimum cutting velocity in millimeters per second. public double MinCuttingVelocity_mmds { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GetMaxCuttingVelocity_mmds() Gets the maximum cutting velocity in millimeters per second. public double GetMaxCuttingVelocity_mmds() Returns double The maximum cutting velocity in millimeters per second. GetMinCuttingVelocity_mmds() Gets the minimum cutting velocity in millimeters per second. public double GetMinCuttingVelocity_mmds() Returns double The minimum cutting velocity in millimeters per second. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcOpt.FixedFeedPerCycleOptLimit.html": { "href": "api/Hi.NcOpt.FixedFeedPerCycleOptLimit.html", "title": "Class FixedFeedPerCycleOptLimit | HiAPI-C# 2025", "summary": "Class FixedFeedPerCycleOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Represents fixed feed-per-cycle optimization limits. Provides implementation for feed-per-cycle optimization with fixed minimum and maximum values. public class FixedFeedPerCycleOptLimit : IFeedPerToothOptLimit, IMakeXmlSource, IDuplicate, IClearCache, IToXElement Inheritance object FixedFeedPerCycleOptLimit Implements IFeedPerToothOptLimit IMakeXmlSource IDuplicate IClearCache IToXElement 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) Constructors FixedFeedPerCycleOptLimit(Func, double) Initializes a new instance of the FixedFeedPerCycleOptLimit class with specified parameters. public FixedFeedPerCycleOptLimit(Func fluteNumFunc, double maxFeedPerCycle_mm) Parameters fluteNumFunc Func Function that returns the number of flutes maxFeedPerCycle_mm double Maximum feed per cycle in millimeters FixedFeedPerCycleOptLimit(XElement, string, MillingCutter) Ctor. public FixedFeedPerCycleOptLimit(XElement src, string baseDirectory, MillingCutter cutter) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths cutter MillingCutter The milling cutter to use for flute number calculation Properties FluteNum Gets the number of flutes. public int FluteNum { get; } Property Value int MaxFeedPerCycle_mm Gets or sets the maximum feed per cycle value in millimeters. public double MaxFeedPerCycle_mm { get; set; } Property Value double MinFeedPerCycle_mm Gets or sets the minimum feed per cycle value in millimeters. public double MinFeedPerCycle_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GetMaxFeedPerTooth_mm() Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. public double GetMaxFeedPerTooth_mm() Returns double The maximum feed per tooth value in millimeters. GetMinFeedPerTooth_mm() Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. public double GetMinFeedPerTooth_mm() Returns double The minimum feed per tooth value in millimeters. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcOpt.FixedFeedPerToothOptLimit.html": { "href": "api/Hi.NcOpt.FixedFeedPerToothOptLimit.html", "title": "Class FixedFeedPerToothOptLimit | HiAPI-C# 2025", "summary": "Class FixedFeedPerToothOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Represents fixed feed-per-tooth optimization limits. Provides implementation for feed-per-tooth optimization with fixed minimum and maximum values. public class FixedFeedPerToothOptLimit : IFeedPerToothOptLimit, IMakeXmlSource, IDuplicate, IToXElement Inheritance object FixedFeedPerToothOptLimit Implements IFeedPerToothOptLimit IMakeXmlSource IDuplicate IToXElement Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) 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 FixedFeedPerToothOptLimit() Ctor. public FixedFeedPerToothOptLimit() FixedFeedPerToothOptLimit(XElement, string) Initializes a new instance of the FixedFeedPerToothOptLimit class. public FixedFeedPerToothOptLimit(XElement element, string baseDirectory) Parameters element XElement The XML element containing optimization limit data. baseDirectory string The base directory for resolving relative paths. Properties MaxFeedPerTooth_mm Gets or sets the maximum feed per tooth value in millimeters. public double MaxFeedPerTooth_mm { get; set; } Property Value double MinFeedPerTooth_mm Gets or sets the minimum feed per tooth value in millimeters. public double MinFeedPerTooth_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GetMaxFeedPerTooth_mm() Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. public double GetMaxFeedPerTooth_mm() Returns double The maximum feed per tooth value in millimeters. GetMinFeedPerTooth_mm() Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. public double GetMinFeedPerTooth_mm() Returns double The minimum feed per tooth value in millimeters. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcOpt.ICutterOptLimitHost.html": { "href": "api/Hi.NcOpt.ICutterOptLimitHost.html", "title": "Interface ICutterOptLimitHost | HiAPI-C# 2025", "summary": "Interface ICutterOptLimitHost Namespace Hi.NcOpt Assembly HiMech.dll Interface for hosts that contain cutter optimization limits. Provides access to cutter optimization limit settings. public interface ICutterOptLimitHost 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 CutterOptLimit Gets or sets the cutter optimization limit settings. ICutterOptOption CutterOptLimit { get; set; } Property Value ICutterOptOption" }, "api/Hi.NcOpt.ICutterOptOption.html": { "href": "api/Hi.NcOpt.ICutterOptOption.html", "title": "Interface ICutterOptOption | HiAPI-C# 2025", "summary": "Interface ICutterOptOption Namespace Hi.NcOpt Assembly HiMech.dll Interface for cutter optimization limits. Combines feed-per-tooth optimization capabilities with duplication and XML serialization support. Inherits from IMakeXmlSource, IFeedPerToothOptLimit, and IDuplicate. public interface ICutterOptOption : IFeedPerToothOptLimit, IMakeXmlSource, IDuplicate Inherited Members IFeedPerToothOptLimit.GetMinFeedPerTooth_mm() IFeedPerToothOptLimit.GetMaxFeedPerTooth_mm() IMakeXmlSource.MakeXmlSource(string, string, bool) IDuplicate.Duplicate(params object[]) 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 EnableOpt Gets or sets whether optimization is enabled for this cutter. bool EnableOpt { get; set; } Property Value bool" }, "api/Hi.NcOpt.ICuttingVelocityOptLimit.html": { "href": "api/Hi.NcOpt.ICuttingVelocityOptLimit.html", "title": "Interface ICuttingVelocityOptLimit | HiAPI-C# 2025", "summary": "Interface ICuttingVelocityOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Interface for cutting velocity optimization limits. Defines methods to get minimum and maximum cutting velocity values. Implements IMakeXmlSource for XML serialization and IDuplicate for object duplication. public interface ICuttingVelocityOptLimit : IMakeXmlSource, IDuplicate Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IDuplicate.Duplicate(params object[]) 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) Methods GetMaxCuttingVelocity_mmds() Gets the maximum cutting velocity in millimeters per second. double GetMaxCuttingVelocity_mmds() Returns double The maximum cutting velocity in millimeters per second. GetMinCuttingVelocity_mmds() Gets the minimum cutting velocity in millimeters per second. double GetMinCuttingVelocity_mmds() Returns double The minimum cutting velocity in millimeters per second." }, "api/Hi.NcOpt.IFeedPerToothOptLimit.html": { "href": "api/Hi.NcOpt.IFeedPerToothOptLimit.html", "title": "Interface IFeedPerToothOptLimit | HiAPI-C# 2025", "summary": "Interface IFeedPerToothOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Interface for feed-per-tooth optimization limits. Defines methods to get minimum and maximum feed per tooth values. Implements IMakeXmlSource for XML serialization and IDuplicate for object duplication. public interface IFeedPerToothOptLimit : IMakeXmlSource, IDuplicate Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) IDuplicate.Duplicate(params object[]) 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) Methods GetMaxFeedPerTooth_mm() Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. double GetMaxFeedPerTooth_mm() Returns double The maximum feed per tooth value in millimeters. GetMinFeedPerTooth_mm() Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. double GetMinFeedPerTooth_mm() Returns double The minimum feed per tooth value in millimeters." }, "api/Hi.NcOpt.MillingCutterOptOption.html": { "href": "api/Hi.NcOpt.MillingCutterOptOption.html", "title": "Class MillingCutterOptOption | HiAPI-C# 2025", "summary": "Class MillingCutterOptOption Namespace Hi.NcOpt Assembly HiMech.dll Represents NC optimization option for milling cutters. public class MillingCutterOptOption : ICutterOptOption, IFeedPerToothOptLimit, IMakeXmlSource, IDuplicate, IClearCache, IToXElement Inheritance object MillingCutterOptOption Implements ICutterOptOption IFeedPerToothOptLimit IMakeXmlSource IDuplicate IClearCache IToXElement 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) Constructors MillingCutterOptOption() Ctor with null properties. public MillingCutterOptOption() MillingCutterOptOption(XElement, string, string, MillingCutter) Initializes a new instance of the MillingCutterOptOption class from XML. public MillingCutterOptOption(XElement src, string baseDirectory, string relFile, MillingCutter cutter) Parameters src XElement XML element source. baseDirectory string Base directory. relFile string Relative file path. cutter MillingCutter Milling cutter. Properties EnableLimitByMinimumUncutChipThickness Gets or sets whether to limit feedrate by minimum uncut chip thickness. It is a lower bound limit. public bool EnableLimitByMinimumUncutChipThickness { get; set; } Property Value bool EnableLimitByReliefAngle Gets or sets whether to limit feedrate by relief angle collision. It is a upper bound limit. public bool EnableLimitByReliefAngle { get; set; } Property Value bool EnableOpt Gets or sets whether optimization is enabled. public bool EnableOpt { get; set; } Property Value bool MaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters. Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. public double MaxFeedPerTooth_mm { get; set; } Property Value double MinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters. Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. public double MinFeedPerTooth_mm { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string YieldingSafetyFactor Gets or sets the safety factor for yielding. By the principle of conservation, if the value is different from the NcOptOption.YieldingSafetyFactor, The larger value will be applied in the optimization process. public double YieldingSafetyFactor { get; set; } Property Value double YieldingUtilizationFactor Gets or sets the utilization factor for yielding. It is the reciprocal of YieldingSafetyFactor. public double YieldingUtilizationFactor { get; set; } Property Value double Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object Remarks res[0] has to be ICutter. GetMaxFeedPerTooth_mm() Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. public double GetMaxFeedPerTooth_mm() Returns double The maximum feed per tooth value in millimeters. GetMinFeedPerTooth_mm() Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. public double GetMinFeedPerTooth_mm() Returns double The minimum feed per tooth value in millimeters. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcOpt.NcOptOption.html": { "href": "api/Hi.NcOpt.NcOptOption.html", "title": "Class NcOptOption | HiAPI-C# 2025", "summary": "Class NcOptOption Namespace Hi.NcOpt Assembly HiMech.dll Represents the optimization options for NC operations. public class NcOptOption : IMakeXmlSource, IEquatable, IToXElement Inheritance object NcOptOption Implements IMakeXmlSource IEquatable IToXElement Inherited Members object.Equals(object, object) 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 NcOptOption() Ctor. public NcOptOption() NcOptOption(NcOptOption) Copy Ctor. public NcOptOption(NcOptOption src) Parameters src NcOptOption src NcOptOption(XElement) Initializes a new instance of the NcOptOption class from XML. public NcOptOption(XElement src) Parameters src XElement The XML element containing the option data. Properties CompensationMask Internal Use Only. Gets or sets the compensation mask for axis compensation. public int CompensationMask { get; set; } Property Value int EnableDepthCompensation Gets or sets whether depth compensation is enabled. public bool EnableDepthCompensation { get; set; } Property Value bool EnableDepthSplition Enables or disables depth splitting optimization. public bool EnableDepthSplition { get; set; } Property Value bool EnableForwardCompensation Gets or sets whether forward compensation is enabled. public bool EnableForwardCompensation { get; set; } Property Value bool EnableInterpolation Enables or disables interpolation. public bool EnableInterpolation { get; set; } Property Value bool EnableOpt Enables or disables the optimization process. public bool EnableOpt { get; set; } Property Value bool EnableOptFeedrate Enables or disables feedrate optimization. public bool EnableOptFeedrate { get; set; } Property Value bool EnableSideCompensation Gets or sets whether side compensation is enabled. public bool EnableSideCompensation { get; set; } Property Value bool ExtendedPostDistance_mm Gets or sets the extended post-distance in millimeters. public double ExtendedPostDistance_mm { get; set; } Property Value double ExtendedPreDistance_mm Gets or sets the extended pre-distance in millimeters. public double ExtendedPreDistance_mm { get; set; } Property Value double FeedrateAssignmentRatio The option takes effect if EnableInterpolation is true. If the feedrate changing exceeds this ratio, the Feedrate in the NC line will be updated. public double FeedrateAssignmentRatio { get; set; } Property Value double IsPreferFuncIndexDictionaryCalled Internal Use Only. public bool IsPreferFuncIndexDictionaryCalled { get; } Property Value bool MaxAcceleration_mmds2 Gets or sets the maximum acceleration in millimeters per second squared. The typical CNC lathe or machining center has an acceleration of 0.2g (2 m/sec2). High speed machines have accelerations up to 2g (20 m/sec2). An arbitrary value 10mm/s2 is chosen for initial value. Note: 600mm/min=10mm/s. public double MaxAcceleration_mmds2 { get; set; } Property Value double MaxFeedPerTooth_mm Gets or sets the maximum feed per tooth in millimeters. By the principle of conservation, if the value is different from the IFeedPerToothOptLimit.GetMaxFeedPerTooth_mm(), The smaller value will be applied in the optimization process. public double MaxFeedPerTooth_mm { get; set; } Property Value double MaxFeedrate_mmdmin Gets or sets the maximum feedrate in millimeters per minute. public double MaxFeedrate_mmdmin { get; set; } Property Value double MaxFeedrate_mmds Gets or sets the maximum feedrate in millimeters per second. public double MaxFeedrate_mmds { get; set; } Property Value double MaxJerk_mmds3 Gets or sets the maximum jerk in millimeters per second cubed. public double MaxJerk_mmds3 { get; set; } Property Value double MaxSpindlePowerSafetyFactor Gets or sets the safety factor for spindle power. public double MaxSpindlePowerSafetyFactor { get; set; } Property Value double MaxSpindlePowerUtilizationFactor Gets or sets the utilization factor for spindle power. It is the reciprocal of MaxSpindlePowerSafetyFactor. public double MaxSpindlePowerUtilizationFactor { get; set; } Property Value double MaxSpindleTorqueSafetyFactor Gets or sets the safety factor for spindle torque. public double MaxSpindleTorqueSafetyFactor { get; set; } Property Value double MaxSpindleTorqueUtilizationFactor Gets or sets the utilization factor for spindle torque. It is the reciprocal of MaxSpindleTorqueSafetyFactor. public double MaxSpindleTorqueUtilizationFactor { get; set; } Property Value double MinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters. By the principle of conservation, if the value is different from the IFeedPerToothOptLimit.GetMinFeedPerTooth_mm(), The larger value will be applied in the optimization process. public double MinFeedPerTooth_mm { get; set; } Property Value double MinFeedrate_mmdmin Gets or sets the minimum feedrate in millimeters per minute. public double MinFeedrate_mmdmin { get; set; } Property Value double MinFeedrate_mmds Gets or sets the minimum feedrate in millimeters per second. The principle of conversation is applied for feedrate setting (MinFeedrate_mmds and MaxFeedrate_mmds) and feed per tooth setting (MinFeedPerTooth_mm and MaxFeedPerTooth_mm). If feed per tooth setting is not in the range of feedrate setting, The feedrate setting takes priority. public double MinFeedrate_mmds { get; set; } Property Value double PreferedForce_N Gets or sets the preferred force in Newtons. public double PreferedForce_N { get; set; } Property Value double RapidFeed_mmdmin Gets or sets the rapid feed rate in millimeters per minute. public double RapidFeed_mmdmin { get; set; } Property Value double RapidFeed_mmds Gets or sets the rapid feed rate in millimeters per second. public double RapidFeed_mmds { get; set; } Property Value double ThermalYieldSafetyFactor Gets or sets the safety factor for cutter thermal yield. public double ThermalYieldSafetyFactor { get; set; } Property Value double ThermalYieldUtilizationFactor Gets or sets the safety bound for cutter thermal yield. It is the reciprocal of ThermalYieldSafetyFactor. public double ThermalYieldUtilizationFactor { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string YieldingSafetyFactor Gets or sets the safety factor for yielding. By the principle of conservation, if the value is different from the MillingCutterOptOption.YieldingSafetyFactor, The larger value will be applied in the optimization process. public double YieldingSafetyFactor { get; set; } Property Value double YieldingUtilizationFactor Gets or sets the utilization factor for yielding. It is the reciprocal of YieldingSafetyFactor. public double YieldingUtilizationFactor { get; set; } Property Value double Methods CallPreferFuncIndexDictionary() Calls and returns the prefer function index dictionary, initializing it if it is null. public Dictionary, double> CallPreferFuncIndexDictionary() Returns Dictionary, double> The prefer function index dictionary. Duplicate() Creates a new instance of NcOptOption by duplicating the current instance. public NcOptOption Duplicate() Returns NcOptOption A new NcOptOption instance with the same values as the current instance. Equals(NcOptOption) Indicates whether the current object is equal to another object of the same type. public bool Equals(NcOptOption other) Parameters other NcOptOption An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToXElement() Get the XElement to represent the object. public XElement ToXElement() Returns XElement XElement to represent the object." }, "api/Hi.NcOpt.NcOptimizationEmbeddedLogMode.html": { "href": "api/Hi.NcOpt.NcOptimizationEmbeddedLogMode.html", "title": "Enum NcOptimizationEmbeddedLogMode | HiAPI-C# 2025", "summary": "Enum NcOptimizationEmbeddedLogMode Namespace Hi.NcOpt Assembly HiNc.dll Embedded log mode for NC optimization. public enum NcOptimizationEmbeddedLogMode 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 FullLog = 2 All the lines are added the log of StepIndex and LineNo. None = 0 No embedded logging. SimpleLog = 1 Only the re-interpolated lines are added the log of StepIndex. The last re-interpolated line from each original line are added the log of LineNo." }, "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html": { "href": "api/Hi.NcOpt.ShapeBasedCutterOptLimit.html", "title": "Class ShapeBasedCutterOptLimit | HiAPI-C# 2025", "summary": "Class ShapeBasedCutterOptLimit Namespace Hi.NcOpt Assembly HiMech.dll Represents optimization limits based on cutter shape parameters. public class ShapeBasedCutterOptLimit : IFeedPerToothOptLimit, IMakeXmlSource, IDuplicate, IClearCache Inheritance object ShapeBasedCutterOptLimit Implements IFeedPerToothOptLimit IMakeXmlSource IDuplicate IClearCache 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) Constructors ShapeBasedCutterOptLimit(MillingCutter) Initializes a new instance of the ShapeBasedCutterOptLimit class. public ShapeBasedCutterOptLimit(MillingCutter cutter) Parameters cutter MillingCutter The milling cutter. ShapeBasedCutterOptLimit(Func, Func, Func) Initializes a new instance of the ShapeBasedCutterOptLimit class. public ShapeBasedCutterOptLimit(Func fluteNumFunc, Func radiusFunc_mm, Func radialReliefAngleFunc_rad) Parameters fluteNumFunc Func Function to get the number of flutes radiusFunc_mm Func Function to get the radius in millimeters radialReliefAngleFunc_rad Func Function to get the radial relief angle in radians ShapeBasedCutterOptLimit(XElement, string, MillingCutter) Ctor. public ShapeBasedCutterOptLimit(XElement src, string baseDirectory, MillingCutter cutter) Parameters src XElement XML baseDirectory string Base directory path for resolving relative paths cutter MillingCutter The milling cutter to use for calculations Properties FluteNum Gets the number of flutes. public int FluteNum { get; } Property Value int FluteNumFunc Gets or sets the function to get the number of flutes. public Func FluteNumFunc { get; set; } Property Value Func MinFeedPerTooth_mm Gets or sets the minimum feed per tooth in millimeters. public double MinFeedPerTooth_mm { get; set; } Property Value double RadialReliefAngleFunc_rad Gets or sets the function to get the radial relief angle in radians. public Func RadialReliefAngleFunc_rad { get; set; } Property Value Func RadialReliefAngle_rad Gets or sets the radial relief angle in radians. public double RadialReliefAngle_rad { get; } Property Value double RadiusFunc_mm Gets or sets the function to get the radius in millimeters. public Func RadiusFunc_mm { get; set; } Property Value Func Radius_mm Gets or sets the radius in millimeters. public double Radius_mm { get; } Property Value double SafetyFactor Gets or sets the safety factor. public double SafetyFactor { get; set; } Property Value double XName Name for XML IO. public static string XName { get; } Property Value string Methods ClearCache() Clears any cached data held by the implementing object. public void ClearCache() Duplicate(params object[]) Creates a deep copy of the object, excluding any source file references. public object Duplicate(params object[] res) Parameters res object[] Optional parameters that may be needed during the duplication process Returns object A new instance that is a deep copy of the original object GetMaxFeedPerTooth_mm() Gets the maximum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MaxFeedPerTooth_mm, The smaller value will be applied in the optimization process. public double GetMaxFeedPerTooth_mm() Returns double The maximum feed per tooth value in millimeters. GetMinFeedPerTooth_mm() Gets the minimum feed per tooth value in millimeters. By the principle of conservation, if the value is different from the NcOptOption.MinFeedPerTooth_mm, The larger value will be applied in the optimization process. public double GetMinFeedPerTooth_mm() Returns double The minimum feed per tooth value in millimeters. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcOpt.html": { "href": "api/Hi.NcOpt.html", "title": "Namespace Hi.NcOpt | HiAPI-C# 2025", "summary": "Namespace Hi.NcOpt Classes CuttingVelocityOptLimit Represents optimization limits for cutting velocity parameters. FixedFeedPerCycleOptLimit Represents fixed feed-per-cycle optimization limits. Provides implementation for feed-per-cycle optimization with fixed minimum and maximum values. FixedFeedPerToothOptLimit Represents fixed feed-per-tooth optimization limits. Provides implementation for feed-per-tooth optimization with fixed minimum and maximum values. MillingCutterOptOption Represents NC optimization option for milling cutters. NcOptOption Represents the optimization options for NC operations. ShapeBasedCutterOptLimit Represents optimization limits based on cutter shape parameters. Interfaces ICutterOptLimitHost Interface for hosts that contain cutter optimization limits. Provides access to cutter optimization limit settings. ICutterOptOption Interface for cutter optimization limits. Combines feed-per-tooth optimization capabilities with duplication and XML serialization support. Inherits from IMakeXmlSource, IFeedPerToothOptLimit, and IDuplicate. ICuttingVelocityOptLimit Interface for cutting velocity optimization limits. Defines methods to get minimum and maximum cutting velocity values. Implements IMakeXmlSource for XML serialization and IDuplicate for object duplication. IFeedPerToothOptLimit Interface for feed-per-tooth optimization limits. Defines methods to get minimum and maximum feed per tooth values. Implements IMakeXmlSource for XML serialization and IDuplicate for object duplication. Enums NcOptimizationEmbeddedLogMode Embedded log mode for NC optimization." }, "api/Hi.NcParsers.ControllerPresetWriter.html": { "href": "api/Hi.NcParsers.ControllerPresetWriter.html", "title": "Class ControllerPresetWriter | HiAPI-C# 2025", "summary": "Class ControllerPresetWriter Namespace Hi.NcParsers Assembly HiMech.dll Writes the built-in brand controller presets out as standalone SoftNcRunner resource files. A controller resource file is one serialized SoftNcRunner — the whole pipeline (dependencies, segmenter, initializers, syntaxes, semantics) that decides how a brand's NC code is interpreted. The shipped copies live under Resource/Controller/ so the Object Management Load browser starts populated; they are regenerable snapshots, not the source of truth — the brand properties on SoftNcRunner are. Writing needs no XFactory registration. Reading a file back does: call Reg(XFactory) first, otherwise XFactory.GenListSkippingUnloadable drops every unregistered pipeline entry and hands back a silently hollow runner. public static class ControllerPresetWriter Inheritance object ControllerPresetWriter Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields FileExtension Canonical extension of a serialized SoftNcRunner — named after the controller it describes rather than the class that implements it. The Controller tree's Object Management menu filters on it, so a file written here is visible in its Load browser; the older .SoftNcRunner extension stays loadable there for assets already saved under it. public const string FileExtension = \".Controller\" Field Value string ResourceCategoryFolder Resource category folder the presets are shipped under, relative to the resource root (i.e. Resource/Controller). public const string ResourceCategoryFolder = \"Controller\" Field Value string Properties BrandNames Brand tokens CreateBrandPreset(string) understands, in the order WriteAllBrandPresetFiles(string) writes them. public static IReadOnlyList BrandNames { get; } Property Value IReadOnlyList Methods CreateBrandPreset(string) Gets a fresh brand preset runner, or null when brand is not one of BrandNames. public static SoftNcRunner CreateBrandPreset(string brand) Parameters brand string One of the CncBrandDependency brand tokens. Returns SoftNcRunner Remarks Each brand property builds a new instance per read, so the returned runner is safe to mutate before writing. GetBrandPresetFileName(string) Builds the file name a brand preset is shipped under, e.g. Fanuc.default.Controller — the ResourceDefaultMarker token declares the file system-owned, so the resource seeder may refresh it on version updates. The runner carries no name of its own, so the file name is the only identity a resource browser can show. public static string GetBrandPresetFileName(string brand) Parameters brand string One of the CncBrandDependency brand tokens. Returns string WriteAllBrandPresetFiles(string) Writes every brand preset in BrandNames into targetDirectory and returns the written file paths. public static IReadOnlyList WriteAllBrandPresetFiles(string targetDirectory) Parameters targetDirectory string Directory to write into, e.g. an absolute path ending in Resource/Controller. Returns IReadOnlyList WriteBrandPresetFile(string, string) Writes one brand preset into targetDirectory and returns the written file path. Missing directories are created. public static string WriteBrandPresetFile(string brand, string targetDirectory) Parameters brand string One of the CncBrandDependency brand tokens. targetDirectory string Directory to write into, e.g. an absolute path ending in Resource/Controller. Returns string Exceptions ArgumentException brand is not a known brand. ArgumentNullException targetDirectory is null or blank." }, "api/Hi.NcParsers.Dependencys.AxisType.html": { "href": "api/Hi.NcParsers.Dependencys.AxisType.html", "title": "Enum AxisType | HiAPI-C# 2025", "summary": "Enum AxisType Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Axis type: linear (translation), rotary (rotation), or spindle (speed/positioning dual mode). public enum AxisType 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 Linear = 0 Translation axis (X, Y, Z, U, V, W). Rotary = 1 Rotation axis (A, B, C). Spindle = 2 Spindle axis — can switch between speed mode (S command) and positioning mode (C axis). Common in mill-turn machines. Siemens MD30300, Okuma OSP." }, "api/Hi.NcParsers.Dependencys.CncBrandDependency.html": { "href": "api/Hi.NcParsers.Dependencys.CncBrandDependency.html", "title": "Class CncBrandDependency | HiAPI-C# 2025", "summary": "Class CncBrandDependency Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Explicit CNC controller brand identifier carried in PipelineNcDependencyList. Use ncDependencyList.OfType().FirstOrDefault() to retrieve the brand. public class CncBrandDependency : INcDependency, IMakeXmlSource Inheritance object CncBrandDependency Implements INcDependency IMakeXmlSource 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) Constructors CncBrandDependency(string) Creates a dependency with the given brand string. public CncBrandDependency(string brand) Parameters brand string Controller brand name (often one of the public const tokens on this type). CncBrandDependency(XElement) Deserializes brand from XML. public CncBrandDependency(XElement src) Parameters src XElement Root element named XName. Fields Fanuc Brand token used when the controller is Fanuc. public const string Fanuc = \"Fanuc\" Field Value string Heidenhain Brand token used when the controller is Heidenhain. public const string Heidenhain = \"Heidenhain\" Field Value string Mazak Brand token used when the controller is Mazak. public const string Mazak = \"Mazak\" Field Value string Siemens Brand token used when the controller is Siemens. public const string Siemens = \"Siemens\" Field Value string Syntec Brand token used when the controller is Syntec. public const string Syntec = \"Syntec\" Field Value string Properties Brand CNC controller brand name (e.g., “Fanuc”, “Siemens”). public string Brand { get; set; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.ControllerParameterTableBase.html": { "href": "api/Hi.NcParsers.Dependencys.ControllerParameterTableBase.html", "title": "Class ControllerParameterTableBase | HiAPI-C# 2025", "summary": "Class ControllerParameterTableBase Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Base class for brand-specific controller parameter tables. Provides shared data structures, XML IO, and IHomeMcConfig IMachineAxisConfig implementations. Subclasses define brand-specific parameter numbers, XML attribute names, and derived convenience properties. public abstract class ControllerParameterTableBase : IHomeMcConfig, IMachineAxisConfig, IRapidFeedrateConfig, IStrokeLimitConfig, ISpindleControlConfig, IMCodeDeclarationConfig, IToolChangeTriggerConfig, INcDependency, IMakeXmlSource Inheritance object ControllerParameterTableBase Implements IHomeMcConfig IMachineAxisConfig IRapidFeedrateConfig IStrokeLimitConfig ISpindleControlConfig IMCodeDeclarationConfig IToolChangeTriggerConfig INcDependency IMakeXmlSource Derived FanucParameterTable HeidenhainParameterTable SiemensMachineDataTable SyntecParameterTable 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 AxisNames Gets the configured axis names in order. public IEnumerable AxisNames { get; } Property Value IEnumerable AxisParams Per-axis float parameters. Outer key = parameter number, inner key = axis name. public Dictionary> AxisParams { get; set; } Property Value Dictionary> AxisTypeParamId Parameter/MD/MP number for axis type (linear/rotary/spindle). protected abstract int AxisTypeParamId { get; } Property Value int EffectiveMCodeDeclarations The declaration view the consumers resolve against (IMCodeDeclarationConfig and TryGetMCodeEffects(string, out MCodeEffects)/TryResolveDirection(string, out SpindleDirection)). Defaults to MCodeDeclarations verbatim; a brand subclass overrides it to overlay declarations mandated by its own machine data (e.g. the Siemens MD22560 tool-change M function) without writing them into the stored dictionary — the stored declarations, XML, and clones stay derivation-free and the overlay re-derives on every read. protected virtual IReadOnlyDictionary EffectiveMCodeDeclarations { get; } Property Value IReadOnlyDictionary IdAttributeName XML attribute name for the parameter ID (“ParamId”, “MdId”, “MpId”). protected abstract string IdAttributeName { get; } Property Value string IntAxisParams Per-axis integer parameters. Outer key = parameter number, inner key = axis name. public Dictionary> IntAxisParams { get; set; } Property Value Dictionary> MCodeDeclarations Declared machine M-codes and their effects — the single storage behind both IMCodeDeclarationConfig and the narrower ISpindleControlConfig face, so one code is never half-recognized by two separate maps. Key = M-code as parsed (e.g., “M13”), case-insensitive. Serialized as elements (spindle-direction-only entries keep the legacy element for older readers). public Dictionary MCodeDeclarations { get; set; } Property Value Dictionary RapidRateParamId Parameter/MD/MP number for rapid traverse rate per axis. Null if not defined for this controller brand. protected virtual int? RapidRateParamId { get; } Property Value int? ReferencePositionParamId Parameter/MD/MP number for reference position (G28 home). protected abstract int ReferencePositionParamId { get; } Property Value int SpindleDirectionCodes Spindle-direction view over MCodeDeclarations: every declared code that carries a SpindleDirection. See ISpindleControlConfig. public IReadOnlyDictionary SpindleDirectionCodes { get; } Property Value IReadOnlyDictionary StrokeLimitNegParamId Parameter/MD/MP number for negative stroke limit per axis. Null if not defined for this controller brand. protected virtual int? StrokeLimitNegParamId { get; } Property Value int? StrokeLimitPosParamId Parameter/MD/MP number for positive stroke limit per axis. Null if not defined for this controller brand. protected virtual int? StrokeLimitPosParamId { get; } Property Value int? SystemParams System-wide parameters. Key = parameter number. public Dictionary SystemParams { get; set; } Property Value Dictionary ToolWordTriggersChange When true, a T word performs the tool change by itself (turret/lathe semantics — Siemens MD22550 $MC_TOOL_CHANGE_MODE = 0). Default false: T only pre-selects; the trigger M-code changes the tool. See IToolChangeTriggerConfig. Virtual so a brand subclass can defer to its own machine data when that carries the same semantics (the Siemens table consults MD22550 when present). public virtual bool ToolWordTriggersChange { get; set; } Property Value bool Methods AxisParam(int) Returns the per-axis float bucket for paramId, creating it if absent. See AxisParams. public Dictionary AxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns Dictionary ConfigureRotaryAxis(string, double, double) Configures a rotary axis with home position and rapid rate. Sets axis type to Rotary, home position via SetHomePosition(string, double), and per-axis rapid rate (if RapidRateParamId is defined for this brand). Use RemoveAxis(string) to remove the axis entirely. public void ConfigureRotaryAxis(string axisName, double homePosition_deg = 0, double rapidRate_degdmin = 36000) Parameters axisName string Axis name (e.g., “A”, “B”, “C”). homePosition_deg double Home position in degrees (default 0). rapidRate_degdmin double Rapid traverse rate in deg/min (default 36000). ConfigureSpindleDirectionCode(string, SpindleDirection) Adds or updates a custom spindle direction M-code. public void ConfigureSpindleDirectionCode(string mCode, SpindleDirection direction) Parameters mCode string direction SpindleDirection CopyParamsTo(ControllerParameterTableBase) Deep-copies this table's SystemParams, AxisParams, IntAxisParams, MCodeDeclarations, and ToolWordTriggersChange into target, replacing the target's dictionaries with independent copies (outer and inner buckets; declaration entries cloned). Subclasses expose a typed DeepClone that constructs the concrete table and calls this. Used by the parameter-table proxies to clone their fixed machine-config seed into a host that has no table yet. protected void CopyParamsTo(ControllerParameterTableBase target) Parameters target ControllerParameterTableBase The table to overwrite with deep copies of this table's parameters. DeclareMCode(string, MCodeEffects) Adds or replaces the declaration for an M-code. The effects are copied on store, so the caller may reuse or further mutate its instance without coupling declarations to each other. public void DeclareMCode(string mCode, MCodeEffects effects) Parameters mCode string effects MCodeEffects DescribeAxisParam(int) Per-axis double counterpart of DescribeSystemParam(int). Covers the role ids the base class consumes (reference position, rapid rate, stroke limits); brand subclasses may override for their own vocabulary or extra numbers. public virtual string DescribeAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeIntAxisParam(int) Per-axis integer counterpart of DescribeSystemParam(int). Covers the axis-type id the base class consumes. public virtual string DescribeIntAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeSystemParam(int) Short usage label for a well-known system parameter id, or null when the id has no modeled meaning (a raw pass-through row). Brand subclasses extend this with their own well-known numbers; the native parameter UI shows the label next to the raw id so an operator can tell the modeled parameters from free extras. public virtual string DescribeSystemParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string GetHomePosition(string) Gets the home position for a specific axis. Returns null if the axis has no home position configured. public double? GetHomePosition(string axisName) Parameters axisName string Returns double? GetLinearAxisRapidRate_mmdmin(string) Gets rapid traverse feedrate for a linear axis in mm/min. Returns a default value if the axis is not configured. public double GetLinearAxisRapidRate_mmdmin(string axisName) Parameters axisName string Returns double GetNegativeLimit(string) Gets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit). public double? GetNegativeLimit(string axisName) Parameters axisName string Returns double? GetPositiveLimit(string) Gets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit). public double? GetPositiveLimit(string axisName) Parameters axisName string Returns double? GetRotaryAxisRapidRate_degdmin(string) Gets rapid traverse feedrate for a rotary axis in deg/min. Returns a default value if the axis is not configured. public double GetRotaryAxisRapidRate_degdmin(string axisName) Parameters axisName string Returns double IntAxisParam(int) Returns the per-axis integer bucket for paramId, creating it if absent. See IntAxisParams. public Dictionary IntAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns Dictionary IsRotaryAxis(string) Returns true if the axis is rotary or spindle, false if linear. public bool IsRotaryAxis(string axisName) Parameters axisName string Returns bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public abstract XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. ReadXml(XElement) Populates SystemParams, AxisParams, and IntAxisParams from src using the brand-specific IdAttributeName. protected void ReadXml(XElement src) Parameters src XElement XML element produced by WriteXml(string). RemoveAxis(string) Removes an axis from the configuration. public void RemoveAxis(string axisName) Parameters axisName string RemoveMCodeDeclaration(string) Removes the declaration for an M-code. public void RemoveMCodeDeclaration(string mCode) Parameters mCode string RemoveSpindleDirectionCode(string) Removes a custom spindle direction M-code. public void RemoveSpindleDirectionCode(string mCode) Parameters mCode string SetAxis(string, AxisType) Adds or updates an axis with the specified type. public void SetAxis(string axisName, AxisType type) Parameters axisName string type AxisType SetHomePosition(string, double) Sets the home position for a specific axis. public void SetHomePosition(string axisName, double value) Parameters axisName string value double SetLinearAxisRapidRate_mmdmin(string, double) Sets rapid traverse feedrate for a linear axis in mm/min. public void SetLinearAxisRapidRate_mmdmin(string axisName, double value) Parameters axisName string value double SetNegativeLimit(string, double) Sets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. public void SetNegativeLimit(string axisName, double value) Parameters axisName string value double SetPositiveLimit(string, double) Sets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. public void SetPositiveLimit(string axisName, double value) Parameters axisName string value double SetRotaryAxisRapidRate_degdmin(string, double) Sets rapid traverse feedrate for a rotary axis in deg/min. public void SetRotaryAxisRapidRate_degdmin(string axisName, double value) Parameters axisName string value double TryGetMCodeEffects(string, out MCodeEffects) Resolves a parsed flag to its declared effects. Returns false for undeclared codes — ISO defaults are the consumers' concern, not this config's. The returned instance is the live declaration: treat it as read-only and reconfigure through DeclareMCode(string, MCodeEffects) instead of mutating it. public bool TryGetMCodeEffects(string mCode, out MCodeEffects effects) Parameters mCode string effects MCodeEffects Returns bool TryResolveDirection(string, out SpindleDirection) Resolves a parsed flag to a spindle direction. Returns true only for configured custom codes whose declaration carries no other effect — the caller consumes the whole flag for this one meaning, so a composite declaration (e.g. spindle + coolant) must instead be expanded by MCodeExpansionSyntax to keep its other halves alive. ISO M03/M04/M05 defaults are the caller's fallback, not this config's concern. public bool TryResolveDirection(string mCode, out SpindleDirection direction) Parameters mCode string direction SpindleDirection Returns bool WriteXml(string) Serializes SystemParams, AxisParams, and IntAxisParams into a new XElement. Inverse of ReadXml(XElement). protected XElement WriteXml(string xName) Parameters xName string Element name for the produced XML element. Returns XElement" }, "api/Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.CutterCompensationType.html", "title": "Enum CutterCompensationType | HiAPI-C# 2025", "summary": "Enum CutterCompensationType Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc #5003: Cutter compensation startup/cancellation type. public enum CutterCompensationType 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 TypeA = 0 Type A: compensation vector perpendicular to the block next to startup/cancellation. TypeB = 1 Type B: compensation vector perpendicular to startup/cancellation block + intersection vector. TypeC = 2 Type C: when startup/cancellation block has no movement, shift perpendicular to the adjacent block." }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucGotoIterationDependency.html", "title": "Class FanucGotoIterationDependency | HiAPI-C# 2025", "summary": "Class FanucGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. public class FanucGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucGotoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors FanucGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucGotoIterationDependency() FanucGotoIterationDependency(XElement) Loads MaxIterationsPerTarget from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerTarget. public FanucGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerTarget Default for MaxIterationsPerTarget. Sized as a runaway-loop guard: legitimate Fanuc macros (drill grids, calibration sweeps) stay well below, while truly unbounded loops hit it fast. public const int DefaultMaxIterationsPerTarget = 1000 Field Value int Properties CountByTarget Per-target hit counter keyed by (FileName, TargetN). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int TargetN), int> CountByTarget { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerTarget Soft cap on consecutive fires of any single GOTO target within one source file (see CountByTarget for the keying). Above this, the consuming syntax should emit a warning and suppress the redirect on the over-limit block; subsequent blocks flow through naturally. public int MaxIterationsPerTarget { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByTarget; leaves MaxIterationsPerTarget untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTable.html", "title": "Class FanucParameterTable | HiAPI-C# 2025", "summary": "Class FanucParameterTable Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. public class FanucParameterTable : ControllerParameterTableBase, IHomeMcConfig, IMachineAxisConfig, IRapidFeedrateConfig, IStrokeLimitConfig, ISpindleControlConfig, IMCodeDeclarationConfig, IToolChangeTriggerConfig, ICannedCycleConfig, IIsoCoordinateConfig, INcDependency, IMakeXmlSource, IVariableLookup Inheritance object ControllerParameterTableBase FanucParameterTable Implements IHomeMcConfig IMachineAxisConfig IRapidFeedrateConfig IStrokeLimitConfig ISpindleControlConfig IMCodeDeclarationConfig IToolChangeTriggerConfig ICannedCycleConfig IIsoCoordinateConfig INcDependency IMakeXmlSource IVariableLookup Inherited Members ControllerParameterTableBase.GetLinearAxisRapidRate_mmdmin(string) ControllerParameterTableBase.GetRotaryAxisRapidRate_degdmin(string) ControllerParameterTableBase.SetLinearAxisRapidRate_mmdmin(string, double) ControllerParameterTableBase.SetRotaryAxisRapidRate_degdmin(string, double) ControllerParameterTableBase.GetPositiveLimit(string) ControllerParameterTableBase.GetNegativeLimit(string) ControllerParameterTableBase.SetPositiveLimit(string, double) ControllerParameterTableBase.SetNegativeLimit(string, double) ControllerParameterTableBase.DescribeIntAxisParam(int) ControllerParameterTableBase.SystemParams ControllerParameterTableBase.AxisParams ControllerParameterTableBase.IntAxisParams ControllerParameterTableBase.AxisParam(int) ControllerParameterTableBase.IntAxisParam(int) ControllerParameterTableBase.GetHomePosition(string) ControllerParameterTableBase.SetHomePosition(string, double) ControllerParameterTableBase.AxisNames ControllerParameterTableBase.IsRotaryAxis(string) ControllerParameterTableBase.SetAxis(string, AxisType) ControllerParameterTableBase.RemoveAxis(string) ControllerParameterTableBase.ConfigureRotaryAxis(string, double, double) ControllerParameterTableBase.MCodeDeclarations ControllerParameterTableBase.EffectiveMCodeDeclarations ControllerParameterTableBase.TryGetMCodeEffects(string, out MCodeEffects) ControllerParameterTableBase.DeclareMCode(string, MCodeEffects) ControllerParameterTableBase.RemoveMCodeDeclaration(string) ControllerParameterTableBase.ToolWordTriggersChange ControllerParameterTableBase.SpindleDirectionCodes ControllerParameterTableBase.TryResolveDirection(string, out SpindleDirection) ControllerParameterTableBase.ConfigureSpindleDirectionCode(string, SpindleDirection) ControllerParameterTableBase.RemoveSpindleDirectionCode(string) ControllerParameterTableBase.ReadXml(XElement) ControllerParameterTableBase.WriteXml(string) ControllerParameterTableBase.CopyParamsTo(ControllerParameterTableBase) 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 FanucParameterTable() Initializes a new instance, seeding Param1020, Param3741, Param5003, and the ISO G54-G59/G54.1 P-table coordinate offsets with their default values. public FanucParameterTable() FanucParameterTable(XElement) Initializes a new instance by deserializing from src. public FanucParameterTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Fields CoordOffsetMax Inclusive upper bound of the G54-G59 work coordinate offset address range (#5328). public const int CoordOffsetMax = 5328 Field Value int CoordOffsetMin Inclusive lower bound of the G54-G59 work coordinate offset address range (#5221). public const int CoordOffsetMin = 5221 Field Value int ExtCoordOffsetMax Inclusive upper bound of the G54.1 P-table extended offset range (#7999). public const int ExtCoordOffsetMax = 7999 Field Value int ExtCoordOffsetMin Inclusive lower bound of the G54.1 P-table extended offset range (#7001). public const int ExtCoordOffsetMin = 7001 Field Value int ParamAxisType #1006: Axis type per axis. See AxisType. public const int ParamAxisType = 1006 Field Value int ParamControlledAxes #1020: Number of controlled axes. public const int ParamControlledAxes = 1020 Field Value int ParamCutterCompType #5003: Cutter compensation startup type. See CutterCompensationType. public const int ParamCutterCompType = 5003 Field Value int ParamG54OffsetBase #5221: Base address (X) of G54 work coordinate offset. G54.Y at +1 (#5222), G54.Z at +2 (#5223). G55..G59 follow at stride 20. See IsoCoordinateAddressMap. public const int ParamG54OffsetBase = 5221 Field Value int ParamG54p1P1OffsetBase #7001: Base address (X) of G54.1 P1 extended work coordinate offset. G54.1 P2..P48 follow at stride 20. See IsoCoordinateAddressMap. public const int ParamG54p1P1OffsetBase = 7001 Field Value int ParamMaxSpindleSpeed #3741: Maximum spindle speed (RPM). public const int ParamMaxSpindleSpeed = 3741 Field Value int ParamPeckRetraction #4002: G83 peck drilling retraction distance (mm). Fanuc stores this value in mm directly in the system parameter. public const int ParamPeckRetraction = 4002 Field Value int ParamRapidRate #1420: Rapid traverse rate per axis (mm/min or deg/min). public const int ParamRapidRate = 1420 Field Value int ParamReferencePosition #1240: G28 first reference position per axis. public const int ParamReferencePosition = 1240 Field Value int ParamStrokeLimitNeg #1320: Negative stroke limit per axis (mm or deg). public const int ParamStrokeLimitNeg = 1320 Field Value int ParamStrokeLimitPos #1300: Positive stroke limit per axis (mm or deg). public const int ParamStrokeLimitPos = 1300 Field Value int Properties AxisParam1006 #1006: Axis type per axis. See AxisType. See AxisNames. See IsRotaryAxis(string). See SetAxis(string, AxisType). public Dictionary AxisParam1006 { get; set; } Property Value Dictionary AxisParam1240 #1240: G28 first reference position per axis. See IHomeMcConfig. See GetHomePosition(string). See SetHomePosition(string, double). public Dictionary AxisParam1240 { get; set; } Property Value Dictionary AxisParam1420 #1420: Rapid traverse rate per axis (mm/min or deg/min). See IRapidFeedrateConfig. public Dictionary AxisParam1420 { get; set; } Property Value Dictionary AxisTypeParamId Parameter/MD/MP number for axis type (linear/rotary/spindle). protected override int AxisTypeParamId { get; } Property Value int ControlledAxisCount Number of controlled axes. Delegates to Param1020. public int ControlledAxisCount { get; set; } Property Value int CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. public IEnumerable CoordinateIds { get; } Property Value IEnumerable CutterCompType Cutter compensation startup type. Delegates to Param5003. public CutterCompensationType CutterCompType { get; set; } Property Value CutterCompensationType Default3Axis Default 3-axis Fanuc milling machine. public static FanucParameterTable Default3Axis { get; } Property Value FanucParameterTable IdAttributeName XML attribute name for the parameter ID (“ParamId”, “MdId”, “MpId”). protected override string IdAttributeName { get; } Property Value string MaxSpindleSpeed_rpm Maximum spindle speed in RPM. Delegates to Param3741. public double MaxSpindleSpeed_rpm { get; set; } Property Value double Param1020 #1020: Number of controlled axes. See ControlledAxisCount. public int Param1020 { get; set; } Property Value int Param3741 #3741: Maximum spindle speed (RPM). See MaxSpindleSpeed_rpm. public double Param3741 { get; set; } Property Value double Param5003 #5003: Cutter compensation startup type. See CutterCompType. public CutterCompensationType Param5003 { get; set; } Property Value CutterCompensationType PeckRetractionDistance_mm G83 peck drilling clearance distance above the previous stroke bottom before re-entering at feed (mm). public double PeckRetractionDistance_mm { get; } Property Value double RapidRateParamId Parameter/MD/MP number for rapid traverse rate per axis. Null if not defined for this controller brand. protected override int? RapidRateParamId { get; } Property Value int? ReferencePositionParamId Parameter/MD/MP number for reference position (G28 home). protected override int ReferencePositionParamId { get; } Property Value int StrokeLimitNegParamId Parameter/MD/MP number for negative stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitNegParamId { get; } Property Value int? StrokeLimitPosParamId Parameter/MD/MP number for positive stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitPosParamId { get; } Property Value int? XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods DeepClone() Returns an independent deep copy of this table (all three parameter dictionaries cloned). Used by FanucParameterTableProxy to clone its fixed machine-config seed into a host that has no table yet. public FanucParameterTable DeepClone() Returns FanucParameterTable DescribeAxisParam(int) Per-axis double counterpart of DescribeSystemParam(int). Covers the role ids the base class consumes (reference position, rapid rate, stroke limits); brand subclasses may override for their own vocabulary or extra numbers. public override string DescribeAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeSystemParam(int) Short usage label for a well-known system parameter id, or null when the id has no modeled meaning (a raw pass-through row). Brand subclasses extend this with their own well-known numbers; the native parameter UI shows the label next to the raw id so an operator can tell the modeled parameters from free extras. public override string DescribeSystemParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string Get(string) Returns the value of the variable identified by key (e.g. \"#124\"), or null if vacant or unknown to this lookup. public double? Get(string key) Parameters key string Returns double? Remarks Routes Fanuc system-variable reads to SystemParams: #5221-#5328 (G54-G59 work coordinate offsets) and #7001-#7999 (G54.1 P1-P48 extended offsets) are returned directly by parameter address. Other ranges return null so the evaluator's lookup chain can fall through. GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). public Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. public void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucParameterTableProxy.html", "title": "Class FanucParameterTableProxy | HiAPI-C# 2025", "summary": "Class FanucParameterTableProxy Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Get-or-create INcDependencyProxy for FanucParameterTable (the Fanuc / Mazak family parameter table): a placeholder in the shared PipelineNcDependencyList that resolves the host project's own parameter table. Unlike the pure per-case proxies, the Fanuc-family parameter table mixes machine config (axis types / reference positions / rapid / stroke) with per-case work-coordinate offsets (#5221+ / #7001+), so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no FanucParameterTable yet; a loaded project's own full table wins. The resolved host table holds everything (machine config + per-case coordinates) and is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. public sealed class FanucParameterTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object FanucParameterTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 FanucParameterTableProxy(FanucParameterTable) Creates a proxy carrying seed as its machine-config seed, defaulting to Default3Axis. public FanucParameterTableProxy(FanucParameterTable seed = null) Parameters seed FanucParameterTable The machine-config seed cloned into a fresh host. Properties Seed The fixed machine-config seed deep-cloned into a host that has no FanucParameterTable yet. Carried on the shared runner and serialized into the runner file — never the per-case instance, which lives on the host (see GetNcDependency()). public FanucParameterTable Seed { get; } Property Value FanucParameterTable XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's FanucParameterTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the host FanucParameterTable: when the host list has none, a deep clone of Seed is installed so machine config + per-case coordinates exist and are editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing host table (a loaded project's) is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Serializes only the machine-config Seed — the wired host and the resolved host table are runtime-only and not persisted in the shared runner. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Rehydrates the carried Seed from the nested FanucParameterTable element, falling back to Default3Axis when absent. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucPositionVariableLookup.html", "title": "Class FanucPositionVariableLookup | HiAPI-C# 2025", "summary": "Class FanucPositionVariableLookup Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. public sealed class FanucPositionVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object FanucPositionVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 FanucPositionVariableLookup() Default constructor. public FanucPositionVariableLookup() FanucPositionVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public FanucPositionVariableLookup(XElement src) Parameters src XElement Fields AbsoluteXyzBase Inclusive lower bound of the absolute XYZ position range (#5041). public const int AbsoluteXyzBase = 5041 Field Value int BlockEndXyzBase Inclusive lower bound of the block-end XYZ position range (#5001). public const int BlockEndXyzBase = 5001 Field Value int MachineCoordXyzBase Inclusive lower bound of the machine-coordinate XYZ position range (#5021). public const int MachineCoordXyzBase = 5021 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucToolOffsetVariableLookup.html", "title": "Class FanucToolOffsetVariableLookup | HiAPI-C# 2025", "summary": "Class FanucToolOffsetVariableLookup Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on PipelineNcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. public sealed class FanucToolOffsetVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object FanucToolOffsetVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 FanucToolOffsetVariableLookup() Default constructor. public FanucToolOffsetVariableLookup() FanucToolOffsetVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public FanucToolOffsetVariableLookup(XElement src) Parameters src XElement Fields ToolHeightMax Inclusive upper bound of the Fanuc tool height address range (#2200). public const int ToolHeightMax = 2200 Field Value int ToolHeightMin Inclusive lower bound of the Fanuc tool height address range (#2001). public const int ToolHeightMin = 2001 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? Remarks Routes #2001-#2200 to GetToolHeightOffset_mm(int) on the ToolOffsetTable found in dependencies; other keys return null so the evaluator's lookup chain falls through. MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.FanucWhileDoIterationDependency.html", "title": "Class FanucWhileDoIterationDependency | HiAPI-C# 2025", "summary": "Class FanucWhileDoIterationDependency Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. public class FanucWhileDoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FanucWhileDoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors FanucWhileDoIterationDependency() Initializes a new instance with the default limit and an empty counter. public FanucWhileDoIterationDependency() FanucWhileDoIterationDependency(XElement) Loads MaxIterationsPerLoopId from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLoopId. public FanucWhileDoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLoopId Default for MaxIterationsPerLoopId. Sized for legitimate macro iteration (NcOpt drill grids, calibration sweeps) while still catching runaway loops in a tractable time. public const int DefaultMaxIterationsPerLoopId = 10000 Field Value int Properties CountByLoop Per-loop hit counter keyed by (FileName, LoopId). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge so a brand-preset runner reused across sessions does not leak counts. public Dictionary<(string FileName, int LoopId), int> CountByLoop { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerLoopId Soft cap on consecutive END m reverse-jumps for any single (FileName, LoopId) pair. Above this the END m block emits FanucWhileDo–IterationLimitExceeded and suppresses the redirect; flow falls through past END. public int MaxIterationsPerLoopId { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByLoop; leaves MaxIterationsPerLoopId untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTable.html", "title": "Class RetainedCommonVariableTable | HiAPI-C# 2025", "summary": "Class RetainedCommonVariableTable Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. public class RetainedCommonVariableTable : INcDependency, IMakeXmlSource, IVariableLookup Inheritance object RetainedCommonVariableTable Implements INcDependency IMakeXmlSource IVariableLookup 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) Constructors RetainedCommonVariableTable() Empty table. public RetainedCommonVariableTable() RetainedCommonVariableTable(XElement) Loads from XML produced by MakeXmlSource(string, string, bool). public RetainedCommonVariableTable(XElement src) Parameters src XElement Fields RetainedCommonMax Inclusive upper bound of the retained common range (#999). public const int RetainedCommonMax = 999 Field Value int RetainedCommonMin Inclusive lower bound of the retained common range (#500). public const int RetainedCommonMin = 500 Field Value int Properties Variables Backing store. Key = variable number (e.g. 500). Value null = vacant. A missing key is also treated as vacant. Keys are constrained to RetainedCommonMin..RetainedCommonMax; out-of-range writes are silently ignored. public Dictionary Variables { get; set; } Property Value Dictionary XName XML element name. public static string XName { get; } Property Value string Methods Get(string) Returns the value of the variable identified by key (e.g. \"#124\"), or null if vacant or unknown to this lookup. public double? Get(string key) Parameters key string Returns double? Remarks Routes #500-#999 reads to GetVariable(int); other keys return null so the evaluator's lookup chain falls through. GetVariable(int) Reads a retained common variable. Returns null for vacant (either the entry is absent or stored as null). public double? GetVariable(int id) Parameters id int Variable number in RetainedCommonMin..RetainedCommonMax. Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetVariable(int, double?) Writes a retained common variable. Pass null to set vacant. Ignores ids outside RetainedCommonMin..RetainedCommonMax. public void SetVariable(int id, double? value) Parameters id int Variable number. value double? New value, or null for vacant." }, "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.RetainedCommonVariableTableProxy.html", "title": "Class RetainedCommonVariableTableProxy | HiAPI-C# 2025", "summary": "Class RetainedCommonVariableTableProxy Namespace Hi.NcParsers.Dependencys.Fanuc Assembly HiMech.dll Get-or-create INcDependencyProxy for RetainedCommonVariableTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case retained common variables (#500–#999). public sealed class RetainedCommonVariableTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object RetainedCommonVariableTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's RetainedCommonVariableTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case RetainedCommonVariableTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Fanuc.html": { "href": "api/Hi.NcParsers.Dependencys.Fanuc.html", "title": "Namespace Hi.NcParsers.Dependencys.Fanuc | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.Fanuc Classes FanucGotoIterationDependency Watchdog for Fanuc Custom Macro B GOTO loops. Holds a MaxIterationsPerTarget limit (XML-persisted user config — the soft cap above which the upcoming FanucGotoSyntax stops firing and emits a warning) plus a runtime per-target hit counter (CountByTarget — not serialised, cleared at session start by the ISessionResettable sweep in RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)). The dependency is syntax-managed: FanucGotoSyntax reads the limit, increments the counter, and decides whether to fire. There is no host Func provider — the dep is placed in Hi.NcParsers.Dependencys.Fanuc rather than Hi.NcParsers.Dependencys.SystemWired because nothing outside the syntax pipeline writes it; OnSessionReset() is the session-init hook the runner invokes through ISessionResettable, not a host-wired Func. The counter key is (FileName, TargetN) where FileName is the source-level file path of the block containing the GOTO (the relative path form carried on FilePath — same form used by IndexedFileLine labels). Source-level keying means multiple inline invocations of the same subprogram pool their counts (they ARE the same source-code GOTO), while two different files with their own N100 stay isolated (they ARE different jumps). Default MaxIterationsPerTarget is 1000 — a runaway-loop guard, not a precise iteration budget. Legitimate macro loops (multi-hole drill matrices, calibration sweeps) sit well below this; truly infinite loops hit the limit fast. Projects with batch-style macros that legitimately need higher counts can raise the value in the project XML. FanucParameterTable Fanuc controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following real Fanuc parameter numbering. FanucParameterTableProxy Get-or-create INcDependencyProxy for FanucParameterTable (the Fanuc / Mazak family parameter table): a placeholder in the shared PipelineNcDependencyList that resolves the host project's own parameter table. Unlike the pure per-case proxies, the Fanuc-family parameter table mixes machine config (axis types / reference positions / rapid / stroke) with per-case work-coordinate offsets (#5221+ / #7001+), so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no FanucParameterTable yet; a loaded project's own full table wins. The resolved host table holds everything (machine config + per-case coordinates) and is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. FanucPositionVariableLookup Fanuc-style position system variables read from the previous block's runtime-state JSON sections: #5001-#5003Block-end position X/Y/Z (workpiece) → previous block's ProgramXyz. #5021-#5023Current machine position X/Y/Z → previous block's MachineCoordinateState. #5041-#5043Current absolute position X/Y/Z → previous block's ProgramXyz. Stateless. Configured on RuntimeVariableLookups rather than NcDependencyList because the read needs the block node for Previous access — there is no long-lived dependency object that owns this data. FanucToolOffsetVariableLookup Fanuc-side adapter that exposes a wrapped ToolOffsetTable (resolved at call time from the dependency list) as an IRuntimeVariableLookup following Fanuc Memory C tool offset addressing: #2001+N → effective height of offset N (geometry − wear). The underlying ToolOffsetTable stays brand-neutral — Heidenhain / Siemens can use the same storage with different addressing by registering their own adapter alongside the table. Stateless: holds no reference of its own and resolves the table from the per-call dependencies list, so XML round-trip is trivial (an empty element). Registered on a brand preset's RuntimeVariableLookups, not on PipelineNcDependencyList — the wrapper owns no long-lived data, only the Fanuc-style id addressing scheme. The underlying ToolOffsetTable still lives in NcDependencyList as the data dependency. FanucWhileDoIterationDependency Watchdog for Fanuc Custom Macro B WHILE/END m bounded loops. Sibling to FanucGotoIterationDependency with the same “soft-cap + runtime counter + session-init ISessionResettable” shape, but kept as a separate dep (rather than sharing the GOTO bucket) so loop and jump iteration limits can be tuned independently and so diagnostic codes do not cross. The counter key is (FileName, LoopId) where FileName is the source-level file path of the WHILE/END pair (the relative path form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts (same source-code loop), while two different files each with their own WHILE DO 1 stay isolated. The consuming syntax (FanucWhileDoSyntax) increments the counter at the END m reverse-jump step — not on the WHILE entry — so a loop that exits on first WHILE evaluation (condition false from the outset) consumes zero iterations. Above MaxIterationsPerLoopId, the END m block emits a warning and suppresses the redirect; subsequent flow falls through past END. Default MaxIterationsPerLoopId is 10000 — higher than the GOTO equivalent (1000) because WHILE/END is the legitimate iteration primitive that NcOpt-generated programs (drill grids, adaptive sweeps) depend on, and 1000 is too tight for those. RetainedCommonVariableTable Fanuc-style ISO controller common variable table for the retained range #500-#999. These variables survive a power cycle (in real hardware they live in NV-RAM) and are serialised into the project file. Excluded by design: Local #1-#33Call-frame scoped (Fanuc local variables); lives in the SyntaxPiece JSON dataflow, not here. Non-retained common #100-#499Cleared by program-end / power reset; lives in the SyntaxPiece JSON dataflow as well, not in this table. System #1000+Read-only or computed from runtime state; resolved by dedicated reading syntaxes against other dependencies (e.g. FanucParameterTable, tool offset / WCS tables). Vacant (Fanuc ) is represented by null: either the dictionary has no entry for the key, or the entry maps to null. Both are treated identically by GetVariable(int). Naming rationale: Fanuc official documentation calls #500-#999 \"retained common variables\" (and #100-#499 \"non-retained common variables\"). The umbrella term \"macro variable\" was avoided because it conflicts with Custom Macro B's call-frame concept (G65/G66 push a frame containing the local #1-#33); using RetainedCommonVariableTable reserves \"macro\" for the call-frame topic. RetainedCommonVariableTableProxy Get-or-create INcDependencyProxy for RetainedCommonVariableTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case retained common variables (#500–#999). Enums CutterCompensationType Fanuc #5003: Cutter compensation startup/cancellation type." }, "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.FallbackConfig.html", "title": "Class FallbackConfig | HiAPI-C# 2025", "summary": "Class FallbackConfig Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll HiNC-specific fallback dependency that provides default values for all optional configuration interfaces. Should be placed as the last element in PipelineNcDependencyList so that brand-specific parameter tables (which appear earlier) take priority via OfType().FirstOrDefault(). When a brand table (e.g., FanucParameterTable) implements the same interface, its values are used instead. This class serves as a safety net for brands that do not define certain parameters (e.g., Siemens/Heidenhain have no system parameter for G83 peck retraction — it is per-call). public class FallbackConfig : ICannedCycleConfig, INcDependency, IMakeXmlSource Inheritance object FallbackConfig Implements ICannedCycleConfig INcDependency IMakeXmlSource 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) Constructors FallbackConfig() Initializes a new instance with default settings (PeckRetractionDistance_mm = 5.0). public FallbackConfig() FallbackConfig(XElement) Initializes a new instance by deserializing from src. public FallbackConfig(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties PeckRetractionDistance_mm G83 peck drilling clearance distance above the previous stroke bottom before re-entering at feed (mm). public double PeckRetractionDistance_mm { get; set; } Property Value double XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.GenericBlockSkipConfig.html", "title": "Class GenericBlockSkipConfig | HiAPI-C# 2025", "summary": "Class GenericBlockSkipConfig Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Default IBlockSkipConfig. Mirrors the typical Fanuc factory default: layer 1 (bare / prefix) is ON, other layers are OFF. Each layer can be toggled individually. XML form: 1,3 When EnabledLayers is absent the default is layer 1 only. public class GenericBlockSkipConfig : IBlockSkipConfig, INcDependency, IMakeXmlSource Inheritance object GenericBlockSkipConfig Implements IBlockSkipConfig INcDependency IMakeXmlSource 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) Constructors GenericBlockSkipConfig() Initializes a new instance with only layer 1 (the bare / prefix) enabled, matching the typical Fanuc factory default. public GenericBlockSkipConfig() GenericBlockSkipConfig(XElement) Initializes a new instance by deserializing from src. Falls back to layer 1 only when the EnabledLayers child element is absent or blank. public GenericBlockSkipConfig(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties EnabledLayers CSV of currently-enabled layers, e.g. “1,3”. public string EnabledLayers { get; set; } Property Value string XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods IsLayerEnabled(int) Returns true when blocks tagged with this layer should be skipped (controller switch ON). public bool IsLayerEnabled(int layer) Parameters layer int Skip layer, 1..9. Bare / is layer 1. Returns bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetLayerEnabled(int, bool) Enables / disables a specific skip layer. public void SetLayerEnabled(int layer, bool enabled) Parameters layer int Skip layer, 1..9. enabled bool True to skip blocks tagged with this layer." }, "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTable.html", "title": "Class IsoCoordinateTable | HiAPI-C# 2025", "summary": "Class IsoCoordinateTable Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Coordinate table for NC controller. The dictionary key is a G-code coordinate name (e.g. “G54”, “G59.2”); the dictionary value is machine coordinate offset. Brand-agnostic standalone implementation of IIsoCoordinateConfig. Brand parameter tables (Fanuc, Syntec, Siemens, Heidenhain) provide hardware-faithful alternatives that map to real controller parameters. public class IsoCoordinateTable : Dictionary, IDictionary, ICollection>, IReadOnlyDictionary, IReadOnlyCollection>, IEnumerable>, IDictionary, ICollection, IEnumerable, IDeserializationCallback, ISerializable, IIsoCoordinateConfig, INcDependency, IMakeXmlSource Inheritance object Dictionary IsoCoordinateTable Implements IDictionary ICollection> IReadOnlyDictionary IReadOnlyCollection> IEnumerable> IDictionary ICollection IEnumerable IDeserializationCallback ISerializable IIsoCoordinateConfig INcDependency IMakeXmlSource Inherited Members Dictionary.Add(string, Vec3d) Dictionary.Clear() Dictionary.ContainsKey(string) Dictionary.ContainsValue(Vec3d) Dictionary.EnsureCapacity(int) Dictionary.GetAlternateLookup() Dictionary.GetEnumerator() Dictionary.OnDeserialization(object) Dictionary.Remove(string) Dictionary.Remove(string, out Vec3d) Dictionary.TrimExcess() Dictionary.TrimExcess(int) Dictionary.TryAdd(string, Vec3d) Dictionary.TryGetAlternateLookup(out Dictionary.AlternateLookup) Dictionary.TryGetValue(string, out Vec3d) Dictionary.Comparer Dictionary.Count Dictionary.Capacity Dictionary.this[string] Dictionary.Keys Dictionary.Values 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) DictionaryUtil.Retrieve(Dictionary, K, out V, bool) DictionaryUtil.GetOrCreate(IDictionary, TKey) DictionaryUtil.GetOrCreate(IDictionary, TKey, TValue) DictionaryUtil.GetOrCreate(IDictionary, TKey, Func) DictionaryUtil.TryGetValueByKeys(IDictionary, IEnumerable, out TValue) StringUtil.ToDotSplitedString(IEnumerable) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors IsoCoordinateTable() Ctor. public IsoCoordinateTable() IsoCoordinateTable(XElement) Initializes a new instance of the IsoCoordinateTable class from XML. Supports both new string ID format (“G54”) and legacy integer format (54000). public IsoCoordinateTable(XElement src) Parameters src XElement The XML element containing coordinate data. Fields XName Gets the XML element name for the IsoCoordinateTable. public static string XName Field Value string Properties CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. public IEnumerable CoordinateIds { get; } Property Value IEnumerable Methods GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). public Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d LegacyIntToKey(int) Converts a legacy 1000x integer ID to a G-code string key. e.g. 54000 -> “G54”, 59200 -> “G59.2”. public static string LegacyIntToKey(int id) Parameters id int Returns string MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. public void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d" }, "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.IsoCoordinateTableProxy.html", "title": "Class IsoCoordinateTableProxy | HiAPI-C# 2025", "summary": "Class IsoCoordinateTableProxy Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Get-or-create INcDependencyProxy for IsoCoordinateTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case work coordinate offsets (G54–G59…). public sealed class IsoCoordinateTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object IsoCoordinateTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's IsoCoordinateTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case IsoCoordinateTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Generic.MachineAxisConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.MachineAxisConfig.html", "title": "Class MachineAxisConfig | HiAPI-C# 2025", "summary": "Class MachineAxisConfig Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Brand-neutral IMachineAxisConfig backed by a plain axis→type map, for pipelines that have no controller parameter table (e.g. the NX CLSF runner). Typically populated from the machine chain via ConfigureByMachiningChain(IMachiningChain); rotary axes default to modular (IsModularRotary(string) inherited), matching the cyclic shortest-path treatment of McAbcCyclicPathSyntax. public class MachineAxisConfig : IMachineAxisConfig, INcDependency, IMakeXmlSource Inheritance object MachineAxisConfig Implements IMachineAxisConfig INcDependency IMakeXmlSource 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) Constructors MachineAxisConfig() Creates an empty config; axes are added via SetAxis(string, AxisType). public MachineAxisConfig() MachineAxisConfig(XElement) Reconstructs a config from its XML element. public MachineAxisConfig(XElement src) Parameters src XElement XML element previously produced by MakeXmlSource(string, string, bool). Properties AxisNames Gets the configured axis names in order. public IEnumerable AxisNames { get; } Property Value IEnumerable XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Clear() Removes every axis. Call before re-populating from a different machine chain — axes left over from a previous chain (e.g. rotaries after switching 5-axis → 3-axis) would otherwise send the modal rotary lookbacks walking the whole stream for values that no block carries. public void Clear() IsRotaryAxis(string) Returns true if the axis is rotary or spindle, false if linear. public bool IsRotaryAxis(string axisName) Parameters axisName string Returns bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory RemoveAxis(string) Removes an axis from the configuration. public void RemoveAxis(string axisName) Parameters axisName string SetAxis(string, AxisType) Adds or updates an axis with the specified type. public void SetAxis(string axisName, AxisType type) Parameters axisName string type AxisType" }, "api/Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.SubProgramFolderConfig.html", "title": "Class SubProgramFolderConfig | HiAPI-C# 2025", "summary": "Class SubProgramFolderConfig Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Folder lookup configuration for SubProgramCallSyntax: where to find an O file when the host program executes M98 P_ L_ (InternalFolder) or M198 P_ (ExternalFolder, modelling Fanuc's external storage call — memory card, USB, DNC drive — whose only difference from M98 is the search root). Either path may be absolute or relative; when relative, it resolves against the host file's parent directory at lookup time. Either may be null — a null ExternalFolder falls back to InternalFolder; a null InternalFolder falls back to the host file's parent directory. public class SubProgramFolderConfig : INcDependency, IMakeXmlSource Inheritance object SubProgramFolderConfig Implements INcDependency IMakeXmlSource 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) Constructors SubProgramFolderConfig() Initializes a new instance with the default “NC” internal folder and null external folder. public SubProgramFolderConfig() SubProgramFolderConfig(XElement) Loads InternalFolder / ExternalFolder from XML produced by MakeXmlSource(string, string, bool); either child element may be absent. public SubProgramFolderConfig(XElement src) Parameters src XElement Root element named XName. Properties ExternalFolder Folder for M198 P_ lookup, modelling Fanuc's “subprogram on external storage” semantics. Absolute or relative. Null means “fall back to InternalFolder” — a simulator-friendly default for projects that don't actually distinguish internal vs external storage on disk. public string ExternalFolder { get; set; } Property Value string InternalFolder Folder for M98 P_ lookup. Absolute or relative; relative is resolved against the host file's parent directory at use time. Null means “use the host file's parent directory directly”. Default “NC” mirrors a typical project layout where the main program sits beside an NC/ subdirectory of subprograms. public string InternalFolder { get; set; } Property Value string XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetRow.html", "title": "Class ToolOffsetRow | HiAPI-C# 2025", "summary": "Class ToolOffsetRow Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Single row of a ToolOffsetTable. Stores geometry (ideal) and wear components for height and radius. Matches Fanuc Memory C layout where H and D share the same row. public class ToolOffsetRow Inheritance object ToolOffsetRow 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) Constructors ToolOffsetRow() Initializes a new instance with all components zero. public ToolOffsetRow() ToolOffsetRow(double, double, double, double) Initializes a new instance with the supplied geometry and wear components. public ToolOffsetRow(double idealHeight_mm, double axialWear_mm, double idealRadius_mm, double radialWear_mm) Parameters idealHeight_mm double Initial value of IdealHeight_mm. axialWear_mm double Initial value of AxialWear_mm. idealRadius_mm double Initial value of IdealRadius_mm. radialWear_mm double Initial value of RadialWear_mm. Properties AxialWear_mm Accumulated axial wear in millimetres, subtracted from IdealHeight_mm by FullHeight_mm. public double AxialWear_mm { get; set; } Property Value double FullHeight_mm Effective height: geometry minus wear. public double FullHeight_mm { get; } Property Value double FullRadius_mm Effective radius: geometry minus wear. public double FullRadius_mm { get; } Property Value double IdealHeight_mm Geometric tool height in millimetres before wear is subtracted. Combined with AxialWear_mm via FullHeight_mm. public double IdealHeight_mm { get; set; } Property Value double IdealRadius_mm Geometric tool radius in millimetres before wear is subtracted. Combined with RadialWear_mm via FullRadius_mm. public double IdealRadius_mm { get; set; } Property Value double RadialWear_mm Accumulated radial wear in millimetres, subtracted from IdealRadius_mm by FullRadius_mm. public double RadialWear_mm { get; set; } Property Value double" }, "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTable.html", "title": "Class ToolOffsetTable | HiAPI-C# 2025", "summary": "Class ToolOffsetTable Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Integer-keyed tool offset table implementing IToolOffsetConfig. Suitable for Fanuc (H/D), Heidenhain (tool number), Mazak, Okuma, and other ISO-compatible controllers. Key = offset number (Fanuc H or D number). public class ToolOffsetTable : INcDependency, IMakeXmlSource, IToolOffsetConfig Inheritance object ToolOffsetTable Implements INcDependency IMakeXmlSource IToolOffsetConfig 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) Constructors ToolOffsetTable() Initializes a new instance with an empty Offsets table. public ToolOffsetTable() ToolOffsetTable(XElement) Initializes a new instance by deserializing from src. public ToolOffsetTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties Offsets Tool offset rows keyed by offset number (Fanuc H or D number, Heidenhain tool number, etc.). public Dictionary Offsets { get; set; } Property Value Dictionary XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetToolHeightOffset_mm(int) Gets the effective tool height offset (geometry - wear) in mm. Returns 0 if the offset number is not configured. public double GetToolHeightOffset_mm(int offsetNumber) Parameters offsetNumber int Offset number: Fanuc H number, Heidenhain tool number, etc. Returns double GetToolRadiusOffset_mm(int) Gets the effective tool radius offset (geometry - wear) in mm. Returns 0 if the offset number is not configured. public double GetToolRadiusOffset_mm(int offsetNumber) Parameters offsetNumber int Offset number: Fanuc D number, Heidenhain tool number, etc. Returns double MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetToolOffset(int, double, double, double, double) Sets all four offset components for the given offset number. public void SetToolOffset(int offsetNumber, double idealHeight_mm, double axialWear_mm, double idealRadius_mm, double radialWear_mm) Parameters offsetNumber int idealHeight_mm double axialWear_mm double idealRadius_mm double radialWear_mm double UpdateIdealByToolHouse(MachiningToolHouse) Refreshes the ideal (geometry) components from the tool house — ideal height = the tool's spindle-buckle→tool-tip length, ideal radius = the cutter profile's max radius — preserving accumulated wear, and drops rows whose tool id no longer exists in the house. Offset number maps 1:1 to the tool id. Mirrors the HardNc MillingToolOffsetTable.UpdateIdealMillingToolOffsetTableByToolHouse semantics so H/D offsets follow the tool house when the project's IsIdealOffsetDependentOnToolHouse is on. public void UpdateIdealByToolHouse(MachiningToolHouse toolHouse) Parameters toolHouse MachiningToolHouse Source tool house; no-op when null." }, "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.ToolOffsetTableProxy.html", "title": "Class ToolOffsetTableProxy | HiAPI-C# 2025", "summary": "Class ToolOffsetTableProxy Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll Get-or-create INcDependencyProxy for ToolOffsetTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case tool offsets. The shared runner file holds only this proxy, never the offset data. public sealed class ToolOffsetTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object ToolOffsetTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's ToolOffsetTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case ToolOffsetTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.ToolingMcConfig.html", "title": "Class ToolingMcConfig | HiAPI-C# 2025", "summary": "Class ToolingMcConfig Namespace Hi.NcParsers.Dependencys.Generic Assembly HiMech.dll HiNC-specific: machine position axes move to during tool change (M06). Not a standard Fanuc parameter — in real Fanuc, tool change motion is programmed in the macro program (O9006). Each axis value: a position to move to, or NaN to stay. public class ToolingMcConfig : IToolingMcConfig, INcDependency, IMakeXmlSource Inheritance object ToolingMcConfig Implements IToolingMcConfig INcDependency IMakeXmlSource 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) Constructors ToolingMcConfig() Initializes a new instance with an empty AxisPositions map and zero ToolingTime. public ToolingMcConfig() ToolingMcConfig(XElement) Initializes a new instance by deserializing from src. public ToolingMcConfig(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties AxisPositions Per-axis tooling positions. NaN means the axis stays where it is. public Dictionary AxisPositions { get; set; } Property Value Dictionary Default3Axis Default: XY stay, Z moves to 0, rotary axes stay (no A/B/C entry — GetToolingPosition(string) returns null → NaN in ToolingMcAbc_deg → the axis does not participate in the tool-change motion). public static ToolingMcConfig Default3Axis { get; } Property Value ToolingMcConfig ToolingTime Duration of the tool changer mechanism (arm swap, magazine rotation, etc.). Does not include axis motion time to/from the tooling position. public TimeSpan ToolingTime { get; set; } Property Value TimeSpan XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetToolingPosition(string) Gets the tooling position for a specific axis. Returns NaN if the axis should stay where it is. Returns null if the axis has no tooling position configured. public double? GetToolingPosition(string axisName) Parameters axisName string Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetToolingPosition(string, double) Sets the tooling position for a specific axis. Use NaN to indicate the axis should stay. public void SetToolingPosition(string axisName, double value) Parameters axisName string value double" }, "api/Hi.NcParsers.Dependencys.Generic.html": { "href": "api/Hi.NcParsers.Dependencys.Generic.html", "title": "Namespace Hi.NcParsers.Dependencys.Generic | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.Generic Classes FallbackConfig HiNC-specific fallback dependency that provides default values for all optional configuration interfaces. Should be placed as the last element in PipelineNcDependencyList so that brand-specific parameter tables (which appear earlier) take priority via OfType().FirstOrDefault(). When a brand table (e.g., FanucParameterTable) implements the same interface, its values are used instead. This class serves as a safety net for brands that do not define certain parameters (e.g., Siemens/Heidenhain have no system parameter for G83 peck retraction — it is per-call). GenericBlockSkipConfig Default IBlockSkipConfig. Mirrors the typical Fanuc factory default: layer 1 (bare / prefix) is ON, other layers are OFF. Each layer can be toggled individually. XML form: 1,3 When EnabledLayers is absent the default is layer 1 only. IsoCoordinateTable Coordinate table for NC controller. The dictionary key is a G-code coordinate name (e.g. “G54”, “G59.2”); the dictionary value is machine coordinate offset. Brand-agnostic standalone implementation of IIsoCoordinateConfig. Brand parameter tables (Fanuc, Syntec, Siemens, Heidenhain) provide hardware-faithful alternatives that map to real controller parameters. IsoCoordinateTableProxy Get-or-create INcDependencyProxy for IsoCoordinateTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case work coordinate offsets (G54–G59…). MachineAxisConfig Brand-neutral IMachineAxisConfig backed by a plain axis→type map, for pipelines that have no controller parameter table (e.g. the NX CLSF runner). Typically populated from the machine chain via ConfigureByMachiningChain(IMachiningChain); rotary axes default to modular (IsModularRotary(string) inherited), matching the cyclic shortest-path treatment of McAbcCyclicPathSyntax. SubProgramFolderConfig Folder lookup configuration for SubProgramCallSyntax: where to find an O file when the host program executes M98 P_ L_ (InternalFolder) or M198 P_ (ExternalFolder, modelling Fanuc's external storage call — memory card, USB, DNC drive — whose only difference from M98 is the search root). Either path may be absolute or relative; when relative, it resolves against the host file's parent directory at lookup time. Either may be null — a null ExternalFolder falls back to InternalFolder; a null InternalFolder falls back to the host file's parent directory. ToolOffsetRow Single row of a ToolOffsetTable. Stores geometry (ideal) and wear components for height and radius. Matches Fanuc Memory C layout where H and D share the same row. ToolOffsetTable Integer-keyed tool offset table implementing IToolOffsetConfig. Suitable for Fanuc (H/D), Heidenhain (tool number), Mazak, Okuma, and other ISO-compatible controllers. Key = offset number (Fanuc H or D number). ToolOffsetTableProxy Get-or-create INcDependencyProxy for ToolOffsetTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case tool offsets. The shared runner file holds only this proxy, never the offset data. ToolingMcConfig HiNC-specific: machine position axes move to during tool change (M06). Not a standard Fanuc parameter — in real Fanuc, tool change motion is programmed in the macro program (O9006). Each axis value: a position to move to, or NaN to stay." }, "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainGotoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainGotoIterationDependency.html", "title": "Class HeidenhainGotoIterationDependency | HiAPI-C# 2025", "summary": "Class HeidenhainGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Heidenhain Assembly HiMech.dll Watchdog for Heidenhain FN 9–12 GOTO LBL jumps — the label-keyed sibling of the Siemens SiemensGotoIterationDependency, with the same “soft-cap + runtime counter + session-init ISessionResettable” shape. Kept per-brand for diagnostic clarity and because klartext targets are LBL numbers-or-names, matched in their canonical form (“01” ≡ 1 on a TNC, quotes stripped). The counter key is (FileName, Label) where FileName is the source-level file path of the jump host (the relative form carried on FilePath) and Label is the normalised target. Klartext has no direction mnemonic — a backward jump is the language's loop primitive, a forward jump can only fire once per arrival — so all jumps to one label share one bucket and the cap stays generous. The consuming syntax (HeidenhainGotoSyntax) counts after the condition gate and before the label scan; above MaxIterationsPerLabel the jump warns HeidenhainGoto--IterationLimitExceeded and falls through. A missing dependency disables the cap (Fanuc parity) — the brand preset wires one by default. public class HeidenhainGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object HeidenhainGotoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors HeidenhainGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public HeidenhainGotoIterationDependency() HeidenhainGotoIterationDependency(XElement) Loads MaxIterationsPerLabel from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLabel. public HeidenhainGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLabel Default for MaxIterationsPerLabel — the Fanuc / Siemens GOTO default: klartext counting loops are short (feed scaling, retry sections), so the cap stays tight. public const int DefaultMaxIterationsPerLabel = 1000 Field Value int Properties CountByLabel Per-target hit counter keyed by (FileName, Label) with the label in canonical form. Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge. public Dictionary<(string FileName, string Label), int> CountByLabel { get; } Property Value Dictionary<(string FileName, string Label), int> MaxIterationsPerLabel Soft cap on fired jumps for any single (FileName, Label) pair. Above this the host block emits HeidenhainGoto–IterationLimitExceeded and falls through. public int MaxIterationsPerLabel { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByLabel; leaves MaxIterationsPerLabel untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTable.html", "title": "Class HeidenhainParameterTable | HiAPI-C# 2025", "summary": "Class HeidenhainParameterTable Namespace Hi.NcParsers.Dependencys.Heidenhain Assembly HiMech.dll Heidenhain TNC/iTNC machine parameter table. Stores machine parameters (MP numbers) as system and per-axis values. MP100–MP199: General machine configuration. MP400–MP499: Axis-specific parameters. public class HeidenhainParameterTable : ControllerParameterTableBase, IHomeMcConfig, IMachineAxisConfig, IRapidFeedrateConfig, IStrokeLimitConfig, ISpindleControlConfig, IMCodeDeclarationConfig, IToolChangeTriggerConfig, INcDependency, IMakeXmlSource Inheritance object ControllerParameterTableBase HeidenhainParameterTable Implements IHomeMcConfig IMachineAxisConfig IRapidFeedrateConfig IStrokeLimitConfig ISpindleControlConfig IMCodeDeclarationConfig IToolChangeTriggerConfig INcDependency IMakeXmlSource Inherited Members ControllerParameterTableBase.GetLinearAxisRapidRate_mmdmin(string) ControllerParameterTableBase.GetRotaryAxisRapidRate_degdmin(string) ControllerParameterTableBase.SetLinearAxisRapidRate_mmdmin(string, double) ControllerParameterTableBase.SetRotaryAxisRapidRate_degdmin(string, double) ControllerParameterTableBase.GetPositiveLimit(string) ControllerParameterTableBase.GetNegativeLimit(string) ControllerParameterTableBase.SetPositiveLimit(string, double) ControllerParameterTableBase.SetNegativeLimit(string, double) ControllerParameterTableBase.DescribeIntAxisParam(int) ControllerParameterTableBase.SystemParams ControllerParameterTableBase.AxisParams ControllerParameterTableBase.IntAxisParams ControllerParameterTableBase.AxisParam(int) ControllerParameterTableBase.IntAxisParam(int) ControllerParameterTableBase.GetHomePosition(string) ControllerParameterTableBase.SetHomePosition(string, double) ControllerParameterTableBase.AxisNames ControllerParameterTableBase.IsRotaryAxis(string) ControllerParameterTableBase.SetAxis(string, AxisType) ControllerParameterTableBase.RemoveAxis(string) ControllerParameterTableBase.ConfigureRotaryAxis(string, double, double) ControllerParameterTableBase.MCodeDeclarations ControllerParameterTableBase.EffectiveMCodeDeclarations ControllerParameterTableBase.TryGetMCodeEffects(string, out MCodeEffects) ControllerParameterTableBase.DeclareMCode(string, MCodeEffects) ControllerParameterTableBase.RemoveMCodeDeclaration(string) ControllerParameterTableBase.ToolWordTriggersChange ControllerParameterTableBase.SpindleDirectionCodes ControllerParameterTableBase.TryResolveDirection(string, out SpindleDirection) ControllerParameterTableBase.ConfigureSpindleDirectionCode(string, SpindleDirection) ControllerParameterTableBase.RemoveSpindleDirectionCode(string) ControllerParameterTableBase.ReadXml(XElement) ControllerParameterTableBase.WriteXml(string) ControllerParameterTableBase.CopyParamsTo(ControllerParameterTableBase) 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 HeidenhainParameterTable() Initializes a new instance with empty parameter tables. public HeidenhainParameterTable() HeidenhainParameterTable(XElement) Initializes a new instance by deserializing from src. public HeidenhainParameterTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Fields MpAxisType MP400: Axis type per axis (0=linear, 1=rotary, 2=spindle). public const int MpAxisType = 400 Field Value int MpMaxSpindleSpeed MP100: Maximum spindle speed (RPM). public const int MpMaxSpindleSpeed = 100 Field Value int MpRapidRate MP1010: Rapid traverse rate per axis (mm/min or deg/min). public const int MpRapidRate = 1010 Field Value int MpReferencePosition MP410: Reference point position per axis. public const int MpReferencePosition = 410 Field Value int MpStrokeLimitNeg MP430: Negative stroke limit per axis. public const int MpStrokeLimitNeg = 430 Field Value int MpStrokeLimitPos MP420: Positive stroke limit per axis. public const int MpStrokeLimitPos = 420 Field Value int MpToolAxisDirection MP101: Tool axis direction (0=Z, 1=Y, 2=X). public const int MpToolAxisDirection = 101 Field Value int Properties AxisMp1010 MP1010: Rapid traverse rate per axis (mm/min or deg/min). See IRapidFeedrateConfig. public Dictionary AxisMp1010 { get; set; } Property Value Dictionary AxisMp400 MP400: Axis type per axis. See AxisType. See AxisNames. public Dictionary AxisMp400 { get; set; } Property Value Dictionary AxisMp410 MP410: Reference point position per axis. See IHomeMcConfig. public Dictionary AxisMp410 { get; set; } Property Value Dictionary AxisTypeParamId Parameter/MD/MP number for axis type (linear/rotary/spindle). protected override int AxisTypeParamId { get; } Property Value int Default3Axis Default 3-axis Heidenhain milling machine. public static HeidenhainParameterTable Default3Axis { get; } Property Value HeidenhainParameterTable IdAttributeName XML attribute name for the parameter ID (“ParamId”, “MdId”, “MpId”). protected override string IdAttributeName { get; } Property Value string MaxSpindleSpeed_rpm Maximum spindle speed in RPM. Delegates to Mp100. public double MaxSpindleSpeed_rpm { get; set; } Property Value double Mp100 MP100: Maximum spindle speed (RPM). See MaxSpindleSpeed_rpm. public double Mp100 { get; set; } Property Value double Mp101 MP101: Tool axis direction (0=Z, 1=Y, 2=X). See ToolAxisDirection. public int Mp101 { get; set; } Property Value int RapidRateParamId Parameter/MD/MP number for rapid traverse rate per axis. Null if not defined for this controller brand. protected override int? RapidRateParamId { get; } Property Value int? ReferencePositionParamId Parameter/MD/MP number for reference position (G28 home). protected override int ReferencePositionParamId { get; } Property Value int StrokeLimitNegParamId Parameter/MD/MP number for negative stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitNegParamId { get; } Property Value int? StrokeLimitPosParamId Parameter/MD/MP number for positive stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitPosParamId { get; } Property Value int? ToolAxisDirection Tool axis direction (0=Z, 1=Y, 2=X). Delegates to Mp101. public int ToolAxisDirection { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods DeepClone() Returns an independent deep copy of this table (all three parameter dictionaries cloned). Used by HeidenhainParameterTableProxy to clone its fixed machine-config seed into a host that has no table yet. public HeidenhainParameterTable DeepClone() Returns HeidenhainParameterTable DescribeAxisParam(int) Per-axis double counterpart of DescribeSystemParam(int). Covers the role ids the base class consumes (reference position, rapid rate, stroke limits); brand subclasses may override for their own vocabulary or extra numbers. public override string DescribeAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeSystemParam(int) Short usage label for a well-known system parameter id, or null when the id has no modeled meaning (a raw pass-through row). Brand subclasses extend this with their own well-known numbers; the native parameter UI shows the label next to the raw id so an operator can tell the modeled parameters from free extras. public override string DescribeSystemParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainParameterTableProxy.html", "title": "Class HeidenhainParameterTableProxy | HiAPI-C# 2025", "summary": "Class HeidenhainParameterTableProxy Namespace Hi.NcParsers.Dependencys.Heidenhain Assembly HiMech.dll Get-or-create INcDependencyProxy for HeidenhainParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own machine parameter table. Like the Fanuc-family parameter table, the Heidenhain MP table mixes machine config (axis types / reference positions / rapid rates / tool axis direction) with per-project edits, so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no HeidenhainParameterTable yet; a loaded project's own full table wins, so a same-brand re-flash re-binds to the project's parameters instead of resetting them. The resolved host table is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. public sealed class HeidenhainParameterTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object HeidenhainParameterTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 HeidenhainParameterTableProxy(HeidenhainParameterTable) Creates a proxy carrying seed as its machine-config seed, defaulting to Default3Axis. public HeidenhainParameterTableProxy(HeidenhainParameterTable seed = null) Parameters seed HeidenhainParameterTable The machine-config seed cloned into a fresh host. Properties Seed The fixed machine-config seed deep-cloned into a host that has no HeidenhainParameterTable yet. Carried on the shared runner and serialized into the runner file — never the per-case instance, which lives on the host (see GetNcDependency()). public HeidenhainParameterTable Seed { get; } Property Value HeidenhainParameterTable XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's HeidenhainParameterTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the host HeidenhainParameterTable: when the host list has none, a deep clone of Seed is installed so the machine parameters exist and are editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing host table (a loaded project's) is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Serializes only the machine-config Seed — the wired host and the resolved host table are runtime-only and not persisted in the shared runner. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Rehydrates the carried Seed from the nested HeidenhainParameterTable element, falling back to Default3Axis when absent. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTable.html", "title": "Class HeidenhainQParameterTable | HiAPI-C# 2025", "summary": "Class HeidenhainQParameterTable Namespace Hi.NcParsers.Dependencys.Heidenhain Assembly HiMech.dll Heidenhain Q-parameter table for the ranges that persist on a real TNC: free parameters Q0-Q99 (survive power cycles) and the permanent QR0-QR499 range (nonvolatile, backed up with the machine). Like the Siemens sibling SiemensRParameterTable, this table is not session-reset and is serialised into the project file. The other Q ranges deliberately live elsewhere: Q100-Q199 are controller-written system parameters — Get(string) returns null for them (read fail-soft, no fabricated values) and the reading syntax refuses writes; Q200+ are volatile cycle/user parameters carried block-to-block in Vars.Volatile (JSON dataflow, cleared at program end) — Get(string) also returns null so the evaluator's chain falls through to HeidenhainVolatileQLookup. Reads flow through Get(string) (registered automatically because the table sits on the runner's effective NcDependencyList); writes flow through HeidenhainQParameterReadingSyntax, which consumes literal Parsing.Assignments.Qn entries after VariableEvaluatorSyntax has normalized expression RHS to literals. Vacant is represented by null: either the dictionary has no entry for the key, or the entry maps to null — both read identically. A vacant read failing loud (Variable--Vacant via the evaluator) surfaces missing setup data instead of silently machining with 0. public class HeidenhainQParameterTable : INcDependency, IMakeXmlSource, IVariableLookup Inheritance object HeidenhainQParameterTable Implements INcDependency IMakeXmlSource IVariableLookup 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) Constructors HeidenhainQParameterTable() Empty table. public HeidenhainQParameterTable() HeidenhainQParameterTable(XElement) Loads from XML produced by MakeXmlSource(string, string, bool). public HeidenhainQParameterTable(XElement src) Parameters src XElement Fields PersistentMax Inclusive upper bound of the persistent free range (Q99). public const int PersistentMax = 99 Field Value int PersistentMin Inclusive lower bound of the persistent free range (Q0). public const int PersistentMin = 0 Field Value int QRMax Inclusive upper bound of the permanent QR range (QR499). public const int QRMax = 499 Field Value int QRMin Inclusive lower bound of the permanent QR range (QR0). public const int QRMin = 0 Field Value int SystemMax Inclusive upper bound of the read-only system range (Q199). public const int SystemMax = 199 Field Value int SystemMin Inclusive lower bound of the read-only system range (Q100). public const int SystemMin = 100 Field Value int Properties QRVariables Backing store of the permanent QR range. Key = QR number (e.g. 5 for QR5); same vacant semantics as Variables. Keys are constrained to QRMin..QRMax. public Dictionary QRVariables { get; set; } Property Value Dictionary Variables Backing store of the free persistent range. Key = Q number (e.g. 1 for Q1). Value null = vacant; a missing key is also vacant. Keys are constrained to PersistentMin..PersistentMax; out-of-range writes are silently ignored. public Dictionary Variables { get; set; } Property Value Dictionary XName XML element name. public static string XName { get; } Property Value string Methods Get(string) Returns the value of the variable identified by key (e.g. \"#124\"), or null if vacant or unknown to this lookup. public double? Get(string key) Parameters key string Returns double? Remarks Routes Qn keys in the persistent free range and QRn keys (canonical uppercase from HeidenhainExpressionParser; lowercase from raw captures also resolves) to their stores. All other keys — including the system range Q100-Q199 (read fail-soft by design), the volatile range Q200+ (lives in Vars.Volatile) and QL/QS — return null so the evaluator's lookup chain falls through. GetQRVariable(int) Reads a permanent QR parameter (QR0-QR499). Returns null for vacant. public double? GetQRVariable(int id) Parameters id int Parameter number in QRMin..QRMax. Returns double? GetVariable(int) Reads a free Q parameter (Q0-Q99). Returns null for vacant (either the entry is absent or stored as null). public double? GetVariable(int id) Parameters id int Parameter number in PersistentMin..PersistentMax. Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetQRVariable(int, double?) Writes a permanent QR parameter. Pass null to set vacant. Ignores ids outside QRMin..QRMax. public void SetQRVariable(int id, double? value) Parameters id int Parameter number. value double? New value, or null for vacant. SetVariable(int, double?) Writes a free Q parameter. Pass null to set vacant. Ignores ids outside PersistentMin..PersistentMax. public void SetVariable(int id, double? value) Parameters id int Parameter number. value double? New value, or null for vacant." }, "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.HeidenhainQParameterTableProxy.html", "title": "Class HeidenhainQParameterTableProxy | HiAPI-C# 2025", "summary": "Class HeidenhainQParameterTableProxy Namespace Hi.NcParsers.Dependencys.Heidenhain Assembly HiMech.dll Get-or-create INcDependencyProxy for HeidenhainQParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case Q parameters (Q0–Q99 + QR0–QR499). public sealed class HeidenhainQParameterTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object HeidenhainQParameterTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's HeidenhainQParameterTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case HeidenhainQParameterTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Heidenhain.html": { "href": "api/Hi.NcParsers.Dependencys.Heidenhain.html", "title": "Namespace Hi.NcParsers.Dependencys.Heidenhain | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.Heidenhain Classes HeidenhainGotoIterationDependency Watchdog for Heidenhain FN 9–12 GOTO LBL jumps — the label-keyed sibling of the Siemens SiemensGotoIterationDependency, with the same “soft-cap + runtime counter + session-init ISessionResettable” shape. Kept per-brand for diagnostic clarity and because klartext targets are LBL numbers-or-names, matched in their canonical form (“01” ≡ 1 on a TNC, quotes stripped). The counter key is (FileName, Label) where FileName is the source-level file path of the jump host (the relative form carried on FilePath) and Label is the normalised target. Klartext has no direction mnemonic — a backward jump is the language's loop primitive, a forward jump can only fire once per arrival — so all jumps to one label share one bucket and the cap stays generous. The consuming syntax (HeidenhainGotoSyntax) counts after the condition gate and before the label scan; above MaxIterationsPerLabel the jump warns HeidenhainGoto--IterationLimitExceeded and falls through. A missing dependency disables the cap (Fanuc parity) — the brand preset wires one by default. HeidenhainParameterTable Heidenhain TNC/iTNC machine parameter table. Stores machine parameters (MP numbers) as system and per-axis values. MP100–MP199: General machine configuration. MP400–MP499: Axis-specific parameters. HeidenhainParameterTableProxy Get-or-create INcDependencyProxy for HeidenhainParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own machine parameter table. Like the Fanuc-family parameter table, the Heidenhain MP table mixes machine config (axis types / reference positions / rapid rates / tool axis direction) with per-project edits, so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no HeidenhainParameterTable yet; a loaded project's own full table wins, so a same-brand re-flash re-binds to the project's parameters instead of resetting them. The resolved host table is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. HeidenhainQParameterTable Heidenhain Q-parameter table for the ranges that persist on a real TNC: free parameters Q0-Q99 (survive power cycles) and the permanent QR0-QR499 range (nonvolatile, backed up with the machine). Like the Siemens sibling SiemensRParameterTable, this table is not session-reset and is serialised into the project file. The other Q ranges deliberately live elsewhere: Q100-Q199 are controller-written system parameters — Get(string) returns null for them (read fail-soft, no fabricated values) and the reading syntax refuses writes; Q200+ are volatile cycle/user parameters carried block-to-block in Vars.Volatile (JSON dataflow, cleared at program end) — Get(string) also returns null so the evaluator's chain falls through to HeidenhainVolatileQLookup. Reads flow through Get(string) (registered automatically because the table sits on the runner's effective NcDependencyList); writes flow through HeidenhainQParameterReadingSyntax, which consumes literal Parsing.Assignments.Qn entries after VariableEvaluatorSyntax has normalized expression RHS to literals. Vacant is represented by null: either the dictionary has no entry for the key, or the entry maps to null — both read identically. A vacant read failing loud (Variable--Vacant via the evaluator) surfaces missing setup data instead of silently machining with 0. HeidenhainQParameterTableProxy Get-or-create INcDependencyProxy for HeidenhainQParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case Q parameters (Q0–Q99 + QR0–QR499)." }, "api/Hi.NcParsers.Dependencys.HeidenhainDatumTable.html": { "href": "api/Hi.NcParsers.Dependencys.HeidenhainDatumTable.html", "title": "Class HeidenhainDatumTable | HiAPI-C# 2025", "summary": "Class HeidenhainDatumTable Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Heidenhain datum preset and datum shift tables. CYCL DEF 247 Q339=N reads from DatumPresetTable, CYCL DEF 7 #N reads from DatumShiftTable. Each table maps an integer ID (1–20) to a Vec3d offset. On real Heidenhain controllers, preset and datum tables are separate disk files (e.g. TNC:\\table\\preset.pr, *.d) — distinct from MP-prefixed Machine Parameters (held by HeidenhainParameterTable). HiNC mirrors that separation by keeping this dependency independent of HeidenhainParameterTable. Implements IIsoCoordinateConfig by mapping the ISO/DIN G54–G59 codes to preset rows 1–6, the conventional Heidenhain compatibility mapping for ISO/DIN programs running on a Heidenhain. public class HeidenhainDatumTable : IIsoCoordinateConfig, INcDependency, IMakeXmlSource Inheritance object HeidenhainDatumTable Implements IIsoCoordinateConfig INcDependency IMakeXmlSource 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) Constructors HeidenhainDatumTable() Initializes a new instance with rows 1-20 of DatumPresetTable and DatumShiftTable seeded to zero. public HeidenhainDatumTable() HeidenhainDatumTable(XElement) Initializes a new instance by deserializing from src. public HeidenhainDatumTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Fields PresetCoordinateIdPrefix CoordinateId prefix for preset rows (CYCL DEF 247), written by LogicSyntaxs.Heidenhain.HeidenhainCoordinateOffsetSyntax and resolved back to DatumPresetTable by GetCoordinateOffset(string) so the shared modal-lookback path (IsoCoordinateOffsetSyntax) keeps the offset alive on the blocks after the declaration. public const string PresetCoordinateIdPrefix = \"DATUM_PRESET_\" Field Value string ShiftCoordinateIdPrefix Shift-row id prefix (CYCL DEF 7 #N) used in the DatumShift section's ShiftId; the shift is carried modally by HeidenhainCoordinateOffsetSyntax itself (additive to the preset), not by the ISO coordinate-offset path. public const string ShiftCoordinateIdPrefix = \"DATUM_SHIFT_\" Field Value string Properties CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. public IEnumerable CoordinateIds { get; } Property Value IEnumerable DatumPresetTable Preset rows (CYCL DEF 247 Q339=N) keyed by preset id (1-20). Rows 1-6 are aliased to ISO G54-G59 via IIsoCoordinateConfig. public Dictionary DatumPresetTable { get; set; } Property Value Dictionary DatumShiftTable Datum shift rows (CYCL DEF 7 #N) keyed by table id (1-20). public Dictionary DatumShiftTable { get; set; } Property Value Dictionary XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). public Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d GetDatumPreset(int) Returns the preset offset for q339, or Zero if absent. See DatumPresetTable. public Vec3d GetDatumPreset(int q339) Parameters q339 int Preset id (CYCL DEF 247 Q339). Returns Vec3d GetDatumShift(int) Returns the datum shift offset for tableId, or Zero if absent. See DatumShiftTable. public Vec3d GetDatumShift(int tableId) Parameters tableId int Datum shift row id (CYCL DEF 7 #N). Returns Vec3d MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. public void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d SetDatumPreset(int, Vec3d) Sets the preset offset for q339. See DatumPresetTable. public void SetDatumPreset(int q339, Vec3d offset) Parameters q339 int Preset id (CYCL DEF 247 Q339). offset Vec3d Translation to store. SetDatumShift(int, Vec3d) Sets the datum shift offset for tableId. See DatumShiftTable. public void SetDatumShift(int tableId, Vec3d offset) Parameters tableId int Datum shift row id (CYCL DEF 7 #N). offset Vec3d Translation to store." }, "api/Hi.NcParsers.Dependencys.HeidenhainDatumTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.HeidenhainDatumTableProxy.html", "title": "Class HeidenhainDatumTableProxy | HiAPI-C# 2025", "summary": "Class HeidenhainDatumTableProxy Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Get-or-create INcDependencyProxy for HeidenhainDatumTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case datum preset / datum shift tables. public sealed class HeidenhainDatumTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object HeidenhainDatumTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's HeidenhainDatumTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case HeidenhainDatumTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.IBlockSkipConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IBlockSkipConfig.html", "title": "Interface IBlockSkipConfig | HiAPI-C# 2025", "summary": "Interface IBlockSkipConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Runtime state of the controller's Block Delete / Block Skip switches. Present in PipelineNcDependencyList exposes this to the runner so that blocks whose head carries / or /N (parsed by BlockSkipSyntax into BlockSkip) are skipped at semantic time. Layers are 1..9; Layer 1 corresponds to the bare / prefix. Controllers (Fanuc / Syntec / Mazak / Siemens) let each layer be toggled independently via panel switches or system parameters. When this dependency is absent from PipelineNcDependencyList, no block is skipped (safest default: simulate the full machining). The syntax still consumes the / prefix so no UnparsedText--Remaining diagnostic is produced. public interface IBlockSkipConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods IsLayerEnabled(int) Returns true when blocks tagged with this layer should be skipped (controller switch ON). bool IsLayerEnabled(int layer) Parameters layer int Skip layer, 1..9. Bare / is layer 1. Returns bool SetLayerEnabled(int, bool) Enables / disables a specific skip layer. void SetLayerEnabled(int layer, bool enabled) Parameters layer int Skip layer, 1..9. enabled bool True to skip blocks tagged with this layer." }, "api/Hi.NcParsers.Dependencys.ICannedCycleConfig.html": { "href": "api/Hi.NcParsers.Dependencys.ICannedCycleConfig.html", "title": "Interface ICannedCycleConfig | HiAPI-C# 2025", "summary": "Interface ICannedCycleConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Canned cycle configuration parameters. Implemented by brand-specific parameter tables (e.g., FanucParameterTable for Fanuc #4002, SyntecParameterTable for Syntec Pr4002) and by FallbackConfig as a safety net. Siemens and Heidenhain specify peck clearance per-call (CYCLE83 parameter / CYCL DEF), so their tables do not implement this interface. The FallbackConfig provides the default value in those cases. public interface ICannedCycleConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 PeckRetractionDistance_mm G83 peck drilling clearance distance above the previous stroke bottom before re-entering at feed (mm). double PeckRetractionDistance_mm { get; } Property Value double" }, "api/Hi.NcParsers.Dependencys.IHomeMcConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IHomeMcConfig.html", "title": "Interface IHomeMcConfig | HiAPI-C# 2025", "summary": "Interface IHomeMcConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll G28 first reference position (home machine coordinate) per axis. public interface IHomeMcConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 HomeMcAbc_deg ABC home position in degrees. Defaults to 0 per missing axis. Vec3d HomeMcAbc_deg { get; set; } Property Value Vec3d HomeMcXyz XYZ home position. Defaults to 0 per missing axis. Vec3d HomeMcXyz { get; set; } Property Value Vec3d Methods GetHomePosition(string) Gets the home position for a specific axis. Returns null if the axis has no home position configured. double? GetHomePosition(string axisName) Parameters axisName string Returns double? SetHomePosition(string, double) Sets the home position for a specific axis. void SetHomePosition(string axisName, double value) Parameters axisName string value double" }, "api/Hi.NcParsers.Dependencys.IIndexingPositionConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IIndexingPositionConfig.html", "title": "Interface IIndexingPositionConfig | HiAPI-C# 2025", "summary": "Interface IIndexingPositionConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Indexing-axis position table: maps 1-based indexing position numbers to axis coordinates for axes that only take up discrete stations (Hirth couplings, indexing rotary tables, turret-style workholders). Consumed by the coded-position coordinate functions (Siemens CAC()/CIC()/CDC()/CACP()/CACN() — unwrapped by SiemensAcIcSyntax, resolved by McAbcSyntax / IncrementalResolveSyntax via CodedPositionUtil). Implemented by SiemensMachineDataTable using the Siemens machine data (MD30500 $MA_INDEX_AX_ASSIGN_POS_TAB per axis; global tables MD10910/MD10930; equidistant MD30501–MD30503). Positions are expressed in the axis' native units (degrees for rotary, mm for linear) in the coordinate frame the axis word itself is written in — machine coordinates for rotary words, program coordinates for linear words. Position numbering is 1-based: number 1 is the first table entry (the Siemens machine-data help and alarm texts count this way; the 0-based value range printed in some programming-manual editions describes the machine-data array index, not the programmable number). public interface IIndexingPositionConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Fields PositionMatchTolerance Tolerance, in axis units (degrees or mm), within which an axis position is considered exactly on an indexing position by TryFindIndexingAnchor(string, double, out int, out bool). Anchors come from previous exact table writes, so the tolerance only needs to absorb float round-trip drift — real indexing spacings are many orders of magnitude larger. public const double PositionMatchTolerance = 1E-06 Field Value double Methods GetIndexingPositionCount(string) Number of programmable indexing positions: the table length for table-assigned axes, the per-cycle position count for cyclic equidistant axes, MaxValue for unbounded (non-cyclic equidistant) axes, and 0 when the axis is not a usable indexing axis. int GetIndexingPositionCount(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns int IsIndexingAxis(string) True when the axis is configured as an indexing axis with a usable position table (a non-empty table, or a valid equidistant definition). An axis declared indexing but with an empty/invalid table reports false — the coded-position words then stay unrecognized (loud residue) instead of resolving against garbage. bool IsIndexingAxis(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns bool IsIndexingCyclic(string) True when position-number arithmetic wraps modulo GetIndexingPositionCount(string) — an indexing axis that is also a modular rotary axis (IsModularRotary(string)). Advancing past the last position continues at position 1. bool IsIndexingCyclic(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns bool TryFindIndexingAnchor(string, double, out int, out bool) Locates an axis position relative to the indexing table for incremental (CIC) resolution: floorNumber is the number of the nearest indexing position at or below position (cyclically behind on cyclic axes; 0 when the position lies below the whole table on a non-cyclic axis), and exactlyOnPosition reports a match within PositionMatchTolerance. False when the axis is not a usable indexing axis. bool TryFindIndexingAnchor(string axisName, double position, out int floorNumber, out bool exactlyOnPosition) Parameters axisName string Axis name (e.g., “C”). position double Current axis coordinate (degrees or mm); rotary values may lie outside one revolution and are normalized by the implementation. floorNumber int Number of the nearest indexing position at or (cyclically) below the given position. exactlyOnPosition bool True when the position sits on an indexing position within PositionMatchTolerance. Returns bool TryGetIndexingPosition(string, int, out double) Resolves a 1-based indexing position number to its axis coordinate. False when the axis is not a usable indexing axis or the number is outside [1, count]. bool TryGetIndexingPosition(string axisName, int positionNumber, out double position) Parameters axisName string Axis name (e.g., “C”). positionNumber int 1-based indexing position number. position double Resolved axis coordinate (degrees or mm). Returns bool" }, "api/Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IIsoCoordinateConfig.html", "title": "Interface IIsoCoordinateConfig | HiAPI-C# 2025", "summary": "Interface IIsoCoordinateConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll ISO work coordinate offset provider. Maps a G-code work coordinate id (e.g. “G54”, “G59.2”, “G54.1P1”) to a machine-coordinate offset Vec3d. Implementations include IsoCoordinateTable (brand-agnostic standalone storage), FanucParameterTable / SyntecParameterTable (parameter-table integration via real Fanuc/Syntec parameter numbers #5221+ for G54–G59 and #7001+ for G54.1 P1–P48), SiemensFrameTable (Sinumerik $P_UIFR frames), and HeidenhainDatumTable (Heidenhain preset rows). public interface IIsoCoordinateConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. IEnumerable CoordinateIds { get; } Property Value IEnumerable Methods GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d" }, "api/Hi.NcParsers.Dependencys.IMCodeDeclarationConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IMCodeDeclarationConfig.html", "title": "Interface IMCodeDeclarationConfig | HiAPI-C# 2025", "summary": "Interface IMCodeDeclarationConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Machine-declared M-code map: what each machine-specific (OEM/PLC) M-code does, as MCodeEffects — possibly several effects per code (tool change, spindle direction, coolant) plus a note for behavior this simulation does not model. Consumed by MCodeExpansionSyntax, which expands declared codes into the canonical ISO flags ahead of the regular consumers. Machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase, alongside the narrower ISpindleControlConfig face over the same storage. public interface IMCodeDeclarationConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 MCodeDeclarations Declared machine M-codes. Key = M-code as parsed (e.g. “M13”), matched case-insensitively; value = the effects the code performs. Enumerable for UI/serialization. IReadOnlyDictionary MCodeDeclarations { get; } Property Value IReadOnlyDictionary Methods DeclareMCode(string, MCodeEffects) Adds or replaces the declaration for an M-code. The effects are copied on store, so the caller may reuse or further mutate its instance without coupling declarations to each other. void DeclareMCode(string mCode, MCodeEffects effects) Parameters mCode string effects MCodeEffects RemoveMCodeDeclaration(string) Removes the declaration for an M-code. void RemoveMCodeDeclaration(string mCode) Parameters mCode string TryGetMCodeEffects(string, out MCodeEffects) Resolves a parsed flag to its declared effects. Returns false for undeclared codes — ISO defaults are the consumers' concern, not this config's. The returned instance is the live declaration: treat it as read-only and reconfigure through DeclareMCode(string, MCodeEffects) instead of mutating it. bool TryGetMCodeEffects(string mCode, out MCodeEffects effects) Parameters mCode string effects MCodeEffects Returns bool" }, "api/Hi.NcParsers.Dependencys.IMachineAxisConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IMachineAxisConfig.html", "title": "Interface IMachineAxisConfig | HiAPI-C# 2025", "summary": "Interface IMachineAxisConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Machine axis configuration: which axes exist and their types. Compatible with Fanuc, Siemens, Heidenhain, Mazak, Okuma. public interface IMachineAxisConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 AxisNames Gets the configured axis names in order. IEnumerable AxisNames { get; } Property Value IEnumerable Methods IsModularRotary(string) Whether the rotary axis wraps 0°–360° (modular). Affects cyclic shortest-path resolution. Returns false for linear axes. bool IsModularRotary(string axisName) Parameters axisName string Returns bool IsRotaryAxis(string) Returns true if the axis is rotary or spindle, false if linear. bool IsRotaryAxis(string axisName) Parameters axisName string Returns bool RemoveAxis(string) Removes an axis from the configuration. void RemoveAxis(string axisName) Parameters axisName string SetAxis(string, AxisType) Adds or updates an axis with the specified type. void SetAxis(string axisName, AxisType type) Parameters axisName string type AxisType" }, "api/Hi.NcParsers.Dependencys.INcDependency.html": { "href": "api/Hi.NcParsers.Dependencys.INcDependency.html", "title": "Interface INcDependency | HiAPI-C# 2025", "summary": "Interface INcDependency Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Marker interface for objects that participate in the NC dependency list resolved by the soft-NC runtime. public interface INcDependency : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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)" }, "api/Hi.NcParsers.Dependencys.INcDependencyListHost.html": { "href": "api/Hi.NcParsers.Dependencys.INcDependencyListHost.html", "title": "Interface INcDependencyListHost | HiAPI-C# 2025", "summary": "Interface INcDependencyListHost Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Hosts a per-case INcDependency list that INcDependencyProxy placeholders in a shared SoftNcRunner resolve their data against. Implemented by the object owning both the shared runner and the varied setting data — e.g. MachiningProject. public interface INcDependencyListHost 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 PerCaseNcDependencyList The case-specific dependencies (tool offsets, coordinate tables, parameter tables, …) that proxies take from — never the runner's own fixed list. A get-or-create proxy may also append the dependency it makes here. List PerCaseNcDependencyList { get; } Property Value List" }, "api/Hi.NcParsers.Dependencys.INcDependencyProxy.html": { "href": "api/Hi.NcParsers.Dependencys.INcDependencyProxy.html", "title": "Interface INcDependencyProxy | HiAPI-C# 2025", "summary": "Interface INcDependencyProxy Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll An INcDependency placeholder that resolves the real dependency lazily at pipeline-build time instead of carrying the data itself. Lets a shared SoftNcRunner hold only the fixed pipeline logic while the frequently-varied data lives on the owning INcDependencyListHost (e.g. a MachiningProject). \"Maker and taker\": GetNcDependency() either constructs the dependency on demand (maker) or fetches one from the host wired by InitNcDependencyHost(INcDependencyListHost) (taker). A get-or-create proxy does both — it takes the host's instance when present and otherwise makes one, installing it into the host list so it persists and is editable per case. A proxy may carry runtime-only state (the wired host, a memoized resolved dependency). That state is host-wired per run and MUST NOT be written by MakeXmlSource(string, string, bool) — same runtime-only posture as ProjectFolderDependency. public interface INcDependencyProxy : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods GetNcDependency() Resolves the concrete dependency this proxy stands in for. Called by GetEffectiveNcDependencyList() to build the list passed to every Build / Resolve / Expand / Initialize / GetSentences call. May return null when no host is wired or it supplied no matching data — callers null-check individual dependencies. INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host whose PerCaseNcDependencyList this proxy takes from (or makes against). Called by the host / project service before the pipeline runs — mirrors how BaseDirectoryProvider is wired from HiNc. Runtime-only; not persisted. A get-or-create proxy may also materialize its data into the host list here, so the per-case dependency exists and is editable before any run. void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost The owner of the per-case dependency data." }, "api/Hi.NcParsers.Dependencys.IPowerResettable.html": { "href": "api/Hi.NcParsers.Dependencys.IPowerResettable.html", "title": "Interface IPowerResettable | HiAPI-C# 2025", "summary": "Interface IPowerResettable Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Marks an INcDependency that holds volatile state which must be cleared when the controller performs a power reset (power off then on). Implementers should clear only the volatile subset they own (e.g. Fanuc common volatile macro variables #100-#499), and leave persistent state untouched (e.g. #500-#999, controller parameters). Call-frame local state (Fanuc #1-#33, Heidenhain Q200-Q1199) is NOT in scope — that lives in the SyntaxPiece JSON dataflow and is bounded by call activation, not power cycle. public interface IPowerResettable : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods OnPowerReset() Clears the volatile subset owned by this dependency. Called by SessionShell.PowerReset() for every IPowerResettable in the active NcDependencyList. void OnPowerReset()" }, "api/Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IRapidFeedrateConfig.html", "title": "Interface IRapidFeedrateConfig | HiAPI-C# 2025", "summary": "Interface IRapidFeedrateConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Provides per-axis rapid traverse feedrate for motion semantics. Implemented by ControllerParameterTableBase using brand-specific parameter numbers (e.g., Fanuc #1420, Siemens MD32000, Heidenhain MP1010). public interface IRapidFeedrateConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods GetLinearAxisRapidRate_mmdmin(string) Gets rapid traverse feedrate for a linear axis in mm/min. Returns a default value if the axis is not configured. double GetLinearAxisRapidRate_mmdmin(string axisName) Parameters axisName string Returns double GetRotaryAxisRapidRate_degdmin(string) Gets rapid traverse feedrate for a rotary axis in deg/min. Returns a default value if the axis is not configured. double GetRotaryAxisRapidRate_degdmin(string axisName) Parameters axisName string Returns double SetLinearAxisRapidRate_mmdmin(string, double) Sets rapid traverse feedrate for a linear axis in mm/min. void SetLinearAxisRapidRate_mmdmin(string axisName, double value) Parameters axisName string value double SetRotaryAxisRapidRate_degdmin(string, double) Sets rapid traverse feedrate for a rotary axis in deg/min. void SetRotaryAxisRapidRate_degdmin(string axisName, double value) Parameters axisName string value double" }, "api/Hi.NcParsers.Dependencys.ISpindleControlConfig.html": { "href": "api/Hi.NcParsers.Dependencys.ISpindleControlConfig.html", "title": "Interface ISpindleControlConfig | HiAPI-C# 2025", "summary": "Interface ISpindleControlConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Machine-specific spindle control codes: maps custom spindle direction M-codes to SpindleDirection — e.g., an ultrasonic spindle started by M203 (CW) and stopped by M205 (STOP) instead of ISO M03/M05. Consulted by SpindleSpeedSyntax in addition to the built-in ISO defaults (M03/M04/M05), which always stay in effect; a configured code wins over its ISO meaning when both match. Machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase as a spindle-direction face over its MCodeDeclarations storage (the multi-effect IMCodeDeclarationConfig map), so one code is never half-recognized by two separate maps. public interface ISpindleControlConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 SpindleDirectionCodes Configured custom spindle direction M-codes. Key = M-code as parsed (e.g., “M203”), matched case-insensitively; value = resulting direction. Enumerable for UI/serialization. IReadOnlyDictionary SpindleDirectionCodes { get; } Property Value IReadOnlyDictionary Methods ConfigureSpindleDirectionCode(string, SpindleDirection) Adds or updates a custom spindle direction M-code. void ConfigureSpindleDirectionCode(string mCode, SpindleDirection direction) Parameters mCode string direction SpindleDirection RemoveSpindleDirectionCode(string) Removes a custom spindle direction M-code. void RemoveSpindleDirectionCode(string mCode) Parameters mCode string TryResolveDirection(string, out SpindleDirection) Resolves a parsed flag to a spindle direction. Returns true only for configured custom codes whose declaration carries no other effect — the caller consumes the whole flag for this one meaning, so a composite declaration (e.g. spindle + coolant) must instead be expanded by MCodeExpansionSyntax to keep its other halves alive. ISO M03/M04/M05 defaults are the caller's fallback, not this config's concern. bool TryResolveDirection(string mCode, out SpindleDirection direction) Parameters mCode string direction SpindleDirection Returns bool" }, "api/Hi.NcParsers.Dependencys.IStrokeLimitConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IStrokeLimitConfig.html", "title": "Interface IStrokeLimitConfig | HiAPI-C# 2025", "summary": "Interface IStrokeLimitConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Per-axis stroke (travel) limits. Unit is mm for linear axes, deg for rotary axes. Implemented by ControllerParameterTableBase using brand-specific parameter numbers (e.g., Fanuc #1300/#1320, Siemens MD36100/MD36110, Heidenhain MP420/MP430). public interface IStrokeLimitConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods CheckStrokeLimit(DVec3d, IProgress) Checks whether a position is within all configured stroke limits. bool CheckStrokeLimit(DVec3d mcXyzabc, IProgress stripReporter = null) Parameters mcXyzabc DVec3d Machine coordinate. Point = XYZ (mm), Normal = ABC (rad). stripReporter IProgress Progress sink for cutter-location strip updates. Can be null. Returns bool True if within all limits or no limits configured. GetNegativeLimit(string) Gets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit). double? GetNegativeLimit(string axisName) Parameters axisName string Returns double? GetPositiveLimit(string) Gets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. Returns null if not configured (no limit). double? GetPositiveLimit(string axisName) Parameters axisName string Returns double? SetNegativeLimit(string, double) Sets the negative stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. void SetNegativeLimit(string axisName, double value) Parameters axisName string value double SetPositiveLimit(string, double) Sets the positive stroke limit for a specific axis. Unit is mm for linear axes, deg for rotary axes. void SetPositiveLimit(string axisName, double value) Parameters axisName string value double" }, "api/Hi.NcParsers.Dependencys.IToolChangeTriggerConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IToolChangeTriggerConfig.html", "title": "Interface IToolChangeTriggerConfig | HiAPI-C# 2025", "summary": "Interface IToolChangeTriggerConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Machine-level tool-change trigger mode. Machining centers with a magazine treat a bare T word as pre-selection only (the magazine rotates, no feed axis moves) and change the tool on the trigger M-code; lathes/turret machines index the turret — and thereby change the tool — on the T word itself. Real controllers declare this per machine (e.g. Siemens MD22550 $MC_TOOL_CHANGE_MODE, where 0 means the T word performs the change). Consulted by ToolChangeSyntax; machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase. Custom trigger M-codes are the separate IMCodeDeclarationConfig concern (IsToolChange). public interface IToolChangeTriggerConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 ToolWordTriggersChange When true, a block carrying a T word performs the tool change by itself (turret semantics); default false keeps the ISO machining-center behavior where only the trigger M-code changes the tool and T merely arms the selection. bool ToolWordTriggersChange { get; set; } Property Value bool" }, "api/Hi.NcParsers.Dependencys.IToolOffsetConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IToolOffsetConfig.html", "title": "Interface IToolOffsetConfig | HiAPI-C# 2025", "summary": "Interface IToolOffsetConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Tool offset configuration indexed by a single integer offset number. Applies to Fanuc (H/D numbers), Heidenhain (tool number), Mazak, Okuma, and other ISO-compatible controllers where one integer selects the offset row. For Siemens (840D/Sinumerik) where offsets are addressed by (tool number, cutting edge D number), see ISiemensToolOffsetConfig. public interface IToolOffsetConfig 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) Methods GetToolHeightOffset_mm(int) Gets the effective tool height offset (geometry - wear) in mm. Returns 0 if the offset number is not configured. double GetToolHeightOffset_mm(int offsetNumber) Parameters offsetNumber int Offset number: Fanuc H number, Heidenhain tool number, etc. Returns double GetToolRadiusOffset_mm(int) Gets the effective tool radius offset (geometry - wear) in mm. Returns 0 if the offset number is not configured. double GetToolRadiusOffset_mm(int offsetNumber) Parameters offsetNumber int Offset number: Fanuc D number, Heidenhain tool number, etc. Returns double SetToolOffset(int, double, double, double, double) Sets all four offset components for the given offset number. void SetToolOffset(int offsetNumber, double idealHeight_mm, double axialWear_mm, double idealRadius_mm, double radialWear_mm) Parameters offsetNumber int idealHeight_mm double axialWear_mm double idealRadius_mm double radialWear_mm double" }, "api/Hi.NcParsers.Dependencys.IToolingMcConfig.html": { "href": "api/Hi.NcParsers.Dependencys.IToolingMcConfig.html", "title": "Interface IToolingMcConfig | HiAPI-C# 2025", "summary": "Interface IToolingMcConfig Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Machine position axes move to during tool change (M06). public interface IToolingMcConfig : INcDependency, IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 ToolingMcAbc_deg ABC tooling position in degrees. NaN per missing or stay-in-place axis. Vec3d ToolingMcAbc_deg { get; set; } Property Value Vec3d ToolingMcXyz XYZ tooling position. NaN per missing or stay-in-place axis. Vec3d ToolingMcXyz { get; set; } Property Value Vec3d ToolingTime Duration of the tool changer mechanism (arm swap, magazine rotation, etc.). Does not include axis motion time to/from the tooling position. TimeSpan ToolingTime { get; set; } Property Value TimeSpan Methods GetToolingPosition(string) Gets the tooling position for a specific axis. Returns NaN if the axis should stay where it is. Returns null if the axis has no tooling position configured. double? GetToolingPosition(string axisName) Parameters axisName string Returns double? SetToolingPosition(string, double) Sets the tooling position for a specific axis. Use NaN to indicate the axis should stay. void SetToolingPosition(string axisName, double value) Parameters axisName string value double" }, "api/Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html": { "href": "api/Hi.NcParsers.Dependencys.IsoCoordinateAddressMap.html", "title": "Class IsoCoordinateAddressMap | HiAPI-C# 2025", "summary": "Class IsoCoordinateAddressMap Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll Fanuc-style ISO coordinate parameter address mapping. G54–G59 → #5221+ (stride 20, three consecutive numbers per entry for X/Y/Z), G54.1 P1–P48 → #7001+ (stride 20). Shared between FanucParameterTable (which calls these “ParamId”) and SyntecParameterTable (which calls them “PrId”) because both follow the same numeric scheme. public static class IsoCoordinateAddressMap Inheritance object IsoCoordinateAddressMap Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields G54Base #5221: base address of G54 (X). G54.Y=#5222, G54.Z=#5223. public const int G54Base = 5221 Field Value int G54p1P1Base #7001: base address of G54.1 P1 (X). G54.1 P1.Y=#7002, P1.Z=#7003. public const int G54p1P1Base = 7001 Field Value int G54p1PCount 48: number of G54.1 P entries (P1..P48). public const int G54p1PCount = 48 Field Value int G5xCount 6: number of G5x entries (G54..G59). public const int G5xCount = 6 Field Value int Stride 20: address stride between successive coordinate entries. public const int Stride = 20 Field Value int Methods DescribeAddress(int) Inverse of TryResolveBase(string) per single address: describes an address inside the mapped ranges as its work-coordinate component (“G54 X offset”, “G54.1P3 Z offset”), or null outside them (including the unused tail of each 20-address stride). public static string DescribeAddress(int addr) Parameters addr int Parameter address (e.g. 5222). Returns string EnumerateCoordinateIds(IDictionary) Enumerates the coordinate ids (G54..G59, G54.1P1..G54.1P48) that have at least one axis entry present in systemParams. public static IEnumerable EnumerateCoordinateIds(IDictionary systemParams) Parameters systemParams IDictionary Returns IEnumerable Read(IDictionary, int) Reads X/Y/Z from systemParams at consecutive addresses starting at baseAddr. Returns null when none of the three addresses are present (i.e. the entry is unmanaged). public static Vec3d Read(IDictionary systemParams, int baseAddr) Parameters systemParams IDictionary baseAddr int Returns Vec3d SeedAllDefaults(IDictionary) Seeds all G54–G59 and G54.1 P1–P48 entries with zero. Total 162 SystemParams entries (6×3 + 48×3). Used by brand parameter tables to satisfy the “managed parameter must have default” invariant — real Fanuc on a fresh-battery controller also reads 0 for these addresses, so the model matches hardware. public static void SeedAllDefaults(IDictionary systemParams) Parameters systemParams IDictionary TryResolveBase(string) Resolves a coordinate id to its 3-axis base address (X address; Y at +1, Z at +2), or null if the id is outside the Fanuc-mapped set (G54–G59, G54.1P1–G54.1P48). public static int? TryResolveBase(string coordId) Parameters coordId string Returns int? Write(IDictionary, int, Vec3d) Writes X/Y/Z to systemParams at consecutive addresses starting at baseAddr. public static void Write(IDictionary systemParams, int baseAddr, Vec3d offset) Parameters systemParams IDictionary baseAddr int offset Vec3d" }, "api/Hi.NcParsers.Dependencys.MCodeEffects.html": { "href": "api/Hi.NcParsers.Dependencys.MCodeEffects.html", "title": "Class MCodeEffects | HiAPI-C# 2025", "summary": "Class MCodeEffects Namespace Hi.NcParsers.Dependencys Assembly HiMech.dll What one machine-declared M-code does. Real-machine OEM M-codes are frequently composite — e.g. an M13 that means “spindle CW + flood coolant on” — so a declaration carries every effect the code performs rather than a single meaning, and additionally an UnmodeledNote for the parts this simulation does not model. Declaring only the known parts and staying loud about the rest keeps a composite code from being half-consumed silently. Stored per machine in MCodeDeclarations and consumed by MCodeExpansionSyntax, which expands the declared code into the canonical ISO flags the regular consumers already understand. public class MCodeEffects Inheritance object MCodeEffects 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 CoolantMode Coolant mode the code commands (expands to M07/M08/M09): one of Mist, Flood, Off. null/empty when the code does not touch coolant. public string CoolantMode { get; set; } Property Value string IsEmpty True when the declaration carries no effect and no note — such an entry means “consume this code silently; it is irrelevant to simulation”. public bool IsEmpty { get; } Property Value bool IsSpindleDirectionOnly True when SpindleDirection is the declaration's sole content. The two consumption paths partition on this: only such declarations resolve through TryResolveDirection(string, out SpindleDirection) (whose caller consumes the whole flag in place, preserving legacy behavior), and MCodeExpansionSyntax deliberately skips them and expands only composite declarations, so no effect is swallowed and nothing is translated twice. public bool IsSpindleDirectionOnly { get; } Property Value bool IsToolChange The code performs a tool change (expands to M06) — the machine-configurable trigger real controllers declare via e.g. Siemens MD22560 $MC_TOOL_CHANGE_M_CODE. public bool IsToolChange { get; set; } Property Value bool SpindleDirection Spindle direction the code commands (expands to M03/M04/M05), or null when the code does not touch the spindle. public SpindleDirection? SpindleDirection { get; set; } Property Value SpindleDirection? UnmodeledNote Free-text description of what the code additionally does on the real machine that this simulation does not model (e.g. “chip conveyor forward”). When set, consuming the code emits one informational diagnostic per occurrence instead of staying silent — a declaration must not downgrade the visible Parsing–Unconsumed warning into nothing. public string UnmodeledNote { get; set; } Property Value string Methods Clone() Returns an independent copy of this declaration. public MCodeEffects Clone() Returns MCodeEffects NormalizeCoolantMode(string) Maps a raw coolant-mode string to the canonical Coolant constant (case-insensitive), or null when the value names no known mode. public static string NormalizeCoolantMode(string value) Parameters value string Returns string" }, "api/Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.ISiemensToolOffsetConfig.html", "title": "Interface ISiemensToolOffsetConfig | HiAPI-C# 2025", "summary": "Interface ISiemensToolOffsetConfig Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Siemens (840D/Sinumerik) tool offset configuration. Offsets are addressed by (tool number T, cutting edge D number), unlike IToolOffsetConfig where a single integer selects the row. Siemens stores up to 25 data fields per cutting edge ($TC_DP1..$TC_DP25), including three independent length components (L1/L2/L3 for Z/X/Y directions), radius, and corresponding wear values. public interface ISiemensToolOffsetConfig 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) Methods GetToolHeightOffset_mm(int, int) Gets the effective tool height offset in mm for a specific tool and cutting edge: $TC_DP3 (length 1, typically Z direction) plus its additive wear $TC_DP12 — Sinumerik wear values are added, a shortened tool carries negative wear. Returns 0 if the tool/edge is not configured. double GetToolHeightOffset_mm(int toolNumber, int edgeNumber) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). Returns double GetToolLengthOffset_mm(int, int, int) Gets an additional length offset for the specified direction. directionIndex: 0 = L1 ($TC_DP3, Z), 1 = L2 ($TC_DP4, X), 2 = L3 ($TC_DP5, Y). Returns 0 if not configured. double GetToolLengthOffset_mm(int toolNumber, int edgeNumber, int directionIndex) Parameters toolNumber int edgeNumber int directionIndex int Returns double GetToolRadiusOffset_mm(int, int) Gets the effective tool radius offset in mm for a specific tool and cutting edge: $TC_DP6 (radius) plus its additive wear $TC_DP15. Returns 0 if the tool/edge is not configured. double GetToolRadiusOffset_mm(int toolNumber, int edgeNumber) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). Returns double TryGetToolHeightOffset_mm(int, int, out double) Attempts to get the effective tool height offset in mm ($TC_DP3 plus additive wear $TC_DP12) for a specific tool and cutting edge. Returns false when the (tool, edge) pair has no configured row, so the caller can fall back to another source (e.g. the generic IToolOffsetConfig). This is the only reliable miss signal — 0.0 is a legal configured offset, so the zero returned by GetToolHeightOffset_mm(int, int) cannot distinguish a vacant row from a configured zero. bool TryGetToolHeightOffset_mm(int toolNumber, int edgeNumber, out double offset_mm) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). offset_mm double The effective height offset; 0 on miss. Returns bool" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTable.html", "title": "Class SiemensFrameTable | HiAPI-C# 2025", "summary": "Class SiemensFrameTable Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Sinumerik settable work coordinate frames ($P_UIFR[n]). Models G54–G57 (ISO-compatible), G505–G599 (extended Siemens), and G500 (cancel — always zero). On real Sinumerik, $P_UIFR is a frame array containing translation, rotation, scale and mirror per entry. HiNC currently consumes only the translation component, so this table stores Vec3d per id. $P_UIFR is NOT in the machine data table — therefore this is a separate dependency from SiemensMachineDataTable (which holds MD-prefixed OEM machine data such as MD30300 axis type, MD34010 reference position, etc.). Deliberately not ISessionResettable: settable frames are setting data on the control — a $P_UIFR write from the program survives reset and power-off, so a replayed session must see the values the previous run wrote. public class SiemensFrameTable : IIsoCoordinateConfig, INcDependency, IMakeXmlSource Inheritance object SiemensFrameTable Implements IIsoCoordinateConfig INcDependency IMakeXmlSource 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) Constructors SiemensFrameTable() Initializes a new instance with G54-G57 and the Siemens extended G505-G599 series seeded as zero Vec3d entries in Frames. public SiemensFrameTable() SiemensFrameTable(XElement) Initializes a new instance by deserializing from src. public SiemensFrameTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties AxisOffsets Per-axis translation components beyond X/Y/Z, keyed by G-code id then uppercase axis letter (e.g. [“G54”][“C”] = 12.5). Real Sinumerik frames carry a translation per machine axis including rotaries ($P_UIFR[1,C,TR]); X/Y/Z stay in Frames so existing consumers (GetCoordinateOffset(string)) are unaffected. Absent entries read as 0 — matching Sinumerik where every allocated frame axis defaults to zero. Rotary components are recorded/read through the $P_UIFR bridge; the transform chain does not consume them yet (frame work owns that). public Dictionary> AxisOffsets { get; set; } Property Value Dictionary> CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. public IEnumerable CoordinateIds { get; } Property Value IEnumerable Frames Settable frames keyed by G-code id. G500 is treated specially (always zero) and is not stored here. public Dictionary Frames { get; set; } Property Value Dictionary XName XML element name for serialization. public static string XName { get; } Property Value string Methods GetAxisOffset(string, string) Reads one axis translation component of a frame ($P_UIFR[n,axis,TR] read side). X/Y/Z route into Frames; any other axis letter reads AxisOffsets with 0 as the allocated-but-unset default. G500 is always 0. Returns null only when coordId is not an allocated frame — the caller's lookup chain then falls through (vacant). public double? GetAxisOffset(string coordId, string axis) Parameters coordId string Frame G-code id (e.g. G54, G505). axis string Uppercase axis letter (e.g. X, C). Returns double? GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). public Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetAxisOffset(string, string, double) Writes one axis translation component of a frame ($P_UIFR[n,axis,TR]=… write side). X/Y/Z replace the component inside Frames (a fresh Vec3d is installed — never in-place mutation, so aliased vectors stay unaffected); other axis letters land in AxisOffsets. G500 writes are ignored, mirroring SetCoordinateOffset(string, Vec3d). public void SetAxisOffset(string coordId, string axis, double value) Parameters coordId string Frame G-code id. axis string Uppercase axis letter. value double New translation component value. SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. public void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensFrameTableProxy.html", "title": "Class SiemensFrameTableProxy | HiAPI-C# 2025", "summary": "Class SiemensFrameTableProxy Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Get-or-create INcDependencyProxy for SiemensFrameTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case settable work frames ($P_UIFR, G54–G57…). public sealed class SiemensFrameTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object SiemensFrameTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's SiemensFrameTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case SiemensFrameTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensGotoIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensGotoIterationDependency.html", "title": "Class SiemensGotoIterationDependency | HiAPI-C# 2025", "summary": "Class SiemensGotoIterationDependency Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Watchdog for Siemens GOTOF/GOTOB jumps — the label-keyed sibling of the Fanuc FanucGotoIterationDependency, with the same “soft-cap + runtime counter + session-init ISessionResettable” shape. Kept per-brand (rather than widening the Fanuc dep's int-keyed bucket) for diagnostic clarity and because Siemens targets are named labels, not N-numbers. The counter key is (FileName, Label) where FileName is the source-level file path of the jump host (the relative form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts, while two files each jumping to their own LBL1 stay isolated. Forward and backward jumps to the same label share one bucket — only the backward direction can loop, but a shared bucket keeps the accounting simple and the cap generous. The consuming syntax (SiemensGotoSyntax) counts after the condition gate and before the label scan; above MaxIterationsPerLabel the jump warns SiemensGoto--IterationLimitExceeded and falls through. A missing dependency disables the cap (Fanuc parity) — the brand preset wires one by default. public class SiemensGotoIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object SiemensGotoIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors SiemensGotoIterationDependency() Initializes a new instance with the default limit and an empty counter. public SiemensGotoIterationDependency() SiemensGotoIterationDependency(XElement) Loads MaxIterationsPerLabel from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLabel. public SiemensGotoIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLabel Default for MaxIterationsPerLabel — matches the Fanuc GOTO default: jumps are not the legitimate bulk-iteration primitive (the loop constructs are), so the cap stays tight. public const int DefaultMaxIterationsPerLabel = 1000 Field Value int Properties CountByLabel Per-target hit counter keyed by (FileName, Label). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge. public Dictionary<(string FileName, string Label), int> CountByLabel { get; } Property Value Dictionary<(string FileName, string Label), int> MaxIterationsPerLabel Soft cap on fired jumps for any single (FileName, Label) pair. Above this the host block emits SiemensGoto–IterationLimitExceeded and falls through. public int MaxIterationsPerLabel { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByLabel; leaves MaxIterationsPerLabel untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensLoopIterationDependency.html", "title": "Class SiemensLoopIterationDependency | HiAPI-C# 2025", "summary": "Class SiemensLoopIterationDependency Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Watchdog shared by all four Siemens loop constructs (WHILE/ENDWHILE, FOR/ENDFOR, REPEAT/UNTIL, LOOP/ENDLOOP) — construct-neutral by design, unlike the Fanuc sibling (FanucWhileDoIterationDependency) which only has WHILE to guard. Same “soft-cap + runtime counter + session-init ISessionResettable” shape. Siemens loop constructs carry no LoopId, so the counter key is (FileName, BeginLineNo) — the loop-entry line recorded in the active frame identifies the construct uniquely within its file, and the file path isolates identically-numbered lines across files (and across inlined subprograms). The consuming syntax (SiemensLoopSyntax) counts at the back-jump step (the loop terminator / falsy UNTIL), so a loop whose condition is false from the outset consumes zero iterations. Above MaxIterationsPerLoop the terminator warns SiemensLoop--IterationLimitExceeded, pops the frame and falls through. A missing dependency disables the cap for the condition-bearing constructs (Fanuc parity) but hard-blocks the ENDLOOP back-jump — LOOP has no exit condition, so an uncapped back-jump would hang the pipeline deterministically. public class SiemensLoopIterationDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object SiemensLoopIterationDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors SiemensLoopIterationDependency() Initializes a new instance with the default limit and an empty counter. public SiemensLoopIterationDependency() SiemensLoopIterationDependency(XElement) Loads MaxIterationsPerLoop from XML produced by MakeXmlSource(string, string, bool); absent element falls back to DefaultMaxIterationsPerLoop. public SiemensLoopIterationDependency(XElement src) Parameters src XElement Root element named XName. Fields DefaultMaxIterationsPerLoop Default for MaxIterationsPerLoop — matches the Fanuc WHILE default: loops are the legitimate iteration primitive (drill grids, calibration sweeps), so the cap is generous while still catching runaways in a tractable time. public const int DefaultMaxIterationsPerLoop = 10000 Field Value int Properties CountByLoop Per-loop hit counter keyed by (FileName, BeginLineNo). Runtime-only; not serialised. Cleared by OnSessionReset() on the session-init edge. public Dictionary<(string FileName, int BeginLineNo), int> CountByLoop { get; } Property Value Dictionary<(string FileName, int TargetN), int> MaxIterationsPerLoop Soft cap on back-jumps for any single (FileName, BeginLineNo) pair. Above this the terminator block emits SiemensLoop–IterationLimitExceeded, pops the frame and falls through. public int MaxIterationsPerLoop { get; set; } Property Value int XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. OnSessionReset() Clears CountByLoop; leaves MaxIterationsPerLoop untouched. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTable.html", "title": "Class SiemensMachineDataTable | HiAPI-C# 2025", "summary": "Class SiemensMachineDataTable Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Siemens Sinumerik machine data table. Stores machine data (MD numbers) as system and per-axis parameters. MD10000–MD19999: General machine data. MD20000–MD29999: Axis-specific machine data. MD30000–MD39999: Axis-specific machine data (extended). Deliberately not ISessionResettable: machine data is control configuration a part program cannot mutate, so there is no session-scoped state to clear. public class SiemensMachineDataTable : ControllerParameterTableBase, IHomeMcConfig, IMachineAxisConfig, IRapidFeedrateConfig, IStrokeLimitConfig, ISpindleControlConfig, IMCodeDeclarationConfig, IToolChangeTriggerConfig, IIndexingPositionConfig, INcDependency, IMakeXmlSource Inheritance object ControllerParameterTableBase SiemensMachineDataTable Implements IHomeMcConfig IMachineAxisConfig IRapidFeedrateConfig IStrokeLimitConfig ISpindleControlConfig IMCodeDeclarationConfig IToolChangeTriggerConfig IIndexingPositionConfig INcDependency IMakeXmlSource Inherited Members ControllerParameterTableBase.GetLinearAxisRapidRate_mmdmin(string) ControllerParameterTableBase.GetRotaryAxisRapidRate_degdmin(string) ControllerParameterTableBase.SetLinearAxisRapidRate_mmdmin(string, double) ControllerParameterTableBase.SetRotaryAxisRapidRate_degdmin(string, double) ControllerParameterTableBase.GetPositiveLimit(string) ControllerParameterTableBase.GetNegativeLimit(string) ControllerParameterTableBase.SetPositiveLimit(string, double) ControllerParameterTableBase.SetNegativeLimit(string, double) ControllerParameterTableBase.SystemParams ControllerParameterTableBase.AxisParams ControllerParameterTableBase.IntAxisParams ControllerParameterTableBase.AxisParam(int) ControllerParameterTableBase.IntAxisParam(int) ControllerParameterTableBase.GetHomePosition(string) ControllerParameterTableBase.SetHomePosition(string, double) ControllerParameterTableBase.AxisNames ControllerParameterTableBase.IsRotaryAxis(string) ControllerParameterTableBase.SetAxis(string, AxisType) ControllerParameterTableBase.RemoveAxis(string) ControllerParameterTableBase.ConfigureRotaryAxis(string, double, double) ControllerParameterTableBase.MCodeDeclarations ControllerParameterTableBase.TryGetMCodeEffects(string, out MCodeEffects) ControllerParameterTableBase.DeclareMCode(string, MCodeEffects) ControllerParameterTableBase.RemoveMCodeDeclaration(string) ControllerParameterTableBase.SpindleDirectionCodes ControllerParameterTableBase.TryResolveDirection(string, out SpindleDirection) ControllerParameterTableBase.ConfigureSpindleDirectionCode(string, SpindleDirection) ControllerParameterTableBase.RemoveSpindleDirectionCode(string) ControllerParameterTableBase.ReadXml(XElement) ControllerParameterTableBase.WriteXml(string) ControllerParameterTableBase.CopyParamsTo(ControllerParameterTableBase) 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 SiemensMachineDataTable() Initializes a new instance with empty machine data tables. public SiemensMachineDataTable() SiemensMachineDataTable(XElement) Initializes a new instance by deserializing from src. public SiemensMachineDataTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Fields MdAxisType MD30300: Axis type per axis (0=linear, 1=rotary, 2=spindle). public const int MdAxisType = 30300 Field Value int MdFixPointPos MD30600: Fixed point position per axis — the G75 target ($MA_FIX_POINT_POS). Fixed point 1 only; the Siemens per-axis array form (FP=2..4) is not modeled. public const int MdFixPointPos = 30600 Field Value int MdIndexAxAssignPosTab MD30500: Indexing table assignment per axis ($MA_INDEX_AX_ASSIGN_POS_TAB) — 0 = not an indexing axis, 1 = positions in IndexAxPosTab1, 2 = positions in IndexAxPosTab2, 3 = equidistant index intervals (MdIndexAxNumerator / MdIndexAxDenominator / MdIndexAxOffset). See IIndexingPositionConfig. public const int MdIndexAxAssignPosTab = 30500 Field Value int MdIndexAxDenominator MD30502: Equidistant indexing denominator per axis ($MA_INDEX_AX_DENOMINATOR) — on a modular rotary axis, the number of indexing positions per revolution. public const int MdIndexAxDenominator = 30502 Field Value int MdIndexAxNumerator MD30501: Equidistant indexing numerator per axis ($MA_INDEX_AX_NUMERATOR). Position spacing = numerator / denominator for non-modular axes; ignored on modular rotary axes, whose spacing is the 360° modulo range / MdIndexAxDenominator. public const int MdIndexAxNumerator = 30501 Field Value int MdIndexAxOffset MD30503: Absolute position of indexing position 1 per axis ($MA_INDEX_AX_OFFSET) for equidistant indexing. public const int MdIndexAxOffset = 30503 Field Value int MdMaxAxisVelocity MD32000: Max axis velocity per axis (mm/min or deg/min). public const int MdMaxAxisVelocity = 32000 Field Value int MdMaxSpindleSpeed MD35100: Maximum spindle speed (RPM). public const int MdMaxSpindleSpeed = 35100 Field Value int MdReferencePosition MD34010: Reference point position per axis. public const int MdReferencePosition = 34010 Field Value int MdStrokeLimitNeg MD36110: Negative stroke limit per axis. public const int MdStrokeLimitNeg = 36110 Field Value int MdStrokeLimitPos MD36100: Positive stroke limit per axis. public const int MdStrokeLimitPos = 36100 Field Value int MdToolChangeMCode MD22560: Tool change M function ($MC_TOOL_CHANGE_M_CODE, default 6). When the row is present, the named M code carries IsToolChange in the effective declaration view (overlaid at read time — see EffectiveMCodeDeclarations); when absent, only explicit MCodeDeclarations entries trigger a change. public const int MdToolChangeMCode = 22560 Field Value int MdToolChangeMode MD22550: Tool change mode ($MC_TOOL_CHANGE_MODE) — 0 = the T word itself performs the change (turret/lathe), 1 = an M function performs it while T only preselects. When the row is present it drives ToolWordTriggersChange; when absent the brand-neutral flag stands alone. public const int MdToolChangeMode = 22550 Field Value int OemAuxiliaryNote Note text for the OEM auxiliary M-codes the default preset declares note-only (M12/M13/M22/M23/M330/M331) — machine-specific codes recurring in real Siemens programs whose PLC behavior varies per machine and is not simulated. A note-only declaration keeps each occurrence visible as known-but-unmodeled (DeclaredMCode–UnmodeledEffects) instead of the unknown-code Parsing–Unconsumed warning; a machine table overrides the declaration with the actual effects when they are known. public const string OemAuxiliaryNote = \"machine-specific auxiliary function (OEM/PLC); the exact behavior depends on the machine\" Field Value string Properties AxisMd30300 MD30300: Axis type per axis. See AxisType. See AxisNames. public Dictionary AxisMd30300 { get; set; } Property Value Dictionary AxisMd30500 MD30500: Indexing table assignment per axis. See MdIndexAxAssignPosTab. public Dictionary AxisMd30500 { get; set; } Property Value Dictionary AxisMd30600 MD30600: Fixed point position per axis (fixed point 1 — the G75 target). See GetFixPointPosition(string). public Dictionary AxisMd30600 { get; set; } Property Value Dictionary AxisMd32000 MD32000: Max axis velocity per axis (mm/min or deg/min). See IRapidFeedrateConfig. public Dictionary AxisMd32000 { get; set; } Property Value Dictionary AxisMd34010 MD34010: Reference point position per axis. See IHomeMcConfig. public Dictionary AxisMd34010 { get; set; } Property Value Dictionary AxisTypeParamId Parameter/MD/MP number for axis type (linear/rotary/spindle). protected override int AxisTypeParamId { get; } Property Value int Default3Axis Default 3-axis Siemens milling machine. public static SiemensMachineDataTable Default3Axis { get; } Property Value SiemensMachineDataTable EffectiveMCodeDeclarations Overlays the MD22560 tool-change M function onto the declared M-codes: the named code gains IsToolChange (merged into a clone of its explicit declaration when one exists, so a note or coolant half is kept and the stored instance is never mutated). The overlay exists only in this read-time view — XML, MCodeDeclarations, and clones stay derivation-free and re-derive from the MD row. With no MD22560 row (or one already declared as a tool change) the stored dictionary is returned as-is, allocation-free. protected override IReadOnlyDictionary EffectiveMCodeDeclarations { get; } Property Value IReadOnlyDictionary IdAttributeName XML attribute name for the parameter ID (“ParamId”, “MdId”, “MpId”). protected override string IdAttributeName { get; } Property Value string IndexAxPosTab1 Indexing position table 1 (MD10910 $MN_INDEX_AX_POS_TAB_1), shared by every axis whose MdIndexAxAssignPosTab value is 1. Entry order is position-number order: entry [0] is indexing position 1. The used-length machine data (MD10900) is implied by the list count. Values follow the Siemens constraints (strictly ascending; within one revolution for modular rotary axes) — the lookups do not validate them. public List IndexAxPosTab1 { get; set; } Property Value List IndexAxPosTab2 Indexing position table 2 (MD10930 $MN_INDEX_AX_POS_TAB_2) — see IndexAxPosTab1; used-length MD10920 implied by the list count. public List IndexAxPosTab2 { get; set; } Property Value List MaxSpindleSpeed_rpm Maximum spindle speed in RPM. Delegates to Md35100. public double MaxSpindleSpeed_rpm { get; set; } Property Value double Md35100 MD35100: Maximum spindle speed (RPM). See MaxSpindleSpeed_rpm. public double Md35100 { get; set; } Property Value double RapidRateParamId Parameter/MD/MP number for rapid traverse rate per axis. Null if not defined for this controller brand. protected override int? RapidRateParamId { get; } Property Value int? ReferencePositionParamId Parameter/MD/MP number for reference position (G28 home). protected override int ReferencePositionParamId { get; } Property Value int StrokeLimitNegParamId Parameter/MD/MP number for negative stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitNegParamId { get; } Property Value int? StrokeLimitPosParamId Parameter/MD/MP number for positive stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitPosParamId { get; } Property Value int? ToolWordTriggersChange The T-word trigger, bound to MD22550 ($MC_TOOL_CHANGE_MODE) when that row is present: 0 = the T word performs the change, any other value = an M function does. An absent row falls back to the brand-neutral flag. The setter writes whichever storage is active, so an MD-configured table keeps the machine data authoritative (and visible in the native parameter view) while a table without the row behaves exactly like the other brands. public override bool ToolWordTriggersChange { get; set; } Property Value bool XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods DeepClone() Returns an independent deep copy of this table: the three parameter dictionaries, M-code declarations, and T-word trigger (via CopyParamsTo(ControllerParameterTableBase)) plus this class's indexing position tables (IndexAxPosTab1/IndexAxPosTab2). Used by SiemensMachineDataTableProxy to clone its fixed machine-config seed into a host that has no table yet. public SiemensMachineDataTable DeepClone() Returns SiemensMachineDataTable DescribeAxisParam(int) Per-axis double counterpart of DescribeSystemParam(int). Covers the role ids the base class consumes (reference position, rapid rate, stroke limits); brand subclasses may override for their own vocabulary or extra numbers. public override string DescribeAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeIntAxisParam(int) Per-axis integer counterpart of DescribeSystemParam(int). Covers the axis-type id the base class consumes. public override string DescribeIntAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeSystemParam(int) Short usage label for a well-known system parameter id, or null when the id has no modeled meaning (a raw pass-through row). Brand subclasses extend this with their own well-known numbers; the native parameter UI shows the label next to the raw id so an operator can tell the modeled parameters from free extras. public override string DescribeSystemParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string GetFixPointPosition(string) Fixed-point-1 position (MD30600) for the axis, or null when the axis has no configured fixed point — the G75 consumer then falls back to the reference position (GetHomePosition(string)). public double? GetFixPointPosition(string axisName) Parameters axisName string Returns double? GetIndexingPositionCount(string) Number of programmable indexing positions: the table length for table-assigned axes, the per-cycle position count for cyclic equidistant axes, MaxValue for unbounded (non-cyclic equidistant) axes, and 0 when the axis is not a usable indexing axis. public int GetIndexingPositionCount(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns int IsIndexingAxis(string) True when the axis is configured as an indexing axis with a usable position table (a non-empty table, or a valid equidistant definition). An axis declared indexing but with an empty/invalid table reports false — the coded-position words then stay unrecognized (loud residue) instead of resolving against garbage. public bool IsIndexingAxis(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns bool IsIndexingCyclic(string) True when position-number arithmetic wraps modulo GetIndexingPositionCount(string) — an indexing axis that is also a modular rotary axis (IsModularRotary(string)). Advancing past the last position continues at position 1. public bool IsIndexingCyclic(string axisName) Parameters axisName string Axis name (e.g., “C”). Returns bool MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory TryFindIndexingAnchor(string, double, out int, out bool) Locates an axis position relative to the indexing table for incremental (CIC) resolution: floorNumber is the number of the nearest indexing position at or below position (cyclically behind on cyclic axes; 0 when the position lies below the whole table on a non-cyclic axis), and exactlyOnPosition reports a match within PositionMatchTolerance. False when the axis is not a usable indexing axis. public bool TryFindIndexingAnchor(string axisName, double position, out int floorNumber, out bool exactlyOnPosition) Parameters axisName string Axis name (e.g., “C”). position double Current axis coordinate (degrees or mm); rotary values may lie outside one revolution and are normalized by the implementation. floorNumber int Number of the nearest indexing position at or (cyclically) below the given position. exactlyOnPosition bool True when the position sits on an indexing position within PositionMatchTolerance. Returns bool TryGetIndexingPosition(string, int, out double) Resolves a 1-based indexing position number to its axis coordinate. False when the axis is not a usable indexing axis or the number is outside [1, count]. public bool TryGetIndexingPosition(string axisName, int positionNumber, out double position) Parameters axisName string Axis name (e.g., “C”). positionNumber int 1-based indexing position number. position double Resolved axis coordinate (degrees or mm). Returns bool" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensMachineDataTableProxy.html", "title": "Class SiemensMachineDataTableProxy | HiAPI-C# 2025", "summary": "Class SiemensMachineDataTableProxy Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Get-or-create INcDependencyProxy for SiemensMachineDataTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own machine data table. Like the Fanuc-family parameter table, the Siemens machine data mixes machine config (axis types / reference positions / velocities / indexing tables) with per-project edits, so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no SiemensMachineDataTable yet; a loaded project's own full table wins, so a same-brand re-flash re-binds to the project's machine data instead of resetting it. The resolved host table is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig, IIndexingPositionConfig, etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. public sealed class SiemensMachineDataTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object SiemensMachineDataTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 SiemensMachineDataTableProxy(SiemensMachineDataTable) Creates a proxy carrying seed as its machine-config seed, defaulting to Default3Axis. public SiemensMachineDataTableProxy(SiemensMachineDataTable seed = null) Parameters seed SiemensMachineDataTable The machine-config seed cloned into a fresh host. Properties Seed The fixed machine-config seed deep-cloned into a host that has no SiemensMachineDataTable yet. Carried on the shared runner and serialized into the runner file — never the per-case instance, which lives on the host (see GetNcDependency()). public SiemensMachineDataTable Seed { get; } Property Value SiemensMachineDataTable XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's SiemensMachineDataTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the host SiemensMachineDataTable: when the host list has none, a deep clone of Seed is installed so the machine data exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing host table (a loaded project's) is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Serializes only the machine-config Seed — the wired host and the resolved host table are runtime-only and not persisted in the shared runner. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Rehydrates the carried Seed from the nested SiemensMachineDataTable element, falling back to Default3Axis when absent. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTable.html", "title": "Class SiemensRParameterTable | HiAPI-C# 2025", "summary": "Class SiemensRParameterTable Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Sinumerik R-parameter table (R0-R999). R parameters are the Siemens arithmetic-variable surface (R63=100.5, C=R61, R26=(558.5+14)/2); on real hardware they live in retentive memory (sized by MD28050) and survive program end and power cycles, so — like the Fanuc sibling RetainedCommonVariableTable — this table is not session-reset and is serialised into the project file. Reads flow through Get(string) (registered automatically because the table sits on the runner's effective NcDependencyList); writes flow through SiemensRParameterReadingSyntax, which consumes literal Parsing.Assignments.Rn entries after VariableEvaluatorSyntax has normalized expression RHS to literals. Vacant is represented by null: either the dictionary has no entry for the key, or the entry maps to null — both read identically. Real Sinumerik default-initialises every allocated R to 0, but a vacant read failing loud (Variable--Vacant via the evaluator) surfaces missing setup data instead of silently machining with 0. public class SiemensRParameterTable : INcDependency, IMakeXmlSource, IVariableLookup Inheritance object SiemensRParameterTable Implements INcDependency IMakeXmlSource IVariableLookup 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) Constructors SiemensRParameterTable() Empty table. public SiemensRParameterTable() SiemensRParameterTable(XElement) Loads from XML produced by MakeXmlSource(string, string, bool). public SiemensRParameterTable(XElement src) Parameters src XElement Fields RParameterMax Inclusive upper bound of the R-parameter range (R999). Real machines size this by MD28050 MM_NUM_R_PARAM (often 100); 999 covers the extended ranges seen in the corpus (R400+) without machine data. public const int RParameterMax = 999 Field Value int RParameterMin Inclusive lower bound of the R-parameter range (R0). public const int RParameterMin = 0 Field Value int Properties Variables Backing store. Key = R-parameter number (e.g. 63 for R63). Value null = vacant; a missing key is also vacant. Keys are constrained to RParameterMin..RParameterMax; out-of-range writes are silently ignored. public Dictionary Variables { get; set; } Property Value Dictionary XName XML element name. public static string XName { get; } Property Value string Methods Get(string) Returns the value of the variable identified by key (e.g. \"#124\"), or null if vacant or unknown to this lookup. public double? Get(string key) Parameters key string Returns double? Remarks Routes Rn keys (canonical form produced by SiemensExpressionParser; a lowercase rn from a raw capture also resolves) to GetVariable(int); other keys return null so the evaluator's lookup chain falls through. GetVariable(int) Reads an R parameter. Returns null for vacant (either the entry is absent or stored as null). public double? GetVariable(int id) Parameters id int Parameter number in RParameterMin..RParameterMax. Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetVariable(int, double?) Writes an R parameter. Pass null to set vacant. Ignores ids outside RParameterMin..RParameterMax. public void SetVariable(int id, double? value) Parameters id int Parameter number. value double? New value, or null for vacant." }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensRParameterTableProxy.html", "title": "Class SiemensRParameterTableProxy | HiAPI-C# 2025", "summary": "Class SiemensRParameterTableProxy Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Get-or-create INcDependencyProxy for SiemensRParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case R parameters (R0–R999). public sealed class SiemensRParameterTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object SiemensRParameterTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's SiemensRParameterTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case SiemensRParameterTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolEdgeOffset.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolEdgeOffset.html", "title": "Class SiemensToolEdgeOffset | HiAPI-C# 2025", "summary": "Class SiemensToolEdgeOffset Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll One Siemens cutting-edge offset row ($TC_DP fields for a (T, D) pair): geometry lengths L1/L2/L3 ($TC_DP3/4/5), radius ($TC_DP6) and the corresponding wear values ($TC_DP12/13/14/15) as typed properties (all mm), plus VerbatimDpFields for every other $TC_DP index — same split as SiemensMachineDataTable's well-known-MD properties over a generic parameter bag. A typed property means the simulation consumes the field; a bag entry means the value is stored and round-tripped but not interpreted. public class SiemensToolEdgeOffset Inheritance object SiemensToolEdgeOffset 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 Length1_mm $TC_DP3 — geometry length 1 (typically Z), mm. public double Length1_mm { get; set; } Property Value double Length2_mm $TC_DP4 — geometry length 2 (typically X), mm. public double Length2_mm { get; set; } Property Value double Length3_mm $TC_DP5 — geometry length 3 (typically Y), mm. public double Length3_mm { get; set; } Property Value double Radius_mm $TC_DP6 — geometry radius, mm. public double Radius_mm { get; set; } Property Value double VerbatimDpFields $TC_DP fields the simulation does not consume, keyed by DP index (e.g. 1 = tool type, 2 = tip position, 7–11 = extended geometry, 16–20 = extended wear, 21–23 = base/adapter dimensions, 24 = clearance angle). Carried for round-trip fidelity so a full controller dump survives import → save → reload; never interpreted. The consumed indices (see IsConsumedDpIndex(int)) live in the typed properties and must not appear here — write through SetDpField(int, double) to keep that invariant. public Dictionary VerbatimDpFields { get; set; } Property Value Dictionary WearLength1_mm $TC_DP12 — wear length 1, mm. public double WearLength1_mm { get; set; } Property Value double WearLength2_mm $TC_DP13 — wear length 2, mm. public double WearLength2_mm { get; set; } Property Value double WearLength3_mm $TC_DP14 — wear length 3, mm. public double WearLength3_mm { get; set; } Property Value double WearRadius_mm $TC_DP15 — wear radius, mm. public double WearRadius_mm { get; set; } Property Value double Methods IsConsumedDpIndex(int) Whether the given $TC_DP index is consumed by the simulation and therefore stored as a typed property (3/4/5/6 geometry, 12/13/14/15 wear) rather than in VerbatimDpFields. public static bool IsConsumedDpIndex(int dpIndex) Parameters dpIndex int Returns bool SetDpField(int, double) Writes one $TC_DP field by DP index: consumed indices route to the typed properties, every other index lands verbatim in VerbatimDpFields — an importer can hand over a full controller dump without knowing which indices the simulation consumes. public void SetDpField(int dpIndex, double value) Parameters dpIndex int value double" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTable.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTable.html", "title": "Class SiemensToolOffsetTable | HiAPI-C# 2025", "summary": "Class SiemensToolOffsetTable Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Per-case Siemens tool offset table — the first concrete ISiemensToolOffsetConfig ($TC_DP model): one SiemensToolEdgeOffset row per (tool number T, cutting edge D), each carrying the three length components + radius with their wear counterparts, plus a verbatim bag for the remaining $TC_DP indices (round-tripped, not consumed — see VerbatimDpFields). Effective values are geometry + wear — Sinumerik wear ($TC_DP12..15) is additive; a worn-down tool carries a negative wear value. Unconfigured (T, D) pairs return 0 per the interface contract. Also carries the ToolNames map ($TC_TP2 analog, case-insensitive) so Siemens string tool calls (T=\"D8R1\") can resolve to the int-keyed act chain — consumed by ToolChangeSemantic. Per-case editable data — reaches the pipeline through SiemensToolOffsetTableProxy on the host's PerCaseNcDependencyList, never as a concrete instance baked into the shared runner. Deliberately separate from SiemensMachineDataTable (MD-prefixed machine-fixed OEM data) — same split rationale as SiemensFrameTable. public class SiemensToolOffsetTable : INcDependency, IMakeXmlSource, ISiemensToolOffsetConfig Inheritance object SiemensToolOffsetTable Implements INcDependency IMakeXmlSource ISiemensToolOffsetConfig 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) Constructors SiemensToolOffsetTable() Initializes an empty table. public SiemensToolOffsetTable() SiemensToolOffsetTable(XElement) Initializes a new instance by deserializing from src. public SiemensToolOffsetTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Properties Edges Offset rows keyed by (tool number T, cutting edge D). public Dictionary<(int Tool, int Edge), SiemensToolEdgeOffset> Edges { get; set; } Property Value Dictionary<(int Tool, int Edge), SiemensToolEdgeOffset> ToolNames Tool name → tool number map ($TC_TP2 analog) used to resolve Siemens string tool calls (T=“name”). Case-insensitive. public Dictionary ToolNames { get; set; } Property Value Dictionary XName XML element name for serialization. public static string XName { get; } Property Value string Methods FindToolNumberByName(string) Resolves a Siemens string tool name (T=“name”) to its tool number via ToolNames; null when unmapped. public int? FindToolNumberByName(string toolName) Parameters toolName string Returns int? GetToolHeightOffset_mm(int, int) Gets the effective tool height offset in mm for a specific tool and cutting edge: $TC_DP3 (length 1, typically Z direction) plus its additive wear $TC_DP12 — Sinumerik wear values are added, a shortened tool carries negative wear. Returns 0 if the tool/edge is not configured. public double GetToolHeightOffset_mm(int toolNumber, int edgeNumber) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). Returns double GetToolLengthOffset_mm(int, int, int) Gets an additional length offset for the specified direction. directionIndex: 0 = L1 ($TC_DP3, Z), 1 = L2 ($TC_DP4, X), 2 = L3 ($TC_DP5, Y). Returns 0 if not configured. public double GetToolLengthOffset_mm(int toolNumber, int edgeNumber, int directionIndex) Parameters toolNumber int edgeNumber int directionIndex int Returns double GetToolRadiusOffset_mm(int, int) Gets the effective tool radius offset in mm for a specific tool and cutting edge: $TC_DP6 (radius) plus its additive wear $TC_DP15. Returns 0 if the tool/edge is not configured. public double GetToolRadiusOffset_mm(int toolNumber, int edgeNumber) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). Returns double MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory TryGetToolHeightOffset_mm(int, int, out double) Attempts to get the effective tool height offset in mm ($TC_DP3 plus additive wear $TC_DP12) for a specific tool and cutting edge. Returns false when the (tool, edge) pair has no configured row, so the caller can fall back to another source (e.g. the generic IToolOffsetConfig). This is the only reliable miss signal — 0.0 is a legal configured offset, so the zero returned by GetToolHeightOffset_mm(int, int) cannot distinguish a vacant row from a configured zero. public bool TryGetToolHeightOffset_mm(int toolNumber, int edgeNumber, out double offset_mm) Parameters toolNumber int Tool number (T). edgeNumber int Cutting edge number (D). offset_mm double The effective height offset; 0 on miss. Returns bool" }, "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.SiemensToolOffsetTableProxy.html", "title": "Class SiemensToolOffsetTableProxy | HiAPI-C# 2025", "summary": "Class SiemensToolOffsetTableProxy Namespace Hi.NcParsers.Dependencys.Siemens Assembly HiMech.dll Get-or-create INcDependencyProxy for SiemensToolOffsetTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case Siemens ($TC_DP) tool offset table. public sealed class SiemensToolOffsetTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object SiemensToolOffsetTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's SiemensToolOffsetTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the per-case SiemensToolOffsetTable: when the host list has none, one is created and installed so it exists and is editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing table is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Runtime-only proxy — the wired host and the resolved table are not persisted in the shared runner; serialization writes only the empty element. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Siemens.html": { "href": "api/Hi.NcParsers.Dependencys.Siemens.html", "title": "Namespace Hi.NcParsers.Dependencys.Siemens | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.Siemens Classes SiemensFrameTable Sinumerik settable work coordinate frames ($P_UIFR[n]). Models G54–G57 (ISO-compatible), G505–G599 (extended Siemens), and G500 (cancel — always zero). On real Sinumerik, $P_UIFR is a frame array containing translation, rotation, scale and mirror per entry. HiNC currently consumes only the translation component, so this table stores Vec3d per id. $P_UIFR is NOT in the machine data table — therefore this is a separate dependency from SiemensMachineDataTable (which holds MD-prefixed OEM machine data such as MD30300 axis type, MD34010 reference position, etc.). Deliberately not ISessionResettable: settable frames are setting data on the control — a $P_UIFR write from the program survives reset and power-off, so a replayed session must see the values the previous run wrote. SiemensFrameTableProxy Get-or-create INcDependencyProxy for SiemensFrameTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case settable work frames ($P_UIFR, G54–G57…). SiemensGotoIterationDependency Watchdog for Siemens GOTOF/GOTOB jumps — the label-keyed sibling of the Fanuc FanucGotoIterationDependency, with the same “soft-cap + runtime counter + session-init ISessionResettable” shape. Kept per-brand (rather than widening the Fanuc dep's int-keyed bucket) for diagnostic clarity and because Siemens targets are named labels, not N-numbers. The counter key is (FileName, Label) where FileName is the source-level file path of the jump host (the relative form carried on FilePath). Source-level keying means multiple inline invocations of the same subprogram pool their counts, while two files each jumping to their own LBL1 stay isolated. Forward and backward jumps to the same label share one bucket — only the backward direction can loop, but a shared bucket keeps the accounting simple and the cap generous. The consuming syntax (SiemensGotoSyntax) counts after the condition gate and before the label scan; above MaxIterationsPerLabel the jump warns SiemensGoto--IterationLimitExceeded and falls through. A missing dependency disables the cap (Fanuc parity) — the brand preset wires one by default. SiemensLoopIterationDependency Watchdog shared by all four Siemens loop constructs (WHILE/ENDWHILE, FOR/ENDFOR, REPEAT/UNTIL, LOOP/ENDLOOP) — construct-neutral by design, unlike the Fanuc sibling (FanucWhileDoIterationDependency) which only has WHILE to guard. Same “soft-cap + runtime counter + session-init ISessionResettable” shape. Siemens loop constructs carry no LoopId, so the counter key is (FileName, BeginLineNo) — the loop-entry line recorded in the active frame identifies the construct uniquely within its file, and the file path isolates identically-numbered lines across files (and across inlined subprograms). The consuming syntax (SiemensLoopSyntax) counts at the back-jump step (the loop terminator / falsy UNTIL), so a loop whose condition is false from the outset consumes zero iterations. Above MaxIterationsPerLoop the terminator warns SiemensLoop--IterationLimitExceeded, pops the frame and falls through. A missing dependency disables the cap for the condition-bearing constructs (Fanuc parity) but hard-blocks the ENDLOOP back-jump — LOOP has no exit condition, so an uncapped back-jump would hang the pipeline deterministically. SiemensMachineDataTable Siemens Sinumerik machine data table. Stores machine data (MD numbers) as system and per-axis parameters. MD10000–MD19999: General machine data. MD20000–MD29999: Axis-specific machine data. MD30000–MD39999: Axis-specific machine data (extended). Deliberately not ISessionResettable: machine data is control configuration a part program cannot mutate, so there is no session-scoped state to clear. SiemensMachineDataTableProxy Get-or-create INcDependencyProxy for SiemensMachineDataTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own machine data table. Like the Fanuc-family parameter table, the Siemens machine data mixes machine config (axis types / reference positions / velocities / indexing tables) with per-project edits, so the proxy carries a fixed machine-config Seed that is serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no SiemensMachineDataTable yet; a loaded project's own full table wins, so a same-brand re-flash re-binds to the project's machine data instead of resetting it. The resolved host table is fully serialized on the project. The proxy deliberately does not implement the machine-config interfaces (IMachineAxisConfig, IIndexingPositionConfig, etc.) — every machine-config consumer must go through GetEffectiveNcDependencyList() so it sees the resolved host table, never this placeholder. SiemensRParameterTable Sinumerik R-parameter table (R0-R999). R parameters are the Siemens arithmetic-variable surface (R63=100.5, C=R61, R26=(558.5+14)/2); on real hardware they live in retentive memory (sized by MD28050) and survive program end and power cycles, so — like the Fanuc sibling RetainedCommonVariableTable — this table is not session-reset and is serialised into the project file. Reads flow through Get(string) (registered automatically because the table sits on the runner's effective NcDependencyList); writes flow through SiemensRParameterReadingSyntax, which consumes literal Parsing.Assignments.Rn entries after VariableEvaluatorSyntax has normalized expression RHS to literals. Vacant is represented by null: either the dictionary has no entry for the key, or the entry maps to null — both read identically. Real Sinumerik default-initialises every allocated R to 0, but a vacant read failing loud (Variable--Vacant via the evaluator) surfaces missing setup data instead of silently machining with 0. SiemensRParameterTableProxy Get-or-create INcDependencyProxy for SiemensRParameterTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case R parameters (R0–R999). SiemensToolEdgeOffset One Siemens cutting-edge offset row ($TC_DP fields for a (T, D) pair): geometry lengths L1/L2/L3 ($TC_DP3/4/5), radius ($TC_DP6) and the corresponding wear values ($TC_DP12/13/14/15) as typed properties (all mm), plus VerbatimDpFields for every other $TC_DP index — same split as SiemensMachineDataTable's well-known-MD properties over a generic parameter bag. A typed property means the simulation consumes the field; a bag entry means the value is stored and round-tripped but not interpreted. SiemensToolOffsetTable Per-case Siemens tool offset table — the first concrete ISiemensToolOffsetConfig ($TC_DP model): one SiemensToolEdgeOffset row per (tool number T, cutting edge D), each carrying the three length components + radius with their wear counterparts, plus a verbatim bag for the remaining $TC_DP indices (round-tripped, not consumed — see VerbatimDpFields). Effective values are geometry + wear — Sinumerik wear ($TC_DP12..15) is additive; a worn-down tool carries a negative wear value. Unconfigured (T, D) pairs return 0 per the interface contract. Also carries the ToolNames map ($TC_TP2 analog, case-insensitive) so Siemens string tool calls (T=\"D8R1\") can resolve to the int-keyed act chain — consumed by ToolChangeSemantic. Per-case editable data — reaches the pipeline through SiemensToolOffsetTableProxy on the host's PerCaseNcDependencyList, never as a concrete instance baked into the shared runner. Deliberately separate from SiemensMachineDataTable (MD-prefixed machine-fixed OEM data) — same split rationale as SiemensFrameTable. SiemensToolOffsetTableProxy Get-or-create INcDependencyProxy for SiemensToolOffsetTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case Siemens ($TC_DP) tool offset table. Interfaces ISiemensToolOffsetConfig Siemens (840D/Sinumerik) tool offset configuration. Offsets are addressed by (tool number T, cutting edge D number), unlike IToolOffsetConfig where a single integer selects the row. Siemens stores up to 25 data fields per cutting edge ($TC_DP1..$TC_DP25), including three independent length components (L1/L2/L3 for Z/X/Y directions), radius, and corresponding wear values." }, "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html": { "href": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTable.html", "title": "Class SyntecParameterTable | HiAPI-C# 2025", "summary": "Class SyntecParameterTable Namespace Hi.NcParsers.Dependencys.Syntec Assembly HiMech.dll Syntec controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following Syntec Pr-prefixed parameter numbering. Syntec is largely Fanuc-compatible in parameter numbering, but some parameters differ in unit or interpretation. For example, Pr4002 (peck retraction) is stored in microns whereas Fanuc #4002 stores in mm. public class SyntecParameterTable : ControllerParameterTableBase, IHomeMcConfig, IMachineAxisConfig, IRapidFeedrateConfig, IStrokeLimitConfig, ISpindleControlConfig, IMCodeDeclarationConfig, IToolChangeTriggerConfig, ICannedCycleConfig, IIsoCoordinateConfig, INcDependency, IMakeXmlSource Inheritance object ControllerParameterTableBase SyntecParameterTable Implements IHomeMcConfig IMachineAxisConfig IRapidFeedrateConfig IStrokeLimitConfig ISpindleControlConfig IMCodeDeclarationConfig IToolChangeTriggerConfig ICannedCycleConfig IIsoCoordinateConfig INcDependency IMakeXmlSource Inherited Members ControllerParameterTableBase.GetLinearAxisRapidRate_mmdmin(string) ControllerParameterTableBase.GetRotaryAxisRapidRate_degdmin(string) ControllerParameterTableBase.SetLinearAxisRapidRate_mmdmin(string, double) ControllerParameterTableBase.SetRotaryAxisRapidRate_degdmin(string, double) ControllerParameterTableBase.GetPositiveLimit(string) ControllerParameterTableBase.GetNegativeLimit(string) ControllerParameterTableBase.SetPositiveLimit(string, double) ControllerParameterTableBase.SetNegativeLimit(string, double) ControllerParameterTableBase.DescribeIntAxisParam(int) ControllerParameterTableBase.SystemParams ControllerParameterTableBase.AxisParams ControllerParameterTableBase.IntAxisParams ControllerParameterTableBase.AxisParam(int) ControllerParameterTableBase.IntAxisParam(int) ControllerParameterTableBase.GetHomePosition(string) ControllerParameterTableBase.SetHomePosition(string, double) ControllerParameterTableBase.AxisNames ControllerParameterTableBase.IsRotaryAxis(string) ControllerParameterTableBase.SetAxis(string, AxisType) ControllerParameterTableBase.RemoveAxis(string) ControllerParameterTableBase.ConfigureRotaryAxis(string, double, double) ControllerParameterTableBase.MCodeDeclarations ControllerParameterTableBase.EffectiveMCodeDeclarations ControllerParameterTableBase.TryGetMCodeEffects(string, out MCodeEffects) ControllerParameterTableBase.DeclareMCode(string, MCodeEffects) ControllerParameterTableBase.RemoveMCodeDeclaration(string) ControllerParameterTableBase.ToolWordTriggersChange ControllerParameterTableBase.SpindleDirectionCodes ControllerParameterTableBase.TryResolveDirection(string, out SpindleDirection) ControllerParameterTableBase.ConfigureSpindleDirectionCode(string, SpindleDirection) ControllerParameterTableBase.RemoveSpindleDirectionCode(string) ControllerParameterTableBase.ReadXml(XElement) ControllerParameterTableBase.WriteXml(string) ControllerParameterTableBase.CopyParamsTo(ControllerParameterTableBase) 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) Remarks CutterCompensationType is shared with Fanuc because both follow the same ISO cutter compensation standard. Consider relocating to the shared Hi.NcParsers.Dependencys namespace if more brands need it. Constructors SyntecParameterTable() Initializes a new instance, seeding the ISO G54-G59 / G54.1 P-table coordinate offsets with their default values. public SyntecParameterTable() SyntecParameterTable(XElement) Initializes a new instance by deserializing from src. public SyntecParameterTable(XElement src) Parameters src XElement XML element produced by MakeXmlSource(string, string, bool). Fields PrAxisType Pr1006: Axis type per axis. See AxisType. public const int PrAxisType = 1006 Field Value int PrControlledAxes Pr1020: Number of controlled axes. public const int PrControlledAxes = 1020 Field Value int PrCutterCompType Pr5003: Cutter compensation startup type. See CutterCompensationType. public const int PrCutterCompType = 5003 Field Value int PrG54OffsetBase Pr5221: Base address (X) of G54 work coordinate offset. G54.Y at +1 (Pr5222), G54.Z at +2 (Pr5223). G55..G59 follow at stride 20. Syntec follows Fanuc-compatible numbering — see IsoCoordinateAddressMap. public const int PrG54OffsetBase = 5221 Field Value int PrG54p1P1OffsetBase Pr7001: Base address (X) of G54.1 P1 extended work coordinate offset. G54.1 P2..P48 follow at stride 20. See IsoCoordinateAddressMap. public const int PrG54p1P1OffsetBase = 7001 Field Value int PrMaxSpindleSpeed Pr3741: Maximum spindle speed (RPM). public const int PrMaxSpindleSpeed = 3741 Field Value int PrPeckRetraction Pr4002: G83 peck drilling retraction distance (microns). Syntec stores this value in microns; convert ×0.001 for mm. public const int PrPeckRetraction = 4002 Field Value int PrRapidRate Pr1420: Rapid traverse rate per axis (mm/min or deg/min). public const int PrRapidRate = 1420 Field Value int PrReferencePosition Pr1240: G28 first reference position per axis. public const int PrReferencePosition = 1240 Field Value int PrStrokeLimitNeg Pr1320: Negative stroke limit per axis (mm or deg). public const int PrStrokeLimitNeg = 1320 Field Value int PrStrokeLimitPos Pr1300: Positive stroke limit per axis (mm or deg). public const int PrStrokeLimitPos = 1300 Field Value int Properties AxisPr1006 Pr1006: Axis type per axis. See AxisType. See AxisNames. See IsRotaryAxis(string). public Dictionary AxisPr1006 { get; set; } Property Value Dictionary AxisPr1240 Pr1240: G28 first reference position per axis. See IHomeMcConfig. See GetHomePosition(string). See SetHomePosition(string, double). public Dictionary AxisPr1240 { get; set; } Property Value Dictionary AxisPr1420 Pr1420: Rapid traverse rate per axis (mm/min or deg/min). See IRapidFeedrateConfig. public Dictionary AxisPr1420 { get; set; } Property Value Dictionary AxisTypeParamId Parameter/MD/MP number for axis type (linear/rotary/spindle). protected override int AxisTypeParamId { get; } Property Value int ControlledAxisCount Number of controlled axes. Delegates to Pr1020. public int ControlledAxisCount { get; set; } Property Value int CoordinateIds Enumerates the G-code coordinate ids that this provider currently has data for. public IEnumerable CoordinateIds { get; } Property Value IEnumerable CutterCompType Cutter compensation startup type. Delegates to Pr5003. public CutterCompensationType CutterCompType { get; set; } Property Value CutterCompensationType Default3Axis Default 3-axis Syntec milling machine. public static SyntecParameterTable Default3Axis { get; } Property Value SyntecParameterTable IdAttributeName XML attribute name for the parameter ID (“ParamId”, “MdId”, “MpId”). protected override string IdAttributeName { get; } Property Value string MaxSpindleSpeed_rpm Maximum spindle speed in RPM. Delegates to Pr3741. public double MaxSpindleSpeed_rpm { get; set; } Property Value double PeckRetractionDistance_mm G83 peck drilling clearance distance above the previous stroke bottom before re-entering at feed (mm). public double PeckRetractionDistance_mm { get; } Property Value double Remarks Syntec Pr4002 stores peck retraction distance in microns. Multiply by 0.001 to convert to mm. Pr1020 Pr1020: Number of controlled axes. See ControlledAxisCount. public int Pr1020 { get; set; } Property Value int Pr3741 Pr3741: Maximum spindle speed (RPM). See MaxSpindleSpeed_rpm. public double Pr3741 { get; set; } Property Value double Pr5003 Pr5003: Cutter compensation startup type. See CutterCompType. public CutterCompensationType Pr5003 { get; set; } Property Value CutterCompensationType RapidRateParamId Parameter/MD/MP number for rapid traverse rate per axis. Null if not defined for this controller brand. protected override int? RapidRateParamId { get; } Property Value int? ReferencePositionParamId Parameter/MD/MP number for reference position (G28 home). protected override int ReferencePositionParamId { get; } Property Value int StrokeLimitNegParamId Parameter/MD/MP number for negative stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitNegParamId { get; } Property Value int? StrokeLimitPosParamId Parameter/MD/MP number for positive stroke limit per axis. Null if not defined for this controller brand. protected override int? StrokeLimitPosParamId { get; } Property Value int? XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods DeepClone() Returns an independent deep copy of this table (all three parameter dictionaries cloned). Used by SyntecParameterTableProxy to clone its fixed machine-config seed into a host that has no table yet. public SyntecParameterTable DeepClone() Returns SyntecParameterTable DescribeAxisParam(int) Per-axis double counterpart of DescribeSystemParam(int). Covers the role ids the base class consumes (reference position, rapid rate, stroke limits); brand subclasses may override for their own vocabulary or extra numbers. public override string DescribeAxisParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string DescribeSystemParam(int) Short usage label for a well-known system parameter id, or null when the id has no modeled meaning (a raw pass-through row). Brand subclasses extend this with their own well-known numbers; the native parameter UI shows the label next to the raw id so an operator can tell the modeled parameters from free extras. public override string DescribeSystemParam(int paramId) Parameters paramId int Brand-specific parameter/MD/MP number. Returns string GetCoordinateOffset(string) Gets the offset for the given G-code coordinate id. Returns null when no offset is configured for that id by this provider (callers iterate the next provider, or fall back to Zero). public Vec3d GetCoordinateOffset(string coordId) Parameters coordId string Returns Vec3d MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public override XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory SetCoordinateOffset(string, Vec3d) Sets the offset for the given G-code coordinate id. public void SetCoordinateOffset(string coordId, Vec3d offset) Parameters coordId string offset Vec3d" }, "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTableProxy.html": { "href": "api/Hi.NcParsers.Dependencys.Syntec.SyntecParameterTableProxy.html", "title": "Class SyntecParameterTableProxy | HiAPI-C# 2025", "summary": "Class SyntecParameterTableProxy Namespace Hi.NcParsers.Dependencys.Syntec Assembly HiMech.dll Get-or-create INcDependencyProxy for SyntecParameterTable: the Syntec sibling of FanucParameterTableProxy. Like Fanuc, the Syntec parameter table mixes machine config with per-case work-coordinate offsets, so the proxy carries a fixed machine-config Seed serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no SyntecParameterTable yet; a loaded project's own full table wins. The proxy does not implement the machine-config interfaces — consumers go through GetEffectiveNcDependencyList(). public sealed class SyntecParameterTableProxy : INcDependencyProxy, INcDependency, IMakeXmlSource Inheritance object SyntecParameterTableProxy Implements INcDependencyProxy INcDependency IMakeXmlSource Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 SyntecParameterTableProxy(SyntecParameterTable) Creates a proxy carrying seed as its machine-config seed, defaulting to Default3Axis. public SyntecParameterTableProxy(SyntecParameterTable seed = null) Parameters seed SyntecParameterTable The machine-config seed cloned into a fresh host. Properties Seed The fixed machine-config seed deep-cloned into a host that has no SyntecParameterTable yet. Carried on the shared runner and serialized into the runner file — never the per-case instance, which lives on the host (see GetNcDependency()). public SyntecParameterTable Seed { get; } Property Value SyntecParameterTable XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods GetNcDependency() Takes the host's SyntecParameterTable (created during InitNcDependencyHost(INcDependencyListHost)). Returns null when no host is wired. public INcDependency GetNcDependency() Returns INcDependency InitNcDependencyHost(INcDependencyListHost) Wires the host and materializes the host SyntecParameterTable: when the host list has none, a deep clone of Seed is installed so machine config + per-case coordinates exist and are editable before any run. GetNcDependency() is then a pure take. Idempotent — an existing host table (a loaded project's) is left untouched. public void InitNcDependencyHost(INcDependencyListHost host) Parameters host INcDependencyListHost MakeXmlSource(string, string, bool) Serializes only the machine-config Seed — the wired host and the resolved host table are runtime-only and not persisted in the shared runner. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Rehydrates the carried Seed from the nested SyntecParameterTable element, falling back to Default3Axis when absent. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.Syntec.html": { "href": "api/Hi.NcParsers.Dependencys.Syntec.html", "title": "Namespace Hi.NcParsers.Dependencys.Syntec | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.Syntec Classes SyntecParameterTable Syntec controller parameter table. Stores system parameters (single value) and axis parameters (per-axis value) following Syntec Pr-prefixed parameter numbering. Syntec is largely Fanuc-compatible in parameter numbering, but some parameters differ in unit or interpretation. For example, Pr4002 (peck retraction) is stored in microns whereas Fanuc #4002 stores in mm. SyntecParameterTableProxy Get-or-create INcDependencyProxy for SyntecParameterTable: the Syntec sibling of FanucParameterTableProxy. Like Fanuc, the Syntec parameter table mixes machine config with per-case work-coordinate offsets, so the proxy carries a fixed machine-config Seed serialized into the shared runner file. On wire, the host receives a deep clone of the seed only when it has no SyntecParameterTable yet; a loaded project's own full table wins. The proxy does not implement the machine-config interfaces — consumers go through GetEffectiveNcDependencyList()." }, "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.FileIndexCounterDependency.html", "title": "Class FileIndexCounterDependency | HiAPI-C# 2025", "summary": "Class FileIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. public class FileIndexCounterDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object FileIndexCounterDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors FileIndexCounterDependency() Initializes a new instance with the counter at 0. public FileIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused file index and post-increments the counter. First call after construction or OnSessionReset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement OnSessionReset() Rewinds the counter to 0. Called by RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) via the ISessionResettable sweep on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking file indices from the previous session. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.MachiningServiceDependency.html", "title": "Class MachiningServiceDependency | HiAPI-C# 2025", "summary": "Class MachiningServiceDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. public class MachiningServiceDependency : INcDependency, IMakeXmlSource Inheritance object MachiningServiceDependency Implements INcDependency IMakeXmlSource 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) Constructors MachiningServiceDependency() Initializes a new instance with no ServiceProvider; the host wires one before queries. public MachiningServiceDependency() MachiningServiceDependency(Func) Initializes a new instance with the given ServiceProvider. public MachiningServiceDependency(Func provider) Parameters provider Func Delegate that resolves the live service at lookup time. Properties Service The live machining service, or null when ServiceProvider is unset or returns null. public IMachiningService Service { get; } Property Value IMachiningService ServiceProvider Runtime provider for the machining service. Null provider or null return means the host is not wired; consumers must null-check. public Func ServiceProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.MappingAnchorDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.MappingAnchorDependency.html", "title": "Class MappingAnchorDependency | HiAPI-C# 2025", "summary": "Class MappingAnchorDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Narrow NC-pipeline dependency that lets a CSV semantic convert an absolute controller instant to a run-relative timecode against the project mapping anchor, without reaching the whole IMachiningService surface (cf. MachiningServiceDependency). The host wires ToTimecodeProvider to TimeMapping.ToTimecode, whose set-once ??= seeds (lazily builds) the anchor on first use. Runtime-only: the provider is wired per host and not persisted; serialization writes only the empty element so the dependency survives an XML round-trip. public class MappingAnchorDependency : INcDependency, IMakeXmlSource Inheritance object MappingAnchorDependency Implements INcDependency IMakeXmlSource 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) Constructors MappingAnchorDependency() Initializes a new instance with no provider; the host wires one before queries. public MappingAnchorDependency() Properties ToTimecodeProvider Runtime provider for the anchor converter (TimeMapping.ToTimecode). Null provider means the host is not wired; consumers must null-check and fall back to the legacy time-of-day. public Func ToTimecodeProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory ToTimecode(DateTime) Converts instant to a run-relative timecode via the wired anchor, or null when no provider is wired. public TimeSpan? ToTimecode(DateTime instant) Parameters instant DateTime Returns TimeSpan?" }, "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.NcKinematicsDependency.html", "title": "Class NcKinematicsDependency | HiAPI-C# 2025", "summary": "Class NcKinematicsDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Provides IMachineKinematics as an INcDependency for SoftNcRunner.PipelineNcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). public class NcKinematicsDependency : INcDependency, IMakeXmlSource, IMachineKinematics Inheritance object NcKinematicsDependency Implements INcDependency IMakeXmlSource IMachineKinematics 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) Constructors NcKinematicsDependency() Initializes a new instance with no KinematicsProvider; assign one before the runner queries kinematics. public NcKinematicsDependency() NcKinematicsDependency(Func) Initializes a new instance with the given KinematicsProvider. public NcKinematicsDependency(Func provider) Parameters provider Func Delegate that resolves the live IMachineKinematics at lookup time. Properties KinematicsOrNull Non-throwing probe: the live kinematics instance, or null when the provider is unwired or resolves to null (e.g. the machining chain is a ClMillingDevice, so no XyzabcSolver exists). Lets a syntax/semantic that supports both CL and MC chains branch on availability instead of catching InvalidOperationException from the IMachineKinematics members. public IMachineKinematics KinematicsOrNull { get; } Property Value IMachineKinematics KinematicsProvider Runtime provider for the kinematics instance. Null provider or null return means kinematics is not yet available. public Func KinematicsProvider { get; set; } Property Value Func ProgramZeroToPnOrNull The program-zero → Pn transform resolved via ProgramZeroToPnProvider, or null when unwired/unavailable; consumers fall back to identity (workpiece frame ≡ Pn frame). public Mat4d ProgramZeroToPnOrNull { get; } Property Value Mat4d ProgramZeroToPnProvider Runtime provider for the rigid transform from program-zero (workpiece) coordinates to the kinematic Pn frame, for pipelines whose source positions live in the workpiece frame (the NX CLSF pipeline). NC G-code pipelines leave it unwired — their program→MC mapping is carried per block by work-offset transform sections instead. The host wires it from the equipment topology (MachiningEquipmentUtil.GetProgramToPnMat4d); the provider is resolved per call so a re-aligned workpiece is picked up without rewiring. public Func ProgramZeroToPnProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. McAbcToMat(Vec3d) Converts machine ABC coordinates to a tilt matrix. the tilt matrix is the transformation matrix from table to attacher. public Mat4d McAbcToMat(Vec3d mcAbc_rad) Parameters mcAbc_rad Vec3d The machine ABC coordinates in radians Returns Mat4d The tilt matrix McToMat(DVec3d) Converts machine coordinates to an attacher matrix. public Mat4d McToMat(DVec3d mcXyzabc) Parameters mcXyzabc DVec3d The machine coordinates Returns Mat4d The attacher matrix McToPn(DVec3d) Machine coordinate to tool attacher Pn (Point and Normal). The Pn is from table buckle to tool attacher. public DVec3d McToPn(DVec3d mcXyzabc) Parameters mcXyzabc DVec3d machine coordinate. ABC is in radian. Returns DVec3d tool attacher Pn (Point and Normal) OrientationToMcAbc(Mat4d, out Vec3d) Converts a tilt matrix to machine ABC coordinates. the tilt matrix is the transformation matrix from table to attacher. the solution only fit the orientation part of the tiltMat. public bool OrientationToMcAbc(Mat4d tiltMat, out Vec3d mcAbc_rad) Parameters tiltMat Mat4d The tilt matrix to convert mcAbc_rad Vec3d Output parameter that will contain the machine ABC coordinates in radians Returns bool Whether the conversion was successful OrientationToMcAbc(Vec3d, out Vec3d) Converts a target tool axial direction (endpoint orientation) to machine ABC coordinates. Only the axial alignment is constrained; rotation about the tool axis is free. Use this in place of OrientationToMcAbc(Mat4d, out Vec3d) when the rotation about the tool axis is irrelevant (e.g. G53.1 rotary positioning). The axial-only solve avoids the redundant 6-target full-matrix constraint and is more likely to converge for tilt configurations such as G68.2 I180 J90 K0. public bool OrientationToMcAbc(Vec3d toolAxialNormal, out Vec3d mcAbc_rad) Parameters toolAxialNormal Vec3d Target tool axial direction in table coordinates (the third row of the tilt matrix; e.g. AxialNormal). mcAbc_rad Vec3d Output machine ABC coordinates in radians. Returns bool Whether the conversion was successful. PnToMc(DVec3d, out DVec3d) Tool attacher Pn (Point and Normal) to machine coordinate. The Pn is from table buckle to tool attacher. public bool PnToMc(DVec3d pn, out DVec3d mcXyzabc_rad) Parameters pn DVec3d tool attacher Pn (Point and Normal) mcXyzabc_rad DVec3d machine coordinate (ABC in radian) Returns bool whether conversion succeeded Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.NcLineSourceDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.NcLineSourceDependency.html", "title": "Class NcLineSourceDependency | HiAPI-C# 2025", "summary": "Class NcLineSourceDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll In-memory line source for NC “files” with no disk backing — inline NC-code plays whose FilePath is a command-title pseudo-path (e.g. “NC Code”). Control-flow re-segmentation (WHILE reverse jump, backward GOTO, M99 P{seq} caller re-entry — every LabelScanUtil scan) re-reads the host file by path; an inline play's pseudo-path never exists on disk, so without this source those jumps fall through (loops that do not loop) or error with a *FileNotFound diagnostic. RunNc(string, string) registers the play's raw lines under its pseudo-path before running; LabelScanUtil consults this source first and only falls back to disk. Entries persist for the runner's lifetime, the latest registration of a path winning — deliberately NOT ISessionResettable: the session-reset sweep runs inside the first RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) of a fresh session, which would wipe the registration made moments earlier for that very play. A registered pseudo-path shadows an identically-named disk file during re-segmentation, so inline command titles should not mirror real project-relative NC paths. public class NcLineSourceDependency : INcDependency, IMakeXmlSource Inheritance object NcLineSourceDependency Implements INcDependency IMakeXmlSource 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) Constructors NcLineSourceDependency() Initializes a new instance with no registered sources. public NcLineSourceDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Contains(string) Whether path has a registered line source. public bool Contains(string path) Parameters path string Returns bool MakeXmlSource(string, string, bool) Runtime-only dependency — registrations are per-play and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the map implicitly empty. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory Register(string, string[]) Registers (or overwrites) the line content served for path. No-op on a null/empty path or null lines. public void Register(string path, string[] lines) Parameters path string lines string[] TryGetLines(string, out string[]) Gets the registered line content for path; returns whether a registration exists. public bool TryGetLines(string path, out string[] lines) Parameters path string lines string[] Returns bool" }, "api/Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.ProjectFolderDependency.html", "title": "Class ProjectFolderDependency | HiAPI-C# 2025", "summary": "Class ProjectFolderDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. public class ProjectFolderDependency : INcDependency, IMakeXmlSource Inheritance object ProjectFolderDependency Implements INcDependency IMakeXmlSource 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) Constructors ProjectFolderDependency() Initializes a new instance with no BaseDirectoryProvider; the host assigns one before queries. public ProjectFolderDependency() ProjectFolderDependency(Func) Initializes a new instance with the given BaseDirectoryProvider. public ProjectFolderDependency(Func provider) Parameters provider Func Delegate that resolves the absolute base directory at lookup time. Properties BaseDirectory The live absolute base directory, or null when BaseDirectoryProvider is unset or returns null. public string BaseDirectory { get; } Property Value string BaseDirectoryProvider Runtime provider for the absolute project base directory. Public so cross-assembly hosts (e.g. LocalProjectService in HiNc) can wire it after the runner is constructed — same host-wired posture as KinematicsProvider. Null provider or null return means the host has not configured a base directory yet — consumers should treat this as a configuration error and surface a diagnostic rather than silently falling back. public Func BaseDirectoryProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the BaseDirectoryProvider is wired per-host and is not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.html", "title": "Class SegmenterDependency | HiAPI-C# 2025", "summary": "Class SegmenterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in PipelineNcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). public class SegmenterDependency : INcDependency, IMakeXmlSource Inheritance object SegmenterDependency Implements INcDependency IMakeXmlSource 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) Constructors SegmenterDependency() Initializes a new instance with no Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; the host runner assigns one before queries. public SegmenterDependency() SegmenterDependency(Func) Initializes a new instance with the given Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider. public SegmenterDependency(Func provider) Parameters provider Func Delegate that resolves the live ISegmenter at lookup time. Properties Segmenter The live segmenter, or null when Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is unset or returns null. public ISegmenter Segmenter { get; } Property Value ISegmenter XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider is wired per session and is not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.SentenceIndexCounterDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.SentenceIndexCounterDependency.html", "title": "Class SentenceIndexCounterDependency | HiAPI-C# 2025", "summary": "Class SentenceIndexCounterDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Per-session monotonically-increasing SentenceIndex allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. This dependency exists to fix the sentence-index double-booking bug: before it, the host file's lazy enumerator numbered pieces from layers[0].Count captured at file-append time while subprogram / macro / control-flow re-segmentation numbered from layers[0].Last.Value.SentenceIndex + 1 — two independent sequences that overlap as soon as a call is inlined mid-stream (host blocks after M98 and the inlined body shared the same indices). With this counter, GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) allocates one value per piece at materialization time, which the lazy pipeline pulls in execution order — indices are session-globally unique and strictly increasing along the executed stream, at the cost of no longer being contiguous per file (eager label scans discard their pre-label prefix, leaving gaps). Values are never negative, preserving the -1 \"not in pipeline\" sentinel used by SentenceIndex and SentenceIndex. When this dependency is absent from the pipeline list, GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) falls back to the caller-supplied begin-index numbering — the legacy colliding behavior. Only code-built runners can hit that fallback: XML rehydration back-fills a missing instance (the SoftNcRunner XML constructor's system-wired back-fill), because saves that predate this dependency never self-heal by round-tripping — re-saving stamps a new ApiVersion on the same incomplete list. public class SentenceIndexCounterDependency : INcDependency, IMakeXmlSource, ISessionResettable Inheritance object SentenceIndexCounterDependency Implements INcDependency IMakeXmlSource ISessionResettable 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) Constructors SentenceIndexCounterDependency() Initializes a new instance with the counter at 0. public SentenceIndexCounterDependency() Properties XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods Allocate() Returns the next unused sentence index and post-increments the counter. First call after construction or OnSessionReset() returns 0. public int Allocate() Returns int MakeXmlSource(string, string, bool) Runtime-only dependency — the live counter value is per-session and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip with the counter implicitly reset to 0. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement OnSessionReset() Rewinds the counter to 0. Called by RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) via the ISessionResettable sweep on the same edge that initializes a fresh session pipeline so a single brand-preset runner can be reused across sessions without leaking sentence indices from the previous session. public void OnSessionReset() Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.StepPropertyAccessDictionaryDependency.html", "title": "Class StepPropertyAccessDictionaryDependency | HiAPI-C# 2025", "summary": "Class StepPropertyAccessDictionaryDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. public class StepPropertyAccessDictionaryDependency : INcDependency, IMakeXmlSource Inheritance object StepPropertyAccessDictionaryDependency Implements INcDependency IMakeXmlSource 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) Constructors StepPropertyAccessDictionaryDependency() Initializes a new instance with no HostProvider; the host wires one before queries. public StepPropertyAccessDictionaryDependency() StepPropertyAccessDictionaryDependency(Func) Initializes a new instance with the given HostProvider. public StepPropertyAccessDictionaryDependency(Func provider) Parameters provider Func Delegate that resolves the live host at lookup time. Properties Host The live host, or null when HostProvider is unset or returns null. public IStepPropertyAccessHost Host { get; } Property Value IStepPropertyAccessHost HostProvider Runtime provider for the host. Null provider or null return means the host is not wired (e.g. the dependency sits in a runner that runs in a unit-test fixture without a real project service). Consumers must null-check before use. public Func HostProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.html", "title": "Class SyntaxPieceLayerDependency | HiAPI-C# 2025", "summary": "Class SyntaxPieceLayerDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState. public class SyntaxPieceLayerDependency : INcDependency, IMakeXmlSource Inheritance object SyntaxPieceLayerDependency Implements INcDependency IMakeXmlSource 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) Constructors SyntaxPieceLayerDependency() Initializes a new instance with no Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; the host runner assigns one before queries. public SyntaxPieceLayerDependency() SyntaxPieceLayerDependency(Func>>) Initializes a new instance with the given Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider. public SyntaxPieceLayerDependency(Func>> provider) Parameters provider Func>> Delegate that resolves the live layer chain at lookup time. Properties Layers The live layer chain, or null when Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider is unset or returns null. Layer 0 is the source layer; layers 1..N are post-NcSyntax layers. public List> Layers { get; } Property Value List> XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider is wired per session and is not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.ToolHouseDependency.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.ToolHouseDependency.html", "title": "Class ToolHouseDependency | HiAPI-C# 2025", "summary": "Class ToolHouseDependency Namespace Hi.NcParsers.Dependencys.SystemWired Assembly HiMech.dll Exposes the project's MachiningToolHouse to NC pipeline components — the narrow counterpart of MachiningServiceDependency for syntaxes / semantics that only look up or register tools (e.g. the CLSF pipeline's TLDATA-driven tool creation). public class ToolHouseDependency : INcDependency, IMakeXmlSource Inheritance object ToolHouseDependency Implements INcDependency IMakeXmlSource 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) Constructors ToolHouseDependency() Initializes a new instance with no ToolHouseProvider; the host wires one before queries. public ToolHouseDependency() ToolHouseDependency(Func) Initializes a new instance with the given ToolHouseProvider. public ToolHouseDependency(Func provider) Parameters provider Func Delegate that resolves the live tool house at lookup time. Properties ToolHouse The live tool house, or null when ToolHouseProvider is unset or returns null. public MachiningToolHouse ToolHouse { get; } Property Value MachiningToolHouse ToolHouseProvider Runtime provider for the tool house. Null provider or null return means the host is not wired; consumers must null-check. public Func ToolHouseProvider { get; set; } Property Value Func XName XML element name used to register this dependency with XFactory. public static string XName { get; } Property Value string Methods MakeXmlSource(string, string, bool) Runtime-only dependency — the provider is wired per host and not meaningful to persist; serialization writes only the empty element so the dependency survives an XML round-trip. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string relFile string exhibitionOnly bool Returns XElement Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Dependencys.SystemWired.html": { "href": "api/Hi.NcParsers.Dependencys.SystemWired.html", "title": "Namespace Hi.NcParsers.Dependencys.SystemWired | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys.SystemWired Classes FileIndexCounterDependency Per-session monotonically-increasing file index allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. Two consumers share one allocator: RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) allocates one index per top-level NC file that streams through the runner. SubProgramCallSyntax allocates a fresh index for each inlined subprogram invocation, including each L repetition — distinct indices ensure (FileIndex, LineIndex) pairs stay unique across overlapping subprogram line ranges. Holding the counter on this dependency rather than on NcRunnerSessionState avoids a duplicate source-of-truth: the dep is the single seam through which syntaxes reach the counter, and there is no third reader that would benefit from session-state visibility. MachiningServiceDependency Exposes the full IMachiningService surface to NC pipeline components — currently provided for client-authored syntaxes / semantics that need broad host access (machining equipment, session, tool house, time mapping, …). The built-in CSV pipeline does not consume this dependency; it uses the narrower StepPropertyAccessDictionaryDependency instead. MappingAnchorDependency Narrow NC-pipeline dependency that lets a CSV semantic convert an absolute controller instant to a run-relative timecode against the project mapping anchor, without reaching the whole IMachiningService surface (cf. MachiningServiceDependency). The host wires ToTimecodeProvider to TimeMapping.ToTimecode, whose set-once ??= seeds (lazily builds) the anchor on first use. Runtime-only: the provider is wired per host and not persisted; serialization writes only the empty element so the dependency survives an XML round-trip. NcKinematicsDependency Provides IMachineKinematics as an INcDependency for SoftNcRunner.PipelineNcDependencyList. The actual kinematics instance is resolved at runtime via KinematicsProvider. This supports scenarios where the machine tool is loaded or changed after the runner is configured (e.g., XML config loaded first, kinematics assigned later). Consumed by G53p1RotaryPositionSyntax, IsoG68p2TiltSyntax, and McLinearMotionSemantic via dependencyList.OfType(). NcLineSourceDependency In-memory line source for NC “files” with no disk backing — inline NC-code plays whose FilePath is a command-title pseudo-path (e.g. “NC Code”). Control-flow re-segmentation (WHILE reverse jump, backward GOTO, M99 P{seq} caller re-entry — every LabelScanUtil scan) re-reads the host file by path; an inline play's pseudo-path never exists on disk, so without this source those jumps fall through (loops that do not loop) or error with a *FileNotFound diagnostic. RunNc(string, string) registers the play's raw lines under its pseudo-path before running; LabelScanUtil consults this source first and only falls back to disk. Entries persist for the runner's lifetime, the latest registration of a path winning — deliberately NOT ISessionResettable: the session-reset sweep runs inside the first RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) of a fresh session, which would wipe the registration made moments earlier for that very play. A registered pseudo-path shadows an identically-named disk file during re-segmentation, so inline command titles should not mirror real project-relative NC paths. ProjectFolderDependency Exposes the absolute base directory of the project that owns this runner. Resolved at runtime via BaseDirectoryProvider; the host (e.g. LocalProjectService, a test harness) wires the provider to its known project root after the runner is constructed, because SoftNcRunner itself does not retain the baseDirectory argument it sees during XML deserialization. Consumed by syntaxes that need to resolve a project-relative path to an absolute file system location — e.g. SubProgramCallSyntax for O subprogram lookup under InternalFolder. Reading FilePath is not a substitute: that path is relative and resolving it via Path.GetFullPath would anchor against the process working directory, not the project root. SegmenterDependency Exposes the active ISegmenter to syntaxes that need to re-segment auxiliary NC text mid-pipeline (e.g., SubProgramCallSyntax reading an O subprogram file and re-using the host runner's segmenter so the inlined blocks are split with the same rules). The actual segmenter is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SegmenterDependency.SegmenterProvider; RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) wires the provider to its own Segmenter at the start of each session run, so this dependency can sit in PipelineNcDependencyList without participating in XML serialization (see MakeXmlSource(string, string, bool)). SentenceIndexCounterDependency Per-session monotonically-increasing SentenceIndex allocator. Holds the counter as a private field; Allocate() returns the next unused value and increments. OnSessionReset() rewinds to 0 — the owning RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) invokes it via the ISessionResettable sweep on the same edge that initializes a fresh NcRunnerSessionState, so a controller power-reset clears both the syntax-piece pipeline and this counter in lock-step. This dependency exists to fix the sentence-index double-booking bug: before it, the host file's lazy enumerator numbered pieces from layers[0].Count captured at file-append time while subprogram / macro / control-flow re-segmentation numbered from layers[0].Last.Value.SentenceIndex + 1 — two independent sequences that overlap as soon as a call is inlined mid-stream (host blocks after M98 and the inlined body shared the same indices). With this counter, GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) allocates one value per piece at materialization time, which the lazy pipeline pulls in execution order — indices are session-globally unique and strictly increasing along the executed stream, at the cost of no longer being contiguous per file (eager label scans discard their pre-label prefix, leaving gaps). Values are never negative, preserving the -1 \"not in pipeline\" sentinel used by SentenceIndex and SentenceIndex. When this dependency is absent from the pipeline list, GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) falls back to the caller-supplied begin-index numbering — the legacy colliding behavior. Only code-built runners can hit that fallback: XML rehydration back-fills a missing instance (the SoftNcRunner XML constructor's system-wired back-fill), because saves that predate this dependency never self-heal by round-tripping — re-saving stamps a new ApiVersion on the same incomplete list. StepPropertyAccessDictionaryDependency Exposes the host's step-variable registry to NC pipeline components (today: CsvRowSyntax) as a narrow IStepPropertyAccessHost surface. The provider is wired by the host (e.g. LocalProjectService) so the dependency does not carry strong references to host types; this lets the runner be created before the host is fully constructed and reused across project loads. A sibling MachiningServiceDependency exposes the broader IMachiningService surface to client-authored syntaxes. The two dependencies are independent — production hosts typically wire both providers to the same backing object, but a test fixture can supply just this narrow one. SyntaxPieceLayerDependency Exposes the per-session SyntaxPiece layer chain (one LazyLinkedList per pipeline stage, owned by NcRunnerSessionState) to syntaxes that need to inject additional source pieces mid-pipeline — most notably SubProgramCallSyntax, which inlines a subprogram file's blocks back into layers[0] immediately after the M98 host node so the entire syntax pipeline naturally re-processes them. The actual layer list is resolved at runtime via Hi.NcParsers.Dependencys.SystemWired.SyntaxPieceLayerDependency.LayersProvider; RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) wires the provider to the active session's SyntaxPieceLayers at the start of each call. Index 0 is the source layer (init seed + sentence-derived pieces); indices 1..N are post-NcSyntax layers — same convention as NcRunnerSessionState. ToolHouseDependency Exposes the project's MachiningToolHouse to NC pipeline components — the narrow counterpart of MachiningServiceDependency for syntaxes / semantics that only look up or register tools (e.g. the CLSF pipeline's TLDATA-driven tool creation)." }, "api/Hi.NcParsers.Dependencys.html": { "href": "api/Hi.NcParsers.Dependencys.html", "title": "Namespace Hi.NcParsers.Dependencys | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Dependencys Classes CncBrandDependency Explicit CNC controller brand identifier carried in PipelineNcDependencyList. Use ncDependencyList.OfType().FirstOrDefault() to retrieve the brand. ControllerParameterTableBase Base class for brand-specific controller parameter tables. Provides shared data structures, XML IO, and IHomeMcConfig IMachineAxisConfig implementations. Subclasses define brand-specific parameter numbers, XML attribute names, and derived convenience properties. HeidenhainDatumTable Heidenhain datum preset and datum shift tables. CYCL DEF 247 Q339=N reads from DatumPresetTable, CYCL DEF 7 #N reads from DatumShiftTable. Each table maps an integer ID (1–20) to a Vec3d offset. On real Heidenhain controllers, preset and datum tables are separate disk files (e.g. TNC:\\table\\preset.pr, *.d) — distinct from MP-prefixed Machine Parameters (held by HeidenhainParameterTable). HiNC mirrors that separation by keeping this dependency independent of HeidenhainParameterTable. Implements IIsoCoordinateConfig by mapping the ISO/DIN G54–G59 codes to preset rows 1–6, the conventional Heidenhain compatibility mapping for ISO/DIN programs running on a Heidenhain. HeidenhainDatumTableProxy Get-or-create INcDependencyProxy for HeidenhainDatumTable: a placeholder in the shared PipelineNcDependencyList that resolves the host project's own per-case datum preset / datum shift tables. IsoCoordinateAddressMap Fanuc-style ISO coordinate parameter address mapping. G54–G59 → #5221+ (stride 20, three consecutive numbers per entry for X/Y/Z), G54.1 P1–P48 → #7001+ (stride 20). Shared between FanucParameterTable (which calls these “ParamId”) and SyntecParameterTable (which calls them “PrId”) because both follow the same numeric scheme. MCodeEffects What one machine-declared M-code does. Real-machine OEM M-codes are frequently composite — e.g. an M13 that means “spindle CW + flood coolant on” — so a declaration carries every effect the code performs rather than a single meaning, and additionally an UnmodeledNote for the parts this simulation does not model. Declaring only the known parts and staying loud about the rest keeps a composite code from being half-consumed silently. Stored per machine in MCodeDeclarations and consumed by MCodeExpansionSyntax, which expands the declared code into the canonical ISO flags the regular consumers already understand. Interfaces IBlockSkipConfig Runtime state of the controller's Block Delete / Block Skip switches. Present in PipelineNcDependencyList exposes this to the runner so that blocks whose head carries / or /N (parsed by BlockSkipSyntax into BlockSkip) are skipped at semantic time. Layers are 1..9; Layer 1 corresponds to the bare / prefix. Controllers (Fanuc / Syntec / Mazak / Siemens) let each layer be toggled independently via panel switches or system parameters. When this dependency is absent from PipelineNcDependencyList, no block is skipped (safest default: simulate the full machining). The syntax still consumes the / prefix so no UnparsedText--Remaining diagnostic is produced. ICannedCycleConfig Canned cycle configuration parameters. Implemented by brand-specific parameter tables (e.g., FanucParameterTable for Fanuc #4002, SyntecParameterTable for Syntec Pr4002) and by FallbackConfig as a safety net. Siemens and Heidenhain specify peck clearance per-call (CYCLE83 parameter / CYCL DEF), so their tables do not implement this interface. The FallbackConfig provides the default value in those cases. IHomeMcConfig G28 first reference position (home machine coordinate) per axis. IIndexingPositionConfig Indexing-axis position table: maps 1-based indexing position numbers to axis coordinates for axes that only take up discrete stations (Hirth couplings, indexing rotary tables, turret-style workholders). Consumed by the coded-position coordinate functions (Siemens CAC()/CIC()/CDC()/CACP()/CACN() — unwrapped by SiemensAcIcSyntax, resolved by McAbcSyntax / IncrementalResolveSyntax via CodedPositionUtil). Implemented by SiemensMachineDataTable using the Siemens machine data (MD30500 $MA_INDEX_AX_ASSIGN_POS_TAB per axis; global tables MD10910/MD10930; equidistant MD30501–MD30503). Positions are expressed in the axis' native units (degrees for rotary, mm for linear) in the coordinate frame the axis word itself is written in — machine coordinates for rotary words, program coordinates for linear words. Position numbering is 1-based: number 1 is the first table entry (the Siemens machine-data help and alarm texts count this way; the 0-based value range printed in some programming-manual editions describes the machine-data array index, not the programmable number). IIsoCoordinateConfig ISO work coordinate offset provider. Maps a G-code work coordinate id (e.g. “G54”, “G59.2”, “G54.1P1”) to a machine-coordinate offset Vec3d. Implementations include IsoCoordinateTable (brand-agnostic standalone storage), FanucParameterTable / SyntecParameterTable (parameter-table integration via real Fanuc/Syntec parameter numbers #5221+ for G54–G59 and #7001+ for G54.1 P1–P48), SiemensFrameTable (Sinumerik $P_UIFR frames), and HeidenhainDatumTable (Heidenhain preset rows). IMCodeDeclarationConfig Machine-declared M-code map: what each machine-specific (OEM/PLC) M-code does, as MCodeEffects — possibly several effects per code (tool change, spindle direction, coolant) plus a note for behavior this simulation does not model. Consumed by MCodeExpansionSyntax, which expands declared codes into the canonical ISO flags ahead of the regular consumers. Machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase, alongside the narrower ISpindleControlConfig face over the same storage. IMachineAxisConfig Machine axis configuration: which axes exist and their types. Compatible with Fanuc, Siemens, Heidenhain, Mazak, Okuma. INcDependency Marker interface for objects that participate in the NC dependency list resolved by the soft-NC runtime. INcDependencyListHost Hosts a per-case INcDependency list that INcDependencyProxy placeholders in a shared SoftNcRunner resolve their data against. Implemented by the object owning both the shared runner and the varied setting data — e.g. MachiningProject. INcDependencyProxy An INcDependency placeholder that resolves the real dependency lazily at pipeline-build time instead of carrying the data itself. Lets a shared SoftNcRunner hold only the fixed pipeline logic while the frequently-varied data lives on the owning INcDependencyListHost (e.g. a MachiningProject). \"Maker and taker\": GetNcDependency() either constructs the dependency on demand (maker) or fetches one from the host wired by InitNcDependencyHost(INcDependencyListHost) (taker). A get-or-create proxy does both — it takes the host's instance when present and otherwise makes one, installing it into the host list so it persists and is editable per case. A proxy may carry runtime-only state (the wired host, a memoized resolved dependency). That state is host-wired per run and MUST NOT be written by MakeXmlSource(string, string, bool) — same runtime-only posture as ProjectFolderDependency. IPowerResettable Marks an INcDependency that holds volatile state which must be cleared when the controller performs a power reset (power off then on). Implementers should clear only the volatile subset they own (e.g. Fanuc common volatile macro variables #100-#499), and leave persistent state untouched (e.g. #500-#999, controller parameters). Call-frame local state (Fanuc #1-#33, Heidenhain Q200-Q1199) is NOT in scope — that lives in the SyntaxPiece JSON dataflow and is bounded by call activation, not power cycle. IRapidFeedrateConfig Provides per-axis rapid traverse feedrate for motion semantics. Implemented by ControllerParameterTableBase using brand-specific parameter numbers (e.g., Fanuc #1420, Siemens MD32000, Heidenhain MP1010). ISpindleControlConfig Machine-specific spindle control codes: maps custom spindle direction M-codes to SpindleDirection — e.g., an ultrasonic spindle started by M203 (CW) and stopped by M205 (STOP) instead of ISO M03/M05. Consulted by SpindleSpeedSyntax in addition to the built-in ISO defaults (M03/M04/M05), which always stay in effect; a configured code wins over its ISO meaning when both match. Machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase as a spindle-direction face over its MCodeDeclarations storage (the multi-effect IMCodeDeclarationConfig map), so one code is never half-recognized by two separate maps. IStrokeLimitConfig Per-axis stroke (travel) limits. Unit is mm for linear axes, deg for rotary axes. Implemented by ControllerParameterTableBase using brand-specific parameter numbers (e.g., Fanuc #1300/#1320, Siemens MD36100/MD36110, Heidenhain MP420/MP430). IToolChangeTriggerConfig Machine-level tool-change trigger mode. Machining centers with a magazine treat a bare T word as pre-selection only (the magazine rotates, no feed axis moves) and change the tool on the trigger M-code; lathes/turret machines index the turret — and thereby change the tool — on the T word itself. Real controllers declare this per machine (e.g. Siemens MD22550 $MC_TOOL_CHANGE_MODE, where 0 means the T word performs the change). Consulted by ToolChangeSyntax; machine-level (per-case parameter table) rather than brand vocabulary — implemented by ControllerParameterTableBase. Custom trigger M-codes are the separate IMCodeDeclarationConfig concern (IsToolChange). IToolOffsetConfig Tool offset configuration indexed by a single integer offset number. Applies to Fanuc (H/D numbers), Heidenhain (tool number), Mazak, Okuma, and other ISO-compatible controllers where one integer selects the offset row. For Siemens (840D/Sinumerik) where offsets are addressed by (tool number, cutting edge D number), see ISiemensToolOffsetConfig. IToolingMcConfig Machine position axes move to during tool change (M06). Enums AxisType Axis type: linear (translation), rotary (rotation), or spindle (speed/positioning dual mode)." }, "api/Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.CallStackUtil.html", "title": "Class CallStackUtil | HiAPI-C# 2025", "summary": "Class CallStackUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). public static class CallStackUtil Inheritance object CallStackUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods BuildPoppedCallStack(JsonObject) Builds the post-pop CallStack section to stamp onto an M99 return block. Reads the M99 block's currently-carried stack, deep-clones it, and drops the top frame. Returns null when there was no frame to pop (M99 in main file with no caller — the runner treats this as program-end via the implicit fall-through; no stamp is needed). public static JsonObject BuildPoppedCallStack(JsonObject hostJson) Parameters hostJson JsonObject The M99 block's JSON object (post-carry, before this pop runs). Returns JsonObject BuildPushedCallStack(JsonObject, string) Builds the post-push CallStack section to stamp onto every inlined-body piece of a call. Reads the host block's current stack (defaulting to empty when absent — main-frame caller), deep-clones it, and appends a new CallFrame whose CallerFilePath records where the call originated. The returned JsonObject can be safely deep-cloned by the caller for each piece in an L-repetition. public static JsonObject BuildPushedCallStack(JsonObject hostJson, string callerFilePath) Parameters hostJson JsonObject The call-host block's JSON object. callerFilePath string Project-relative path of the host file (typically FilePath on the host piece). Returns JsonObject GetTopCallerFilePath(JsonObject) Returns the top frame's CallerFilePath from the given block's CallStack section, or null when the stack is empty or absent (block is in the main frame). public static string GetTopCallerFilePath(JsonObject hostJson) Parameters hostJson JsonObject Returns string" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.EvalResult.html", "title": "Struct EvalResult | HiAPI-C# 2025", "summary": "Struct EvalResult Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Outcome of evaluating an NcExpr. Either a successful numeric value, or a failure with an error code matching the diagnostic catalogue used by reading / evaluator syntaxes. public readonly record struct EvalResult : IEquatable Implements IEquatable 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) Constructors EvalResult(double?, string, string) Outcome of evaluating an NcExpr. Either a successful numeric value, or a failure with an error code matching the diagnostic catalogue used by reading / evaluator syntaxes. public EvalResult(double? Value, string ErrorCode, string ErrorMessage) Parameters Value double? ErrorCode string ErrorMessage string Properties ErrorCode public string ErrorCode { get; init; } Property Value string ErrorMessage public string ErrorMessage { get; init; } Property Value string IsSuccess true when ErrorCode is null. public bool IsSuccess { get; } Property Value bool Value public double? Value { get; init; } Property Value double? Methods Failure(string, string) Failed evaluation with a diagnostic code and message. public static EvalResult Failure(string errorCode, string errorMessage) Parameters errorCode string errorMessage string Returns EvalResult Success(double) Successful evaluation. public static EvalResult Success(double value) Parameters value double Returns EvalResult" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IRuntimeVariableLookup.html", "title": "Interface IRuntimeVariableLookup | HiAPI-C# 2025", "summary": "Interface IRuntimeVariableLookup Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Stateless variable lookup that needs per-block runtime context — the current SyntaxPiece node (for Previous traceback into runtime-state sections like MachineCoordinateState / ProgramXyz) and the dependency list (so the lookup can read from sibling dependencies without holding a static reference). Distinguished from IVariableLookup: that one is for long-lived dependencies that already hold their own data (parameter tables, tool-offset wrappers, retained-variable tables) and need no block context. IRuntimeVariableLookup is for context-sensitive resolutions configured declaratively on RuntimeVariableLookups. Implementations should be brand-specific (e.g. Fanuc #5001-#5043 position reads) and return null for keys outside their range so the evaluator's chain can fall through to the next lookup. Implementations are XML-serialised as part of VariableEvaluatorSyntax's round-trip: each impl exposes a static XName, registers itself with Generators, and implements MakeXmlSource(string, string, bool). Since impls are stateless, the typical body is just an empty element carrying the type name; brand identity is restored by XFactory dispatch. public interface IRuntimeVariableLookup : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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) Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double?" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.IVariableLookup.html", "title": "Interface IVariableLookup | HiAPI-C# 2025", "summary": "Interface IVariableLookup Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Resolves a Custom Macro B variable reference to its current numeric value, or null for vacant (Fanuc ) and out-of-scope alike. The key is the raw source token — Fanuc \"#124\", Heidenhain \"Q1\", Siemens \"R1\" — so the interface itself is brand-agnostic. Implementations are typically narrow (one per id range / per brand prefix) and parse the prefix locally; chain them at the call site by trying each in priority order until one returns a non-null value. A returned null is treated by NcExpressionEvaluator as vacant and surfaces as a Variable--Vacant failure when the value is consumed in arithmetic context. public interface IVariableLookup 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) Methods Get(string) Returns the value of the variable identified by key (e.g. \"#124\"), or null if vacant or unknown to this lookup. double? Get(string key) Parameters key string Returns double?" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.LocalVariableLookup.html", "title": "Class LocalVariableLookup | HiAPI-C# 2025", "summary": "Class LocalVariableLookup Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Reads Fanuc-style local macro variables (#1-#33) from Vars.Local on the current SyntaxPiece JSON, falling back to the immediately previous block when they share the same MacroFrame id. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Two-step lookup (mirrors VolatileVariableLookup): the current block sees writes that FanucMacroCallSyntax stamped at inline time (the call-line argument bindings) and writes that FanucLocalVariableReadingSyntax applied on this block before the lookup runs; the previous block (frame-checked) supplies body-internal writes from the prior block in the same macro frame. Looking past the previous block is unnecessary because the reader carries forward block-by-block within a frame. Frame isolation via MacroFrame: a previous block whose frame id differs from the current block's is skipped — a macro body's body-internal locals are invisible to the caller after return, and the caller's main-frame locals are invisible inside the macro. M98/M198 subprogram inlining (SubProgramCallSyntax) deliberately does not stamp MacroFrame on its inlined blocks, so the callee inherits the caller's frame and sees the caller's locals — matching real Fanuc M98 semantics. Stateless and dependency-free — instances are interchangeable. public class LocalVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object LocalVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource 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) Constructors LocalVariableLookup() Default constructor. public LocalVariableLookup() LocalVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public LocalVariableLookup(XElement src) Parameters src XElement Fields LocalMax Inclusive upper bound of the macro-local range (#33). public const int LocalMax = 33 Field Value int LocalMin Inclusive lower bound of the macro-local range (#1). public const int LocalMin = 1 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryExpr.html", "title": "Class NcBinaryExpr | HiAPI-C# 2025", "summary": "Class NcBinaryExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Binary operation on two operands. Covers arithmetic (+ - * / / MOD), comparison (EQ NE GT GE LT LE, yielding 1.0 / 0.0), and logical bitwise (AND OR XOR, operands truncated to long). public sealed record NcBinaryExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcBinaryExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcBinaryExpr(NcBinaryOp, NcExpr, NcExpr) Binary operation on two operands. Covers arithmetic (+ - * / / MOD), comparison (EQ NE GT GE LT LE, yielding 1.0 / 0.0), and logical bitwise (AND OR XOR, operands truncated to long). public NcBinaryExpr(NcBinaryOp Op, NcExpr Left, NcExpr Right) Parameters Op NcBinaryOp Left NcExpr Right NcExpr Properties Left public NcExpr Left { get; init; } Property Value NcExpr Op public NcBinaryOp Op { get; init; } Property Value NcBinaryOp Right public NcExpr Right { get; init; } Property Value NcExpr" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcBinaryOp.html", "title": "Enum NcBinaryOp | HiAPI-C# 2025", "summary": "Enum NcBinaryOp Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Binary operators allowed in Fanuc Custom Macro B value expressions. public enum NcBinaryOp 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 Add = 0 a + b. And = 11 a AND b — bitwise AND on operands truncated to long. Non-finite or out-of-range operands surface Arithmetic–MathError. Divide = 3 a / b. Eq = 5 a EQ b — equal; yields 1.0 (true) or 0.0 (false). Ge = 8 a GE b — greater than or equal; yields 1.0 or 0.0. Gt = 7 a GT b — greater than; yields 1.0 or 0.0. Le = 10 a LE b — less than or equal; yields 1.0 or 0.0. Lt = 9 a LT b — less than; yields 1.0 or 0.0. Mod = 4 a MOD b (truncated remainder, sign of a). Multiply = 2 a * b. Ne = 6 a NE b — not equal; yields 1.0 or 0.0. Or = 12 a OR b — bitwise OR on operands truncated to long. Non-finite or out-of-range operands surface Arithmetic–MathError. Subtract = 1 a - b. Xor = 13 a XOR b — bitwise XOR on operands truncated to long. Non-finite or out-of-range operands surface Arithmetic–MathError." }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpr.html", "title": "Class NcExpr | HiAPI-C# 2025", "summary": "Class NcExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll AST root for a Fanuc Custom Macro B value expression. Concrete leaves and combinators sit alongside NcExpressionParser; walking is the job of NcExpressionEvaluator. public abstract record NcExpr : IEquatable Inheritance object NcExpr Implements IEquatable Derived NcBinaryExpr NcFunctionExpr NcIndirectVariableExpr NcLiteralExpr NcUnaryExpr NcVariableExpr 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)" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialect.html", "title": "Enum NcExpressionDialect | HiAPI-C# 2025", "summary": "Enum NcExpressionDialect Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Selects which brand expression grammar a syntax parses value expressions with. All dialects produce the same NcExpr AST and are evaluated by the shared NcExpressionEvaluator — the dialect only decides tokenization/grammar (Fanuc #nnn + brackets vs Siemens Rn/named/$ + parentheses). public enum NcExpressionDialect 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 Fanuc = 1 Fanuc Custom Macro B grammar (NcExpressionParser). Heidenhain = 3 Heidenhain klartext FN grammar (HeidenhainExpressionParser). None = 0 No expression grammar wired — capture syntaxes keep their legacy lexical RHS boundary (regex + TerminateWords). Not a valid value for Dialect, which always evaluates with a concrete grammar. Siemens = 2 Sinumerik grammar (SiemensExpressionParser)." }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialectUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionDialectUtil.html", "title": "Class NcExpressionDialectUtil | HiAPI-C# 2025", "summary": "Class NcExpressionDialectUtil Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Dispatch helpers over NcExpressionDialect so shared syntaxes (VariableEvaluatorSyntax, the assignment/tag capture syntaxes) stay brand-agnostic: they hold a dialect value and route through here instead of hard-coding a parser type. public static class NcExpressionDialectUtil Inheritance object NcExpressionDialectUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods IsVariableKey(NcExpressionDialect, string) Cheap validity gate for variable keys entering the evaluator's lookup chain — rejects obviously-non-variable keys before the chain walk. Keys are produced by the dialect's own parser, so this is defensive. public static bool IsVariableKey(NcExpressionDialect dialect, string key) Parameters dialect NcExpressionDialect key string Returns bool MakePrefixParser(NcExpressionDialect) Materializes a dialect into the optional longest-valid-prefix hook the capture helpers take (GrabTagEqualsValue(ref string, IEnumerable, ExpressionPrefixParser) / GrabTagAssignment(ref string, IEnumerable, string, IEnumerable, ExpressionPrefixParser)); null for None and for dialects without prefix support (legacy lexical capture). public static ExpressionPrefixParser MakePrefixParser(NcExpressionDialect dialect) Parameters dialect NcExpressionDialect Returns ExpressionPrefixParser TryParse(NcExpressionDialect, string, out NcExpr, out string) Full-string parse in the given dialect (the whole source must be one expression). None always fails — callers on the None path never parse. public static bool TryParse(NcExpressionDialect dialect, string source, out NcExpr expr, out string error) Parameters dialect NcExpressionDialect source string expr NcExpr error string Returns bool TryParsePrefix(NcExpressionDialect, string, out int) Longest-valid-prefix parse for parser-delimited RHS capture. Only dialects that support prefix parsing return true; the Fanuc dialect keeps its lexical capture (no known ambiguity to fix) and reports false so callers use their legacy boundary. public static bool TryParsePrefix(NcExpressionDialect dialect, string source, out int consumedLength) Parameters dialect NcExpressionDialect source string consumedLength int Returns bool VariableRefRegex(NcExpressionDialect) Regex matching this dialect's variable-reference tokens inside a raw RHS string. Used only for best-effort same-block forward-reference detection (VariableEvaluator–SameBlockForwardReference); expression evaluation itself goes through the dialect parser. The Siemens pattern covers R-parameters only — named/$ same-block forward references are vanishingly rare in CAM output and go unwarned. public static Regex VariableRefRegex(NcExpressionDialect dialect) Parameters dialect NcExpressionDialect Returns Regex" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionEvaluator.html", "title": "Class NcExpressionEvaluator | HiAPI-C# 2025", "summary": "Class NcExpressionEvaluator Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Walks an NcExpr AST and produces an EvalResult. Resolves #nnn via an IVariableLookup; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as UnsupportedFunctionCode; arity mismatches as ArgumentMismatchCode; division / MOD by zero and domain errors (e.g. SQRT[-1]) as MathErrorCode; vacant operands as VacantErrorCode. Numeric domain & type conventions. All values are IEEE 754 double — there is no separate bool / int type at runtime. Comparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or 0.0 (false), using strict double equality / ordering (NaN compares as IEEE specifies — NaN EQ NaN is 0.0). Logical ops (AND OR XOR) truncate each operand to a 64-bit signed integer (Truncate(double) then cast to long) before applying the bitwise operation; non-finite or out-of-range operands surface MathErrorCode rather than silently wrapping. Truthiness at caller-side IF / WHILE gates is value != 0 — any non-zero value (bit, float, comparator result) is true. public sealed class NcExpressionEvaluator Inheritance object NcExpressionEvaluator Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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) Fields ArgumentMismatchCode Diagnostic code for built-in functions called with the wrong number of arguments. public const string ArgumentMismatchCode = \"BuiltinFunction--ArgumentMismatch\" Field Value string MathErrorCode Diagnostic code for division / MOD by zero and domain errors. public const string MathErrorCode = \"Arithmetic--MathError\" Field Value string UnsupportedFunctionCode Diagnostic code for unrecognised built-in function names. public const string UnsupportedFunctionCode = \"BuiltinFunction--Unsupported\" Field Value string VacantErrorCode Diagnostic code emitted when an evaluated #nnn is vacant. public const string VacantErrorCode = \"Variable--Vacant\" Field Value string Methods Evaluate(NcExpr, IVariableLookup) Evaluates expr against variables. public EvalResult Evaluate(NcExpr expr, IVariableLookup variables) Parameters expr NcExpr variables IVariableLookup Returns EvalResult" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcExpressionParser.html", "title": "Class NcExpressionParser | HiAPI-C# 2025", "summary": "Class NcExpressionParser Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Recursive-descent parser for Fanuc Custom Macro B value expressions. Pure: takes a string, produces an NcExpr AST. Performs no variable lookup and no evaluation. Grammar (lowest precedence at top): expr := or-expr or-expr := and-expr (('OR' | 'XOR') and-expr)* and-expr := cmp-expr ('AND' cmp-expr)* cmp-expr := add-expr (('EQ' | 'NE' | 'GT' | 'GE' | 'LT' | 'LE') add-expr)* add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'MOD') factor)* factor := ('+' | '-')? primary primary := number | '#' integer | '#' '[' expr ']' | '[' expr ']' | ident '[' arglist ']' ('/' '[' expr ']')? arglist := expr (',' expr)* Function names and keyword operators (MOD, EQ NE GT GE LT LE, AND OR XOR) are case-insensitive (SIN = sin, EQ = eq); each keyword requires a non-identifier character on its right boundary so EQ1 is not the EQ operator followed by 1. Whitespace is skipped between tokens. The '/' '[' expr ']' tail captures the dual-bracket form Fanuc uses for ATAN[a]/[b]; non-ATAN callers that happen to use it produce a function with an extra arg, which the evaluator rejects with an arity error. Operator precedence intentionally puts boolean / logical layers below arithmetic so #1 + 1 GT 0 parses as (#1 + 1) GT 0 and #1 GT 0 AND #2 LT 10 parses as (#1 GT 0) AND (#2 LT 10), matching the Fanuc Custom Macro B spec for IF [..] GOTO / IF [..] THEN / WHILE [..] DO conditions. public sealed class NcExpressionParser Inheritance object NcExpressionParser Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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) Methods TryParse(string, out NcExpr, out string) Parses source. On success, expr is the AST and error is null. On failure, expr is null and error describes the syntax problem. public static bool TryParse(string source, out NcExpr expr, out string error) Parameters source string expr NcExpr error string Returns bool" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcFunctionExpr.html", "title": "Class NcFunctionExpr | HiAPI-C# 2025", "summary": "Class NcFunctionExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b]. public sealed record NcFunctionExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcFunctionExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcFunctionExpr(string, IReadOnlyList) Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b]. public NcFunctionExpr(string Name, IReadOnlyList Args) Parameters Name string Args IReadOnlyList Properties Args public IReadOnlyList Args { get; init; } Property Value IReadOnlyList Name public string Name { get; init; } Property Value string" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcIndirectVariableExpr.html", "title": "Class NcIndirectVariableExpr | HiAPI-C# 2025", "summary": "Class NcIndirectVariableExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Indirect variable reference #[expr]. The inner expression is evaluated and truncated toward zero to obtain an integer; the lookup key is then Prefix concatenated with that integer (e.g. Prefix=\"#\", computed 124 → \"#124\"). public sealed record NcIndirectVariableExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcIndirectVariableExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcIndirectVariableExpr(string, NcExpr) Indirect variable reference #[expr]. The inner expression is evaluated and truncated toward zero to obtain an integer; the lookup key is then Prefix concatenated with that integer (e.g. Prefix=\"#\", computed 124 → \"#124\"). public NcIndirectVariableExpr(string Prefix, NcExpr Index) Parameters Prefix string Index NcExpr Properties Index public NcExpr Index { get; init; } Property Value NcExpr Prefix public string Prefix { get; init; } Property Value string" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcLiteralExpr.html", "title": "Class NcLiteralExpr | HiAPI-C# 2025", "summary": "Class NcLiteralExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Numeric literal (e.g. 1.5, 15., .5, 1e-3). public sealed record NcLiteralExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcLiteralExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcLiteralExpr(double) Numeric literal (e.g. 1.5, 15., .5, 1e-3). public NcLiteralExpr(double Value) Parameters Value double Properties Value public double Value { get; init; } Property Value double" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryExpr.html", "title": "Class NcUnaryExpr | HiAPI-C# 2025", "summary": "Class NcUnaryExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Unary + or - applied to an operand. public sealed record NcUnaryExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcUnaryExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcUnaryExpr(NcUnaryOp, NcExpr) Unary + or - applied to an operand. public NcUnaryExpr(NcUnaryOp Op, NcExpr Operand) Parameters Op NcUnaryOp Operand NcExpr Properties Op public NcUnaryOp Op { get; init; } Property Value NcUnaryOp Operand public NcExpr Operand { get; init; } Property Value NcExpr" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcUnaryOp.html", "title": "Enum NcUnaryOp | HiAPI-C# 2025", "summary": "Enum NcUnaryOp Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Unary operators allowed in Fanuc Custom Macro B value expressions. public enum NcUnaryOp 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 Minus = 1 Negation: -expr. Plus = 0 Identity: +expr." }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.NcVariableExpr.html", "title": "Class NcVariableExpr | HiAPI-C# 2025", "summary": "Class NcVariableExpr Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Direct variable reference; Key is the raw source token (e.g. \"#124\") passed verbatim to Get(string). public sealed record NcVariableExpr : NcExpr, IEquatable, IEquatable Inheritance object NcExpr NcVariableExpr Implements IEquatable IEquatable Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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 NcVariableExpr(string) Direct variable reference; Key is the raw source token (e.g. \"#124\") passed verbatim to Get(string). public NcVariableExpr(string Key) Parameters Key string Properties Key public string Key { get; init; } Property Value string" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.VolatileVariableLookup.html", "title": "Class VolatileVariableLookup | HiAPI-C# 2025", "summary": "Class VolatileVariableLookup Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Assembly HiMech.dll Reads Fanuc-style non-retained common variables (#100-#499) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Single-step lookup: VolatileVariableReadingSyntax already dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — must be on the current block (when this lookup runs after the reader) or on the immediately previous block (when this lookup runs before the reader on the same block, which is the Fanuc preset's order — evaluator first, reader second). No arbitrary walk-back: such a walk would be defensive overkill given the reader's carry guarantee. Stateless and dependency-free — instances are interchangeable. Reads stay decoupled from the reader (read side here; write side in the reader). public class VolatileVariableLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object VolatileVariableLookup Implements IRuntimeVariableLookup IMakeXmlSource 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) Constructors VolatileVariableLookup() Default constructor. public VolatileVariableLookup() VolatileVariableLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public VolatileVariableLookup(XElement src) Parameters src XElement Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Evaluation.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Evaluation Classes LocalVariableLookup Reads Fanuc-style local macro variables (#1-#33) from Vars.Local on the current SyntaxPiece JSON, falling back to the immediately previous block when they share the same MacroFrame id. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Two-step lookup (mirrors VolatileVariableLookup): the current block sees writes that FanucMacroCallSyntax stamped at inline time (the call-line argument bindings) and writes that FanucLocalVariableReadingSyntax applied on this block before the lookup runs; the previous block (frame-checked) supplies body-internal writes from the prior block in the same macro frame. Looking past the previous block is unnecessary because the reader carries forward block-by-block within a frame. Frame isolation via MacroFrame: a previous block whose frame id differs from the current block's is skipped — a macro body's body-internal locals are invisible to the caller after return, and the caller's main-frame locals are invisible inside the macro. M98/M198 subprogram inlining (SubProgramCallSyntax) deliberately does not stamp MacroFrame on its inlined blocks, so the callee inherits the caller's frame and sees the caller's locals — matching real Fanuc M98 semantics. Stateless and dependency-free — instances are interchangeable. NcBinaryExpr Binary operation on two operands. Covers arithmetic (+ - * / / MOD), comparison (EQ NE GT GE LT LE, yielding 1.0 / 0.0), and logical bitwise (AND OR XOR, operands truncated to long). NcExpr AST root for a Fanuc Custom Macro B value expression. Concrete leaves and combinators sit alongside NcExpressionParser; walking is the job of NcExpressionEvaluator. NcExpressionDialectUtil Dispatch helpers over NcExpressionDialect so shared syntaxes (VariableEvaluatorSyntax, the assignment/tag capture syntaxes) stay brand-agnostic: they hold a dialect value and route through here instead of hard-coding a parser type. NcExpressionEvaluator Walks an NcExpr AST and produces an EvalResult. Resolves #nnn via an IVariableLookup; built-in function names are matched case-insensitively against a fixed table. Phase-1 supports: SIN COS TAN ASIN ACOS ATAN SQRT ABS ROUND FIX FUP LN EXP POW. Trigonometric arguments and results are in degrees, matching Fanuc Custom Macro B convention. Unknown function names surface as UnsupportedFunctionCode; arity mismatches as ArgumentMismatchCode; division / MOD by zero and domain errors (e.g. SQRT[-1]) as MathErrorCode; vacant operands as VacantErrorCode. Numeric domain & type conventions. All values are IEEE 754 double — there is no separate bool / int type at runtime. Comparison ops (EQ NE GT GE LT LE) yield 1.0 (true) or 0.0 (false), using strict double equality / ordering (NaN compares as IEEE specifies — NaN EQ NaN is 0.0). Logical ops (AND OR XOR) truncate each operand to a 64-bit signed integer (Truncate(double) then cast to long) before applying the bitwise operation; non-finite or out-of-range operands surface MathErrorCode rather than silently wrapping. Truthiness at caller-side IF / WHILE gates is value != 0 — any non-zero value (bit, float, comparator result) is true. NcExpressionParser Recursive-descent parser for Fanuc Custom Macro B value expressions. Pure: takes a string, produces an NcExpr AST. Performs no variable lookup and no evaluation. Grammar (lowest precedence at top): expr := or-expr or-expr := and-expr (('OR' | 'XOR') and-expr)* and-expr := cmp-expr ('AND' cmp-expr)* cmp-expr := add-expr (('EQ' | 'NE' | 'GT' | 'GE' | 'LT' | 'LE') add-expr)* add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'MOD') factor)* factor := ('+' | '-')? primary primary := number | '#' integer | '#' '[' expr ']' | '[' expr ']' | ident '[' arglist ']' ('/' '[' expr ']')? arglist := expr (',' expr)* Function names and keyword operators (MOD, EQ NE GT GE LT LE, AND OR XOR) are case-insensitive (SIN = sin, EQ = eq); each keyword requires a non-identifier character on its right boundary so EQ1 is not the EQ operator followed by 1. Whitespace is skipped between tokens. The '/' '[' expr ']' tail captures the dual-bracket form Fanuc uses for ATAN[a]/[b]; non-ATAN callers that happen to use it produce a function with an extra arg, which the evaluator rejects with an arity error. Operator precedence intentionally puts boolean / logical layers below arithmetic so #1 + 1 GT 0 parses as (#1 + 1) GT 0 and #1 GT 0 AND #2 LT 10 parses as (#1 GT 0) AND (#2 LT 10), matching the Fanuc Custom Macro B spec for IF [..] GOTO / IF [..] THEN / WHILE [..] DO conditions. NcFunctionExpr Built-in function call like SIN[x], SQRT[x], ATAN[a]/[b]. NcIndirectVariableExpr Indirect variable reference #[expr]. The inner expression is evaluated and truncated toward zero to obtain an integer; the lookup key is then Prefix concatenated with that integer (e.g. Prefix=\"#\", computed 124 → \"#124\"). NcLiteralExpr Numeric literal (e.g. 1.5, 15., .5, 1e-3). NcUnaryExpr Unary + or - applied to an operand. NcVariableExpr Direct variable reference; Key is the raw source token (e.g. \"#124\") passed verbatim to Get(string). VolatileVariableLookup Reads Fanuc-style non-retained common variables (#100-#499) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through to the next lookup for out-of-range keys. Single-step lookup: VolatileVariableReadingSyntax already dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — must be on the current block (when this lookup runs after the reader) or on the immediately previous block (when this lookup runs before the reader on the same block, which is the Fanuc preset's order — evaluator first, reader second). No arbitrary walk-back: such a walk would be defensive overkill given the reader's carry guarantee. Stateless and dependency-free — instances are interchangeable. Reads stay decoupled from the reader (read side here; write side in the reader). Structs EvalResult Outcome of evaluating an NcExpr. Either a successful numeric value, or a failure with an error code matching the diagnostic catalogue used by reading / evaluator syntaxes. Interfaces IRuntimeVariableLookup Stateless variable lookup that needs per-block runtime context — the current SyntaxPiece node (for Previous traceback into runtime-state sections like MachineCoordinateState / ProgramXyz) and the dependency list (so the lookup can read from sibling dependencies without holding a static reference). Distinguished from IVariableLookup: that one is for long-lived dependencies that already hold their own data (parameter tables, tool-offset wrappers, retained-variable tables) and need no block context. IRuntimeVariableLookup is for context-sensitive resolutions configured declaratively on RuntimeVariableLookups. Implementations should be brand-specific (e.g. Fanuc #5001-#5043 position reads) and return null for keys outside their range so the evaluator's chain can fall through to the next lookup. Implementations are XML-serialised as part of VariableEvaluatorSyntax's round-trip: each impl exposes a static XName, registers itself with Generators, and implements MakeXmlSource(string, string, bool). Since impls are stateless, the typical body is just an empty element carrying the type name; brand identity is restored by XFactory dispatch. IVariableLookup Resolves a Custom Macro B variable reference to its current numeric value, or null for vacant (Fanuc ) and out-of-scope alike. The key is the raw source token — Fanuc \"#124\", Heidenhain \"Q1\", Siemens \"R1\" — so the interface itself is brand-agnostic. Implementations are typically narrow (one per id range / per brand prefix) and parse the prefix locally; chain them at the call site by trying each in priority order until one returns a non-null value. A returned null is treated by NcExpressionEvaluator as vacant and surfaces as a Variable--Vacant failure when the value is consumed in arithmetic context. Enums NcBinaryOp Binary operators allowed in Fanuc Custom Macro B value expressions. NcExpressionDialect Selects which brand expression grammar a syntax parses value expressions with. All dialects produce the same NcExpr AST and are evaluated by the shared NcExpressionEvaluator — the dialect only decides tokenization/grammar (Fanuc #nnn + brackets vs Siemens Rn/named/$ + parentheses). NcUnaryOp Unary operators allowed in Fanuc Custom Macro B value expressions." }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucConditionReader.html", "title": "Class FanucConditionReader | HiAPI-C# 2025", "summary": "Class FanucConditionReader Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. public static class FanucConditionReader Inheritance object FanucConditionReader Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ReadCondition(JsonNode) Maps a post-evaluation condition JsonNode to a display string + tri-state truthy outcome. See class XmlDoc for the three states' definitions. public static (string Display, bool? Truthy) ReadCondition(JsonNode node) Parameters node JsonNode Returns (string Display, bool? Truthy)" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucGotoSyntax.html", "title": "Class FanucGotoSyntax | HiAPI-C# 2025", "summary": "Class FanucGotoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. public class FanucGotoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucGotoSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucGotoSyntax() Parameterless instance with default helper syntaxes. public FanucGotoSyntax() FanucGotoSyntax(XElement, string, IProgress) Loads hosted helper syntaxes from XML produced by MakeXmlSource(string, string, bool). The wrapper contains one child element per probe syntax in source order; an absent wrapper falls back to the default list. public FanucGotoSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of helper syntaxes run on each candidate block during the label scan before the IndexNote.Number == target predicate is checked. The defaults match Fanuc — QuoteCommentSyntax strips parenthesised comments so a commented-out (N100) never matches, then HeadIndexSyntax with symbol “N” extracts the head index into IndexNote.Number. Exposed as a list (rather than two fixed properties) so API customers can insert additional probe syntaxes — for example a TailCommentSyntax for ;-style end-of-block comments alongside the parenthesised form, or a BlockSkipSyntax to skip /-prefixed blocks from the label-scan results. Order matters: comment-strippers before the head-index parser, the index parser last (so its output reflects the post-strip text). public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucIfThenSyntax.html", "title": "Class FanucIfThenSyntax | HiAPI-C# 2025", "summary": "Class FanucIfThenSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. public class FanucIfThenSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucIfThenSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucIfThenSyntax() Parameterless instance (no XML state). public FanucIfThenSyntax() FanucIfThenSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucIfThenSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucLocalVariableReadingSyntax.html", "title": "Class FanucLocalVariableReadingSyntax | HiAPI-C# 2025", "summary": "Class FanucLocalVariableReadingSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. public class FanucLocalVariableReadingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucLocalVariableReadingSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucLocalVariableReadingSyntax() Default constructor. public FanucLocalVariableReadingSyntax() FanucLocalVariableReadingSyntax(XElement) Loads from XML produced by MakeXmlSource(string, string, bool); no state. public FanucLocalVariableReadingSyntax(XElement src) Parameters src XElement Fields LocalMax Inclusive upper bound of the local range (#33). public const int LocalMax = 33 Field Value int LocalMin Inclusive lower bound of the local range (#1). public const int LocalMin = 1 Field Value int Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroArgumentMap.html", "title": "Class FanucMacroArgumentMap | HiAPI-C# 2025", "summary": "Class FanucMacroArgumentMap Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. public static class FanucMacroArgumentMap Inheritance object FanucMacroArgumentMap Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields Map Fanuc Custom Macro B Type-I letter-to-local-id map. Single-value per letter; Type-II's repeating I_J_K_ array binding is not modelled here. public static readonly IReadOnlyDictionary Map Field Value IReadOnlyDictionary" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucMacroCallSyntax.html", "title": "Class FanucMacroCallSyntax | HiAPI-C# 2025", "summary": "Class FanucMacroCallSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class FanucMacroCallSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucMacroCallSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucMacroCallSyntax() Parameterless instance for bundle composition (no XML state). public FanucMacroCallSyntax() FanucMacroCallSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucMacroCallSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.SyntaxPhase.html", "title": "Enum FanucModalMacroSyntax.SyntaxPhase | HiAPI-C# 2025", "summary": "Enum FanucModalMacroSyntax.SyntaxPhase Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class. public enum FanucModalMacroSyntax.SyntaxPhase 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 Expansion = 1 PostLogic phase: on every motion-producing block (signalled by MotionEvent presence) that sits inside an active G66 modal AND lives in the main frame (MacroFrame == 0), inlines the modal macro body — same call mechanism as FanucMacroCallSyntax. Setup = 0 Evaluation phase: captures G66 setup / G67 cancel edges into FanucModalMacro and carries the section forward block-to-block." }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucModalMacroSyntax.html", "title": "Class FanucModalMacroSyntax | HiAPI-C# 2025", "summary": "Class FanucModalMacroSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. public class FanucModalMacroSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucModalMacroSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucModalMacroSyntax() Parameterless instance (defaults to Setup). public FanucModalMacroSyntax() FanucModalMacroSyntax(XElement) XML ctor. Reads child element; legacy project files without it default to Setup (the pre-expansion behaviour). public FanucModalMacroSyntax(XElement src) Parameters src XElement Root element named XName. Properties Expansion Factory: PostLogic-bundle instance that performs implicit motion-block expansion. public static FanucModalMacroSyntax Expansion { get; } Property Value FanucModalMacroSyntax Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string Phase Pipeline phase this instance runs in. Defaults to Setup. public FanucModalMacroSyntax.SyntaxPhase Phase { get; set; } Property Value FanucModalMacroSyntax.SyntaxPhase Setup Factory: Evaluation-bundle instance that handles G66/G67 setup + carry. public static FanucModalMacroSyntax Setup { get; } Property Value FanucModalMacroSyntax XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucSystemControlVariableSyntax.html", "title": "Class FanucSystemControlVariableSyntax | HiAPI-C# 2025", "summary": "Class FanucSystemControlVariableSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. public class FanucSystemControlVariableSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucSystemControlVariableSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors FanucSystemControlVariableSyntax() Default constructor. public FanucSystemControlVariableSyntax() FanucSystemControlVariableSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public FanucSystemControlVariableSyntax(XElement src) Parameters src XElement Fields SystemControlMax Inclusive upper bound of the system-control range (#3999). public const int SystemControlMax = 3999 Field Value int SystemControlMin Inclusive lower bound of the system-control range (#3000). public const int SystemControlMin = 3000 Field Value int UnsupportedDiagId Diagnostic id emitted for every consumed #3000-#3999 assignment — recognised by the parser, ignored by simulation. public const string UnsupportedDiagId = \"FanucSystemControl--Unsupported\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.FanucWhileDoSyntax.html", "title": "Class FanucWhileDoSyntax | HiAPI-C# 2025", "summary": "Class FanucWhileDoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Assembly HiMech.dll Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the anchored LabelScanUtil overload with ForwardFromAnchor from the WHILE host line — sequential loops reuse LoopIds, so only candidates below the host line may match. The probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. public class FanucWhileDoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object FanucWhileDoSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Remarks Worked Example — Three-iteration WHILE [..] DO m ... END m Given this Custom Macro B source: #100 = 0 WHILE [#100 LT 3] DO 1 #100 = #100 + 1 END 1 X5 Each block flows through the runtime as below. The WhileFrames lifeline represents the per-block active-loop state carried block-to-block by the modal-carry pipeline; the END block consults it to find the WHILE line to reverse-jump to. The runaway-loop counter ticks on every successful END reverse-jump and suppresses further jumps above the configured iteration limit. sequenceDiagram participant W as WHILE block participant B as body participant E as END block participant X as X5 participant F as WhileFrames Note over F: empty Note over W: iter 1: cond=true (0 LT 3) W->>F: push {LoopId 1, BeginLineNo} W->>B: fall through B->>E: Note over E: counter 0 to 1 (≤Max) E-->>W: reverse jump Note over W: iter 2: cond=true (1 LT 3) Note over W,F: frame exists, skip push W->>B: fall through B->>E: Note over E: counter 1 to 2 (≤Max) E-->>W: reverse jump Note over W: iter 3: cond=true (2 LT 3) W->>B: B->>E: Note over E: counter 2 to 3 (≤Max) E-->>W: reverse jump Note over W: iter 4: cond=false (3 LT 3) W->>F: pop LoopId 1 Note over W: forward jump past END W->>X: After the loop exits, X5 executes with #100 = 3 in Vars.Volatile. Constructors FanucWhileDoSyntax() Parameterless instance. public FanucWhileDoSyntax() FanucWhileDoSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public FanucWhileDoSyntax(XElement src) Parameters src XElement Fields BeginLineNoKey Schema field inside each WhileFrames entry: the WHILE block's file-line index. public const string BeginLineNoKey = \"BeginLineNo\" Field Value string WhileFramesKey Top-level JSON key for the active-loop frame dict. public const string WhileFramesKey = \"WhileFrames\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Fanuc.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Fanuc Classes FanucConditionReader Shared polymorphic reader for Fanuc Custom Macro B conditional gate expressions (IF [...] GOTO, IF [...] THEN, WHILE [...] DO m). The condition node is read post-evaluation — VariableEvaluatorSyntax's pass-2 tree walk has already substituted the original expression string with a numeric JsonValue when evaluation succeeded; this helper maps that node to a tri-state truthy outcome plus a display form for diagnostics. Three states, mapping directly to the ConditionEvaluated: true | false | null stamp shape used by all three consumers (see FanucGotoSyntax, FanucIfThenSyntax, and the WHILE-loop syntax): Truthy = true — node is a finite non-zero numeric; gate fires. Truthy = false — node is a finite numeric equal to zero; gate falls through silently. Truthy = null — node is null, still a string (evaluator failed), or non-finite double (NaN / ±∞); gate falls through and the caller emits its own --ConditionNotEvaluated warning. The Display form is the human-readable expression text for diagnostic messages. For resolved numerics it is the value formatted via InvariantCulture; for unresolved strings it is the original expression text. Diagnostics build their own message text — the helper just provides the source string so the caller can compose \"IF [] GOTO ...\" etc. Callers typically DeepClone() the original node before passing in here, then again before stamping back, so removing the parsing section and writing the host-level stamp can happen in any order without dangling references. FanucGotoSyntax Resolves Fanuc Custom Macro B GOTO control flow. Triggered by Parsing.FanucGoto (written by FanucGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the matching N{target} label. The host block stays materialised (so cache dumps still see the GOTO call site); execution naturally continues from the new source once the pipeline pulls the next block. Both unconditional GOTO and conditional IF [] GOTO are implemented. The conditional form leans on VariableEvaluatorSyntax's pass-2 tree walk to substitute Parsing.FanucGoto.Condition with a numeric JsonValue when the expression evaluates successfully — ReadCondition(JsonNode) then reads the node polymorphically. Truthy non-zero fires the redirect; zero falls through silently; a still-string (unresolved) Condition emits FanucGoto--ConditionNotEvaluated and falls through. Pipeline placement: tail of the Fanuc / Mazak / Syntec Evaluation bundle. Must run after VariableEvaluatorSyntax so any # in the target N (e.g. GOTO #1) has been substituted to a literal in Parsing.FanucGoto.N. Reader syntaxes (VolatileVariableReadingSyntax etc.) are independent — they touch Parsing.Assignments, not Parsing.FanucGoto. Label scanning uses two hosted helper syntaxes — CommentSyntax and IndexSyntax — applied to each candidate block in turn so the predicate IndexNote.Number == target matches the same way the Parsing bundle would. Both are XML-IO-able so API customers can swap them (e.g. for a controller variant using ;-style comments or a different head symbol). Defaults match Fanuc: QuoteCommentSyntax and HeadIndexSyntax with the \"N\" symbol. FanucIfThenSyntax Resolves Fanuc Custom Macro B IF [] THEN single-block conditionals. Triggered by Parsing.FanucIfThen (written by FanucIfThenParsingSyntax); reads the now-resolved Condition node, decides whether to fire, and on fire lifts the parsing-stage PendingAssignments sub-object into the canonical Parsing.Assignments bucket so the brand-specific reader syntaxes downstream route each entry to its store the same way they would handle an unconditional #nnn = on a normal block. Unlike FanucGotoSyntax there is no source splice, no label scan, no iteration watchdog — the spec restricts the body to the current block. The host block is preserved either way (the stamped FanucIfThen section on the host's top-level JSON keeps the IF-THEN call site visible to cache dumps and diagnostics, with Applied flipped true only on a successful fire). Pipeline placement: in the Evaluation bundle after VariableEvaluatorSyntax (so the Condition expression has been substituted in place by pass-2 tree walk, and each PendingAssignments RHS string has been evaluated to a numeric JsonValue) and before the reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableReadingSyntax, FanucLocalVariableReadingSyntax, FanucSystemControlVariableSyntax) — that ordering lets the lifted entries reach the readers as if they had been written by TagAssignmentSyntax on a normal block. Three condition outcomes mirror the FanucGotoSyntax.ReadCondition shape: Truthy non-zero → lift assignments, stamp Applied=true. Truthy zero → fall through silently, Applied=false. Truthy null (evaluator failed, condition still a string or non-finite) → warn FanucIfThen--ConditionNotEvaluated, do not lift, Applied=false. A truthy condition with no PendingAssignments (body did not parse as one or more assignments — e.g. a G-code body, currently unsupported) warns FanucIfThen--UnsupportedBody and falls through. FanucLocalVariableReadingSyntax Routes literal-RHS assignments to Fanuc-style local macro variables (#1-#33) from Parsing.Assignments into Vars.Local on the current block, carrying the previous block's Vars.Local dict forward when both blocks share the same MacroFrame id. Mirrors VolatileVariableReadingSyntax for the #100-#499 range, with two differences: Carry is gated by MacroFrame equality, so a caller block after a G65 return does not inherit the macro body's final locals. Writes outside a macro frame (a main-program block doing #11 = 5) emit LocalVariable--MainFrameWriteUnsupported and consume the assignment without persisting — real Fanuc allows main-frame local writes but this simulator only tracks locals inside G65/G66 call frames; surfacing the gap as a diagnostic is more informative than a silent UnconsumedCheckSyntax hit. Pipeline placement: Evaluation bundle, after VariableEvaluatorSyntax (so any expression RHS such as #11 = #1 + 1 has already been normalised to a literal by the time this reader runs) and after the other range readers (RetainedCommonVariableReadingSyntax, VolatileVariableReadingSyntax) so they all share a similar Reader-stage shape. Only literal numeric RHS values are consumed here; non-literal entries (which can only persist if VariableEvaluatorSyntax failed to resolve them) are left untouched and surface via the evaluator's own VariableExpression--Unevaluated diagnostic plus UnconsumedCheckSyntax. FanucMacroArgumentMap Fanuc Custom Macro B Type-I argument-letter map: which call-line letter binds to which Vars.Local id (#1-#26) inside the macro body. Reserved letters (G, L, N, O, P) are absent — they are consumed by the call itself, not passed through. Used by FanucMacroCallSyntax (G65, one-shot) and FanucModalMacroSyntax (G66, modal) to translate the argument letters captured by G65Syntax / G66Syntax into the #nnn bindings the macro body's expression evaluator can read. FanucMacroCallSyntax Inlines a Fanuc Custom Macro B one-shot call (G65 P_ L_ [letter value …]) into the source layer and binds the call-line argument letters to Vars.Local #1-#26 per the Type-I map (see FanucMacroArgumentMap). Every inlined block carries the binding dict, a clone of the FanucMacroCall diagnostic record, and a MacroFrame id stamp — so LocalVariableLookup resolves arg references in a single-block lookup, a cache dump landing on any block immediately shows which call it belongs to, and downstream FanucLocalVariableReadingSyntax carries body-internal #1-#33 writes forward only within the same frame. The host block itself records FanucMacroCall but stays in the caller's frame (no MacroFrame stamp) and emits no motion act; after the macro body's last inlined block the pipeline continues naturally into the caller's next block (the inlined pieces sit ahead of the host block's successor in layers[0]). Frame isolation works on two layers. Statically, caller blocks have no MacroFrame stamp (frame id 0 by Get(JsonObject)), so the inlined frame ids (allocated fresh per L-repetition) never collide with main. Dynamically, LocalVariableLookup and FanucLocalVariableReadingSyntax compare frame ids before carrying any Vars.Local entry across a block boundary — a macro body's body-internal writes therefore stay inside the macro and never leak back into the caller's frame. Filename lookup mirrors SubProgramCallSyntax: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. The lookup root is InternalFolder (G65 has no \"external storage\" variant; M198's external root is M98/M198-only). L > 1 inlines the same macro L times in series. Each repetition is a fresh segmentation pass (so each block gets its own SyntaxPiece JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared) and gets a fresh FileIndex (so (FileIndex, LineIndex) pairs stay unique across the L-copies of the same source lines). Pipeline placement: ahead of SubProgramCallSyntax inside the Fanuc Evaluation BundleSyntax so a hypothetical G65 P_ + M98 P_ on the same block expands the G65 macro first (would be an unusual but legal composition). Detection is on the Parsing.G65 sub-object written by G65Syntax (a ParameterizedFlagSyntax) — the keyword \"G65\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. FanucModalMacroSyntax Handles Fanuc Custom Macro B modal-call lifecycle (G66 setup, G67 cancel, and per-motion-block implicit macro invocation). The same class is registered twice in the pipeline via Phase — once in the Evaluation bundle (Setup, captures G66/G67 edges and carries the FanucModalMacro state block-to-block) and once in the PostLogic bundle (Expansion, on every motion block within an active G66 modal, inlines the macro body via the same mechanism FanucMacroCallSyntax uses). Keeping both phases in one class makes the pairing visually explicit: readers see \"G66 in one file\" and the two methods (DoSetup, DoExpansion) make the lifecycle obvious. The two factory helpers (Setup, Expansion) mirror the ModalCarrySyntax.Logic / .PostLogic pattern already in the codebase. FanucSystemControlVariableSyntax Consumes Fanuc-style system-control variable assignments (#3000-#3999) — alarm trigger (#3000), millisecond and hour clocks (#3001 / #3002), single-block / feed-hold bypass flags (#3003 / #3004), pause-with-message (#3006), mirror-image flags (#3007), date / time (#3011 / #3012), tool-life data (#3030 / #3032), etc. Every id in this range is a controller-side state variable — its authoritative value lives on the real hardware (RTC, alarm bus, override switches, …) and an NC write at most triggers a side effect (clock reset, alarm raise, message-pause prompt). Offline simulation has none of that machinery, so this syntax does not emulate the effect. Instead it: records the literal write on the block JSON under Vars.SystemControl (round-trip and cache-dump visibility); emits a FanucSystemControl--Unsupported UnsupportedMessage(ISentenceCarrier, string, string, object) so the user knows the assignment was recognised but its controller-side effect is not simulated. Message-severity (not Warning) because these writes are safe no-ops offline — every consumed assignment would emit a Warning per block, which would be noisy without signalling anything the user must act on; removes the entry from Parsing.Assignments so it does not re-surface as a generic Parsing--Unconsumed diagnostic. The dictionary carries forward block-by-block (same dict-merge pattern as VolatileVariableReadingSyntax) so a downstream consumer can read the most recent recorded value via SyntaxPiece linkage. Only literal numeric RHS values are consumed; non-literal RHS (e.g. #3002 = #500) is left in Parsing.Assignments for VariableEvaluatorSyntax to resolve, mirroring the retained / volatile reading syntaxes. Fanuc-family only — Siemens uses named system variables ($AC_TIME, $A_DAY, …) and Heidenhain uses FN18: SYSREAD; neither flows through Parsing.Assignments.#nnn. FanucWhileDoSyntax Resolves Fanuc Custom Macro B WHILE [..] DO m ... END m bounded loops. Two phrases dispatched by Term: WHILE [..] DO m — entry: reads the resolved condition via FanucConditionReader, manages the per-LoopId frame in the top-level WhileFrames dict, and either falls through (truthy) or forward-jumps past the matching END m (falsy / unresolved). END m — terminator: unconditionally reverse-jumps to the WHILE block recorded in WhileFrames[LoopId].BeginLineNo so the next iteration re-evaluates the entry condition. Increments the per-loop iteration counter on FanucWhileDoIterationDependency; suppresses the redirect above MaxIterationsPerLoopId. WhileFrames carrier. The top-level WhileFrames JSON section is a JsonObject keyed by LoopId-as-string whose values are { BeginLineNo: int }. Frames are pushed when a WHILE block first encounters a truthy condition with no existing frame for that LoopId; popped when the condition becomes falsy or unresolved; otherwise carried forward unchanged by ModalCarrySyntax's Logic tracked-key list. Nested loops with distinct LoopIds coexist in the same dict; same-LoopId nesting (spec-undefined) overwrites and is not given special handling. Pipeline placement. Evaluation bundle, after the variable readers (defensive — WHILE/END blocks per spec do not carry assignments, but the placement is consistent with GOTO). Must run after VariableEvaluatorSyntax so the condition string has been substituted to numeric. Forward scan to matching END m uses the anchored LabelScanUtil overload with ForwardFromAnchor from the WHILE host line — sequential loops reuse LoopIds, so only candidates below the host line may match. The probe runs the brand-default FanucWhileDoParsingSyntax on each candidate, predicate matches on Parsing.FanucWhileDo.Term == \"END\" && LoopId == target. Reverse scan to WHILE BeginLineNo does not need a label predicate — the BeginLineNo is a known file-line index recorded in the active frame, so the END side re-segments the file from the top and returns the slice starting at the first piece whose CharIndexSegment.Begin.LineIndex matches. Enums FanucModalMacroSyntax.SyntaxPhase Identifies which pipeline phase the instance runs in. The two values correspond to the Evaluation-bundle and PostLogic-bundle registrations of this same syntax class." }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainExpressionParser.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainExpressionParser.html", "title": "Class HeidenhainExpressionParser | HiAPI-C# 2025", "summary": "Class HeidenhainExpressionParser Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Recursive-descent parser for Heidenhain klartext FN value expressions. Produces the same NcExpr AST as the Fanuc NcExpressionParser so NcExpressionEvaluator is reused unchanged. Pure: no variable lookup, no evaluation. Grammar (lowest precedence at top): expr := add-expr add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'DIV') factor)* factor := ('+' | '-')? primary primary := number | '(' expr ')' | 'Q' digits | 'QR' digits | 'QL' digits | 'QS' digits | func primary → prefix form \"SQRT 4\" (FN 5) | func '(' arglist ')' → paren form \"SQRT(Q2)\" Dialect notes: Q-family tokens are canonicalised to uppercase (q1 → Q1) so Parsing.Assignments keys, table lookups and same-block references agree. (Caveat shared with the Siemens R canonicalisation: a lowercase-captured Assignments key keeps its raw spelling in the evaluator's same-block dictionary, so a later same-block reference resolves to the pre-block value instead — klartext posts emit uppercase, corpus-zero.) DIV is the FN 4 division spelling (FN 4: Q4 = +8 DIV +Q2) and maps onto the shared divide operator. Function names are limited to the klartext math vocabulary (SQRT SIN COS TAN ASIN ACOS ATAN ABS INT FRAC SGN NEG LN LOG EXP); INT normalises to the evaluator's FIX (truncate toward zero), names the shared evaluator lacks (FRAC/SGN/NEG/LOG) parse fine and fail soft at evaluation. Any other identifier is a parse error — klartext has no named variables, and rejecting bare words keeps the evaluator's Parsing-tree pass from touching non-expression strings (MM, MAX, tool-axis letters). Comparison/logical operators are deliberately absent: FN 9–12 jump conditions are pre-normalised by HeidenhainGotoParsingSyntax into separate value operands plus a shared comparison word — never parsed here. public sealed class HeidenhainExpressionParser Inheritance object HeidenhainExpressionParser Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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) Methods TryParse(string, out NcExpr, out string) Parses source requiring the whole string to be consumed. On success, expr is the AST and error is null. On failure, expr is null and error describes the syntax problem. public static bool TryParse(string source, out NcExpr expr, out string error) Parameters source string expr NcExpr error string Returns bool TryParsePrefix(string, out NcExpr, out int, out string) Parses the longest valid expression prefix of source. On success, consumedLength is the number of leading characters that form the expression (trailing text from that offset on is the caller's to keep, e.g. as remaining UnparsedText). Fails only when not even a prefix parses — callers fall back to their legacy lexical capture in that case. This is the parser-delimited RHS boundary for Q1 = Q1 - 1-style assignments (whitespace inside the expression, trailing non-expression words split correctly). public static bool TryParsePrefix(string source, out NcExpr expr, out int consumedLength, out string error) Parameters source string expr NcExpr consumedLength int error string Returns bool" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainGotoSyntax.html", "title": "Class HeidenhainGotoSyntax | HiAPI-C# 2025", "summary": "Class HeidenhainGotoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Resolves Heidenhain FN 9–12 conditional jumps — the FanucGotoSyntax pattern with klartext LBL targets and a structural condition. Triggered by Parsing.HeidenhainGoto (written by HeidenhainGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the target label line (inclusive — the definition marker is consumed by HeidenhainSubProgramReturnSyntax downstream). The condition is compared here, not by the expression grammar: the parsing owner pre-normalised the statement into two value operands plus a shared comparison word (the P2 decision that keeps the Heidenhain dialect free of comparison/logical layers). Each operand is read polymorphically — numeric (typed at capture for literals, or substituted in place by VariableEvaluatorSyntax for resolved Q references) fires the comparison; a still-string operand means unresolved (the FN 18 SYSREAD target staying vacant is the designed source) and the jump warns HeidenhainGoto--ConditionNotEvaluated and falls through — no fabricated values, both endings stay fail-soft. The label scan is whole-file first-match through the runner's own segmenter (SegmenterDependency) with the P4 call-path probe stack — klartext has no direction mnemonic and a TNC label is unique per program, so the anchored directional overloads would add a distinction the language does not have. Numeric labels canonicalize (\"01\" ≡ 1); GOTO LBL 0 targets the end-of-subprogram sentinel and is refused (HeidenhainGoto--Lbl0Target, the HeidenhainSubProgramCallSyntax precedent). Jumps hosted inside a P4 inlined body (CALL LBL/CALL PGM splice or a REP section pass) are recognized but not simulated — the redirect would discard the pending inline tail (HeidenhainGoto--InlinedContextUnsupported, the Siemens P5 guard). Pipeline placement: tail of the Heidenhain Evaluation bundle, after VariableEvaluatorSyntax (operand substitution) and the Q reader. The HeidenhainGotoIterationDependency watchdog caps fired jumps per (file, label); a missing watchdog disables the cap (Fanuc parity). public class HeidenhainGotoSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HeidenhainGotoSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors HeidenhainGotoSyntax() Parameterless instance with default probe syntaxes. public HeidenhainGotoSyntax() HeidenhainGotoSyntax(XElement, string, IProgress) Loads hosted probe syntaxes from XML produced by MakeXmlSource(string, string, bool). The wrapper contains one child element per probe syntax in source order; an absent wrapper falls back to the default list. public HeidenhainGotoSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of helper syntaxes run on each candidate block during the label scan before the predicate is checked. Defaults match the P4 call-path probe stack of HeidenhainSubProgramCallSyntax: HeidenhainTildeTrimSyntax (strip ~ continuation heads), TailCommentSyntax with \";\" (a commented-out label never matches), HeadIndexSyntax with the bare klartext block-number symbol, then HeidenhainLblSyntax (whose definition regex excludes the CALL LBL and GOTO LBL spellings — a jump line is never a candidate). Order matters: strippers first, label parser last. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainQParameterReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainQParameterReadingSyntax.html", "title": "Class HeidenhainQParameterReadingSyntax | HiAPI-C# 2025", "summary": "Class HeidenhainQParameterReadingSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Obtains values for Heidenhain Q parameters by consuming literal numeric assignments from Parsing.Assignments.Qn/QRn and routing them by id range — one reader for the single Q key shape, range routing inside (the Heidenhain analogue of the Fanuc range-routed reader trio): Q0-Q99 → HeidenhainQParameterTable free range (hincproj-persisted; the table is the single source of truth — no JSON mirror). QRn → the same table's permanent QR store. Q100-Q199 → controller-written system parameters: the write is consumed but not applied, with a HeidenhainQ--SystemReadOnly warning (no fabricated values). Q200+ → volatile range: dict-merged into Vars.Volatile with canonical Q+id keys, carried block-to-block like the Fanuc VolatileVariableReadingSyntax; cleared at program end by ProgramEndCleanSyntax. The carry of the previous block's Vars.Volatile happens on every block regardless of assignments, so the single-step traceback contract of HeidenhainVolatileQLookup holds. Only literal numeric RHS values are consumed (Q1 = 5000 ✓; Q1 = Q1*.75 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them to literals earlier on the same block, so by the time this syntax runs, every evaluable RHS is literal. The two syntaxes are decoupled. public class HeidenhainQParameterReadingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HeidenhainQParameterReadingSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Examples #BeforeBuild: (with a HeidenhainQParameterTable on the dependency list; the literal moves into the table) { \"Parsing\": { \"Assignments\": { \"Q1\": \"300\" } } } #AfterBuild: {} Constructors HeidenhainQParameterReadingSyntax() Default constructor. public HeidenhainQParameterReadingSyntax() HeidenhainQParameterReadingSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public HeidenhainQParameterReadingSyntax(XElement src) Parameters src XElement Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramCallSyntax.html", "title": "Class HeidenhainSubProgramCallSyntax | HiAPI-C# 2025", "summary": "Class HeidenhainSubProgramCallSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Consumes the Parsing.CALL record captured by HeidenhainCallSyntax and executes the three klartext call mechanisms over the shared M98 inline machinery: CALL LBL n / CALL LBL \"name\" (subprogram): the host file is re-segmented through the runner's own segmenter (SegmenterDependency), scanned for the matching LBL definition with LabelScanUtil and the LabelProbeSyntaxes, truncated at the first following LBL 0 (inclusive — its consumption pops the frame), and prepended into layers[0] with a pushed CallStack frame. A subprogram without LBL 0 is a structured safe-skip (inlining to EOF would double-execute the file tail). CALL LBL n REP m (program-section repeat — TNC semantics: the section from LBL n up to, not including, the call line runs m extra times): m fresh re-segmentation passes of that slice are prepended. A loop, not a call — no new CallStack frame is pushed, but the host block's stack propagates onto the repeated pieces so nested calls inside the section still accumulate depth against the rail; the repeat count itself is a literal bound. Any LBL 0 passed inside the section is a no-op for the return syntax (null-safe pop). CALL PGM name: resolved through InternalFolder with the FilePatterns chain ({0}.h → {0}.H → {0}) and inlined whole — the SiemensSubProgramCallSyntax mechanism verbatim, including resolve-miss safe-skip (HeidenhainCall--Skipped). The callee's END PGM pops the frame via HeidenhainSubProgramReturnSyntax; a unit switch inside the callee is not restored on return (recorded limitation). Recursion rail: like the Siemens call path, a self-recursive CALL LBL/CALL PGM would splice forever; a call whose host block already carries MaxCallDepth CallStack frames is consumed as a safe-skip with HeidenhainCall--DepthLimitExceeded. No MacroFrame is stamped — klartext subprograms share the caller's Q scope. Pipeline placement: head of the Heidenhain Evaluation bundle (the Fanuc discipline — call/inline ahead of all variable machinery). public class HeidenhainSubProgramCallSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HeidenhainSubProgramCallSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors HeidenhainSubProgramCallSyntax() Parameterless instance with default settings. public HeidenhainSubProgramCallSyntax() HeidenhainSubProgramCallSyntax(XElement, string, IProgress) Loads FilePatterns, MaxCallDepth and LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool); absent elements fall back to defaults. public HeidenhainSubProgramCallSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Fields DefaultMaxCallDepth Default for MaxCallDepth — the Siemens call-path value; the TNC itself nests far lower (8 levels). public const int DefaultMaxCallDepth = 32 Field Value int FrameKindKey Key of the frame-kind marker on a CallFrame entry. public const string FrameKindKey = \"Kind\" Field Value string MaxRepetitions TNC's own repeat-count ceiling. A larger literal is a corrupt or hostile file; without the cap the O(rep × file size) re-scan loop is a single-input denial of service. public const int MaxRepetitions = 65534 Field Value int Properties FilePatterns Filename-resolution fallback chain for CALL PGM, formatted with the callee name as the only positional arg. Case-insensitive match is delegated to the host filesystem (the .h/.H pair matters on Linux). public List FilePatterns { get; set; } Property Value List LabelProbeSyntaxes Ordered probe syntaxes run on each candidate block during label scans, before the name predicate fires. Defaults match the Heidenhain Parsing bundle head (; tail comments, bare klartext block numbers, the LBL statement parser). Swappable via XML — the LabelProbeSyntaxes pattern. public List LabelProbeSyntaxes { get; set; } Property Value List MaxCallDepth Recursion rail for the call path (no iteration watchdog covers it); see the class remarks. public int MaxCallDepth { get; set; } Property Value int Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainSubProgramReturnSyntax.html", "title": "Class HeidenhainSubProgramReturnSyntax | HiAPI-C# 2025", "summary": "Class HeidenhainSubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Consumes the two klartext return spellings and the standalone label markers: LBL 0 — end-of-subprogram sentinel: stamps SubProgramReturn (Term: \"LBL 0\") and pops the CallStack frame (null-safe: an LBL 0 reached in the main flow — the 1.H head layout — is a no-op). Like the Fanuc M99, the \"return\" itself is structural: the call syntax truncated the inlined slice at this block, so the caller's tail follows naturally. LBL n / LBL \"name\" — definition markers: consumed into a block-root HeidenhainLbl record (no motion; keeps the label visible for dumps and the P5 jump family). END PGM with a non-empty CallStack — the return of a CALL PGM callee: consumes Parsing.PGM before the Logic program-header syntax can treat it as a real program end (which would clear the volatile Q store mid-stream), stamps SubProgramReturn (Term: \"END PGM\"), and pops the frame. The main file's END PGM (empty stack) is untouched. Pipeline placement: directly after HeidenhainSubProgramCallSyntax at the head of the Evaluation bundle. public class HeidenhainSubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object HeidenhainSubProgramReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors HeidenhainSubProgramReturnSyntax() Initializes a new instance with default settings. public HeidenhainSubProgramReturnSyntax() HeidenhainSubProgramReturnSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public HeidenhainSubProgramReturnSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainVolatileQLookup.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.HeidenhainVolatileQLookup.html", "title": "Class HeidenhainVolatileQLookup | HiAPI-C# 2025", "summary": "Class HeidenhainVolatileQLookup Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Assembly HiMech.dll Reads Heidenhain volatile Q parameters (Q200+, the cycle/user range that resets at program start) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through for other keys (Q0-Q99/QRn resolve on the HeidenhainQParameterTable further down the chain; Q100-Q199 stay vacant by design). Sibling of the Fanuc VolatileVariableLookup with the same single-step traceback contract: HeidenhainQParameterReadingSyntax dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — is on the current block or the immediately previous one. Keys are stored canonically as Q + id by the reader; this lookup re-canonicalises the incoming key the same way, so lowercase raw captures still resolve. Stateless and dependency-free. public class HeidenhainVolatileQLookup : IRuntimeVariableLookup, IMakeXmlSource Inheritance object HeidenhainVolatileQLookup Implements IRuntimeVariableLookup IMakeXmlSource 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) Constructors HeidenhainVolatileQLookup() Default constructor. public HeidenhainVolatileQLookup() HeidenhainVolatileQLookup(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). Stateless — no fields to deserialise. public HeidenhainVolatileQLookup(XElement src) Parameters src XElement Fields VolatileMax Inclusive upper bound of the volatile Q range (Q1999) — covers the TNC cycle-parameter and user ranges above the persistent/system segments. public const int VolatileMax = 1999 Field Value int VolatileMin Inclusive lower bound of the volatile Q range (Q200). public const int VolatileMin = 200 Field Value int Properties XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Get(string, LazyLinkedListNode, IReadOnlyList) Returns the value of the variable identified by key in the context of node and dependencies, or null if the key is outside this lookup's range or the value is vacant. public double? Get(string key, LazyLinkedListNode node, IReadOnlyList dependencies) Parameters key string node LazyLinkedListNode dependencies IReadOnlyList Returns double? MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Heidenhain.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs.Heidenhain Classes HeidenhainExpressionParser Recursive-descent parser for Heidenhain klartext FN value expressions. Produces the same NcExpr AST as the Fanuc NcExpressionParser so NcExpressionEvaluator is reused unchanged. Pure: no variable lookup, no evaluation. Grammar (lowest precedence at top): expr := add-expr add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'DIV') factor)* factor := ('+' | '-')? primary primary := number | '(' expr ')' | 'Q' digits | 'QR' digits | 'QL' digits | 'QS' digits | func primary → prefix form \"SQRT 4\" (FN 5) | func '(' arglist ')' → paren form \"SQRT(Q2)\" Dialect notes: Q-family tokens are canonicalised to uppercase (q1 → Q1) so Parsing.Assignments keys, table lookups and same-block references agree. (Caveat shared with the Siemens R canonicalisation: a lowercase-captured Assignments key keeps its raw spelling in the evaluator's same-block dictionary, so a later same-block reference resolves to the pre-block value instead — klartext posts emit uppercase, corpus-zero.) DIV is the FN 4 division spelling (FN 4: Q4 = +8 DIV +Q2) and maps onto the shared divide operator. Function names are limited to the klartext math vocabulary (SQRT SIN COS TAN ASIN ACOS ATAN ABS INT FRAC SGN NEG LN LOG EXP); INT normalises to the evaluator's FIX (truncate toward zero), names the shared evaluator lacks (FRAC/SGN/NEG/LOG) parse fine and fail soft at evaluation. Any other identifier is a parse error — klartext has no named variables, and rejecting bare words keeps the evaluator's Parsing-tree pass from touching non-expression strings (MM, MAX, tool-axis letters). Comparison/logical operators are deliberately absent: FN 9–12 jump conditions are pre-normalised by HeidenhainGotoParsingSyntax into separate value operands plus a shared comparison word — never parsed here. HeidenhainGotoSyntax Resolves Heidenhain FN 9–12 conditional jumps — the FanucGotoSyntax pattern with klartext LBL targets and a structural condition. Triggered by Parsing.HeidenhainGoto (written by HeidenhainGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the target label line (inclusive — the definition marker is consumed by HeidenhainSubProgramReturnSyntax downstream). The condition is compared here, not by the expression grammar: the parsing owner pre-normalised the statement into two value operands plus a shared comparison word (the P2 decision that keeps the Heidenhain dialect free of comparison/logical layers). Each operand is read polymorphically — numeric (typed at capture for literals, or substituted in place by VariableEvaluatorSyntax for resolved Q references) fires the comparison; a still-string operand means unresolved (the FN 18 SYSREAD target staying vacant is the designed source) and the jump warns HeidenhainGoto--ConditionNotEvaluated and falls through — no fabricated values, both endings stay fail-soft. The label scan is whole-file first-match through the runner's own segmenter (SegmenterDependency) with the P4 call-path probe stack — klartext has no direction mnemonic and a TNC label is unique per program, so the anchored directional overloads would add a distinction the language does not have. Numeric labels canonicalize (\"01\" ≡ 1); GOTO LBL 0 targets the end-of-subprogram sentinel and is refused (HeidenhainGoto--Lbl0Target, the HeidenhainSubProgramCallSyntax precedent). Jumps hosted inside a P4 inlined body (CALL LBL/CALL PGM splice or a REP section pass) are recognized but not simulated — the redirect would discard the pending inline tail (HeidenhainGoto--InlinedContextUnsupported, the Siemens P5 guard). Pipeline placement: tail of the Heidenhain Evaluation bundle, after VariableEvaluatorSyntax (operand substitution) and the Q reader. The HeidenhainGotoIterationDependency watchdog caps fired jumps per (file, label); a missing watchdog disables the cap (Fanuc parity). HeidenhainQParameterReadingSyntax Obtains values for Heidenhain Q parameters by consuming literal numeric assignments from Parsing.Assignments.Qn/QRn and routing them by id range — one reader for the single Q key shape, range routing inside (the Heidenhain analogue of the Fanuc range-routed reader trio): Q0-Q99 → HeidenhainQParameterTable free range (hincproj-persisted; the table is the single source of truth — no JSON mirror). QRn → the same table's permanent QR store. Q100-Q199 → controller-written system parameters: the write is consumed but not applied, with a HeidenhainQ--SystemReadOnly warning (no fabricated values). Q200+ → volatile range: dict-merged into Vars.Volatile with canonical Q+id keys, carried block-to-block like the Fanuc VolatileVariableReadingSyntax; cleared at program end by ProgramEndCleanSyntax. The carry of the previous block's Vars.Volatile happens on every block regardless of assignments, so the single-step traceback contract of HeidenhainVolatileQLookup holds. Only literal numeric RHS values are consumed (Q1 = 5000 ✓; Q1 = Q1*.75 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them to literals earlier on the same block, so by the time this syntax runs, every evaluable RHS is literal. The two syntaxes are decoupled. HeidenhainSubProgramCallSyntax Consumes the Parsing.CALL record captured by HeidenhainCallSyntax and executes the three klartext call mechanisms over the shared M98 inline machinery: CALL LBL n / CALL LBL \"name\" (subprogram): the host file is re-segmented through the runner's own segmenter (SegmenterDependency), scanned for the matching LBL definition with LabelScanUtil and the LabelProbeSyntaxes, truncated at the first following LBL 0 (inclusive — its consumption pops the frame), and prepended into layers[0] with a pushed CallStack frame. A subprogram without LBL 0 is a structured safe-skip (inlining to EOF would double-execute the file tail). CALL LBL n REP m (program-section repeat — TNC semantics: the section from LBL n up to, not including, the call line runs m extra times): m fresh re-segmentation passes of that slice are prepended. A loop, not a call — no new CallStack frame is pushed, but the host block's stack propagates onto the repeated pieces so nested calls inside the section still accumulate depth against the rail; the repeat count itself is a literal bound. Any LBL 0 passed inside the section is a no-op for the return syntax (null-safe pop). CALL PGM name: resolved through InternalFolder with the FilePatterns chain ({0}.h → {0}.H → {0}) and inlined whole — the SiemensSubProgramCallSyntax mechanism verbatim, including resolve-miss safe-skip (HeidenhainCall--Skipped). The callee's END PGM pops the frame via HeidenhainSubProgramReturnSyntax; a unit switch inside the callee is not restored on return (recorded limitation). Recursion rail: like the Siemens call path, a self-recursive CALL LBL/CALL PGM would splice forever; a call whose host block already carries MaxCallDepth CallStack frames is consumed as a safe-skip with HeidenhainCall--DepthLimitExceeded. No MacroFrame is stamped — klartext subprograms share the caller's Q scope. Pipeline placement: head of the Heidenhain Evaluation bundle (the Fanuc discipline — call/inline ahead of all variable machinery). HeidenhainSubProgramReturnSyntax Consumes the two klartext return spellings and the standalone label markers: LBL 0 — end-of-subprogram sentinel: stamps SubProgramReturn (Term: \"LBL 0\") and pops the CallStack frame (null-safe: an LBL 0 reached in the main flow — the 1.H head layout — is a no-op). Like the Fanuc M99, the \"return\" itself is structural: the call syntax truncated the inlined slice at this block, so the caller's tail follows naturally. LBL n / LBL \"name\" — definition markers: consumed into a block-root HeidenhainLbl record (no motion; keeps the label visible for dumps and the P5 jump family). END PGM with a non-empty CallStack — the return of a CALL PGM callee: consumes Parsing.PGM before the Logic program-header syntax can treat it as a real program end (which would clear the volatile Q store mid-stream), stamps SubProgramReturn (Term: \"END PGM\"), and pops the frame. The main file's END PGM (empty stack) is untouched. Pipeline placement: directly after HeidenhainSubProgramCallSyntax at the head of the Evaluation bundle. HeidenhainVolatileQLookup Reads Heidenhain volatile Q parameters (Q200+, the cycle/user range that resets at program start) from Vars.Volatile. Self-gates the id range so the evaluator's RuntimeVariableLookups chain can fall through for other keys (Q0-Q99/QRn resolve on the HeidenhainQParameterTable further down the chain; Q100-Q199 stay vacant by design). Sibling of the Fanuc VolatileVariableLookup with the same single-step traceback contract: HeidenhainQParameterReadingSyntax dict-merges every block's Vars.Volatile into the next block, so the entry — if it exists — is on the current block or the immediately previous one. Keys are stored canonically as Q + id by the reader; this lookup re-canonicalises the incoming key the same way, so lowercase raw captures still resolve. Stateless and dependency-free." }, "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanDirection.html", "title": "Enum LabelScanDirection | HiAPI-C# 2025", "summary": "Enum LabelScanDirection Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Scan region and match policy for the anchored LabelScanUtil overload. Forward scans take the first match below the anchor line; backward scans take the nearest match above it. public enum LabelScanDirection 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 BackwardNearestToAnchor = 1 Scan lines strictly above the anchor, nearest (last) match wins (GOTOB). ForwardFromAnchor = 0 Scan lines strictly below the anchor, first match wins (GOTOF)." }, "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.LabelScanUtil.html", "title": "Class LabelScanUtil | HiAPI-C# 2025", "summary": "Class LabelScanUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). public static class LabelScanUtil Inheritance object LabelScanUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CanReadSource(List, string, string) Whether a re-segmentation scan can obtain line content for labelPath — either an in-memory registration on the pipeline's NcLineSourceDependency (inline NC-code plays, whose pseudo-path never exists on disk) or an existing file at absPath. Jump syntaxes use this as the pre-scan guard in place of a bare File.Exists(absPath), so control flow inside inline plays is not misreported as a missing host file. public static bool CanReadSource(List ncDependencyList, string labelPath, string absPath) Parameters ncDependencyList List labelPath string absPath string Returns bool SegmentAndRewindToLine(ISegmenter, List, string, string, int, int, int, NcDiagnosticProgress) Re-segments absPath and returns the slice starting at the first piece whose file line index equals beginLineIndex — the loop back-jump primitive (no label predicate, no probes). Extracted from the Fanuc WHILE/END reverse jump so the Siemens loop family shares the same engine; FanucWhileDoSyntax delegates here unchanged. Returns null when the line did not materialise as a segment start. public static List SegmentAndRewindToLine(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int beginLineIndex, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label. fileIndex int Fresh file index to stamp on each line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Legacy fallback starting index — ignored when the pipeline carries a SentenceIndexCounterDependency. beginLineIndex int 0-based file line index of the block to rewind to (the loop-entry line). diag NcDiagnosticProgress Diagnostic sink for the re-segmentation. Returns List SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, NcDiagnosticProgress) Predicate-driven overload. The caller supplies match as the per-candidate gate (run on the candidate block's JsonObject after the probe syntaxes have finished stamping). This unblocks scans whose label representation differs from IndexNote.Number — for example END m blocks identified by a custom probe-written section, where reusing IndexNote would collide with real N{m} head indices in the same file. The default targetN overload delegates here with the IndexNote.Number == targetN predicate baked in; existing callers (Fanuc unconditional GOTO, M99 P{seq} jump) are unchanged. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, List probeSyntaxes, Func match, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label. fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Legacy fallback starting index for the produced pieces — ignored when the pipeline carries a SentenceIndexCounterDependency. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check. May be null. match Func Per-candidate predicate; true selects the first match. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes. Returns List SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, List, Func, int, LabelScanDirection, NcDiagnosticProgress) Anchored, direction-aware overload for the Siemens GOTOF/GOTOB family (and any other scan that must not see the whole file). The two legacy overloads above always scan the whole file top-down and take the first match — that cannot express “forward only, from the jump site” (GOTOF) or “nearest label above the jump site” (GOTOB), and it silently mis-targets when the same label text appears both before and after the host line. Semantics here: ForwardFromAnchor — only candidates whose file line index is strictly greater than anchorLineIndex are probed and matched; the first match wins. BackwardNearestToAnchor — only candidates strictly above anchorLineIndex are probed and matched; the last match (largest line index — nearest to the anchor) wins. Candidates without a resolvable line index are skipped. The returned slice runs from the matched block (inclusive — a label line may carry trailing code) to EOF, exactly like the legacy overloads; a backward jump is still \"replace the source with the slice from the target down\", the same shape the WHILE reverse jump uses. Returns null when no candidate matches. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, List probeSyntaxes, Func match, int anchorLineIndex, LabelScanDirection direction, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label. fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Legacy fallback starting index for the produced pieces — ignored when the pipeline carries a SentenceIndexCounterDependency. probeSyntaxes List Ordered list of helper syntaxes to run on each in-region candidate before the predicate check. May be null. match Func Per-candidate predicate on the probed block's JSON. anchorLineIndex int 0-based file line index of the jump host block; the scan region excludes this line itself. direction LabelScanDirection Scan region and match policy relative to the anchor. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes. Returns List SegmentAndSkipUntilLabel(ISegmenter, List, string, string, int, int, int, List, NcDiagnosticProgress) Re-segments absPath from offset 0, scans for a block whose Number equals targetN (after the probeSyntaxes have stamped it in-place), and returns the sub-list of pieces from that block to EOF. Pieces are produced via GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken), which stamps SentenceIndex from the session's SentenceIndexCounterDependency when present (the whole re-segmented file is numbered eagerly, so the discarded pre-label prefix leaves a gap in the sequence) and falls back to contiguous numbering from sentenceIndexBegin otherwise. Returns null when no match is found; the caller emits its own brand-specific “label not found” diagnostic. The predicate is fixed at the IndexNote.Number section — the section name comes from nameof() so a future rename propagates without re-edits. Reconfigurability for non-standard label-output sections is achieved by replacing the probe syntaxes (the natural extension point) rather than parameterising the predicate path here: a probe stack that doesn't end up writing IndexNote on candidates is by definition not participating in this scan. public static List SegmentAndSkipUntilLabel(ISegmenter segmenter, List ncDependencyList, string absPath, string labelPath, int fileIndex, int sentenceIndexBegin, int targetN, List probeSyntaxes, NcDiagnosticProgress diag) Parameters segmenter ISegmenter Segmenter used to slice the file into Sentence blocks. ncDependencyList List NC dependency list forwarded to GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) while re-segmenting the scanned file. absPath string Absolute path to read line content from. labelPath string Project-relative path to stamp on each line's IndexedFileLine label (so diagnostics anchor to a relative form, not the resolver's transient absolute path). fileIndex int Fresh file index to stamp on each scanned line, allocated by the caller from FileIndexCounterDependency. sentenceIndexBegin int Legacy fallback starting index for the produced pieces — ignored when the pipeline carries a SentenceIndexCounterDependency. targetN int Integer label target to match against Number. probeSyntaxes List Ordered list of helper syntaxes to run on each candidate block before the predicate check (typically comment-stripper(s) followed by a head-index parser). May be null. diag NcDiagnosticProgress Sink for any diagnostics produced by the probe syntaxes (e.g. comment-stripper malformed-comment warnings). Returns List" }, "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.ResolvedFile.html", "title": "Struct MacroFileResolver.ResolvedFile | HiAPI-C# 2025", "summary": "Struct MacroFileResolver.ResolvedFile Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target. public readonly record struct MacroFileResolver.ResolvedFile : IEquatable Implements IEquatable 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) Constructors ResolvedFile(string, string, string) Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target. public ResolvedFile(string FileName, string RelPath, string AbsPath) Parameters FileName string RelPath string AbsPath string Properties AbsPath public string AbsPath { get; init; } Property Value string FileName public string FileName { get; init; } Property Value string RelPath public string RelPath { get; init; } Property Value string" }, "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroFileResolver.html", "title": "Class MacroFileResolver | HiAPI-C# 2025", "summary": "Class MacroFileResolver Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). public static class MacroFileResolver Inheritance object MacroFileResolver Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields FilenamePatterns Filename-resolution fallback chain. Patterns are formatted with the P parameter as the only positional arg. public static readonly string[] FilenamePatterns Field Value string[] Methods ReadLines(int, string, string) Streams IndexedFileLine entries from absPath but stamps each entry's FilePath with the project-relative labelPath. Mirrors the manual loop in GetIndexedFileLines(string, IEnumerable, int, NcDiagnosticProgress, CancellationToken) for the main file so inlined macros stay consistent with the rest of the pipeline (diagnostics anchored to a relative label, not the resolver's transient absolute path). public static IEnumerable ReadLines(int fileIndex, string absPath, string labelPath) Parameters fileIndex int absPath string labelPath string Returns IEnumerable Resolve(string, int, string) Resolves an O

file against the given folder, returning all three path forms. Returns null when the folder cannot be anchored (relative folder but no baseDirectory), the resolved folder does not exist, or no filename pattern matched. folder may be absolute (used as-is) or relative (combined with baseDirectory). Empty / null folder means \"look directly in baseDirectory\". When the folder is absolute, RelPath falls back to absolute too — there's no natural relative form when the user explicitly configured an out-of-project folder. public static MacroFileResolver.ResolvedFile? Resolve(string folder, int p, string baseDirectory) Parameters folder string p int baseDirectory string Returns MacroFileResolver.ResolvedFile? Resolve(string, string, string, IEnumerable) Name-based sibling of Resolve(string, int, string) for dialects whose subprogram identifier is a word rather than an O-number (Siemens L9810 / HQ_FC by-name calls). patterns is formatted with the name as the only positional arg (e.g. \"{0}.SPF\") — supplied per call so brand pattern sets stay on their own syntaxes instead of leaking into the shared Fanuc FilenamePatterns chain. Folder anchoring and the tri-form result follow the int overload exactly. public static MacroFileResolver.ResolvedFile? Resolve(string folder, string name, string baseDirectory, IEnumerable patterns) Parameters folder string name string baseDirectory string patterns IEnumerable Returns MacroFileResolver.ResolvedFile?" }, "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.MacroInlineUtil.html", "title": "Class MacroInlineUtil | HiAPI-C# 2025", "summary": "Class MacroInlineUtil Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. public static class MacroInlineUtil Inheritance object MacroInlineUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ApplyLocalBindings(JsonObject, IReadOnlyDictionary) Writes the resolved #N → value bindings into Vars.Local on the given block. No-op when bindings is empty. Always overwrites any pre-existing Vars.Local on the block — for inlined macro bodies this is a fresh stamp. public static void ApplyLocalBindings(JsonObject json, IReadOnlyDictionary bindings) Parameters json JsonObject bindings IReadOnlyDictionary BuildInlinedPieces(ResolvedFile, int, IReadOnlyDictionary, JsonObject, JsonObject, FileIndexCounterDependency, ISegmenter, List, int, NcDiagnosticProgress) Yields L repetitions of the macro body as inline-ready SyntaxPiece entries. Each repetition gets its own freshly-allocated FileIndex and MacroFrame id; every yielded piece is stamped with a deep clone of callRecord, the frame id, and the resolved #N → value bindings. The caller passes the result to PrependSource(IEnumerable) on the source layer. SentenceIndex allocation happens inside GetSyntaxPieces(ISegmenter, List, IEnumerable, int, NcDiagnosticProgress, CancellationToken) via the session's FileIndexCounterDependency sibling SentenceIndexCounterDependency; sentenceIndexBegin is only the legacy fallback numbering for counter-less presets. public static IEnumerable BuildInlinedPieces(MacroFileResolver.ResolvedFile resolvedFile, int l, IReadOnlyDictionary bindings, JsonObject callRecord, JsonObject pushedCallStack, FileIndexCounterDependency counterDep, ISegmenter segmenter, List ncDependencyList, int sentenceIndexBegin, NcDiagnosticProgress ncDiagnosticProgress) Parameters resolvedFile MacroFileResolver.ResolvedFile l int bindings IReadOnlyDictionary callRecord JsonObject pushedCallStack JsonObject counterDep FileIndexCounterDependency segmenter ISegmenter ncDependencyList List sentenceIndexBegin int ncDiagnosticProgress NcDiagnosticProgress Returns IEnumerable BuildLocalBindings(JsonObject) Translates the argument-letter map captured by the host call ({ “A”: 1.5, “B”: 2.0, ... }) into the #N → value bindings the macro body's expression evaluator will read off Vars.Local. Skips non-numeric (string) args silently — those are unresolved variable references that the evaluator's own VariableExpression–Unevaluated diagnostic will surface; writing a string into Vars.Local would just propagate the residue. public static Dictionary BuildLocalBindings(JsonObject args) Parameters args JsonObject Returns Dictionary" }, "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.RetainedCommonVariableReadingSyntax.html", "title": "Class RetainedCommonVariableReadingSyntax | HiAPI-C# 2025", "summary": "Class RetainedCommonVariableReadingSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. public class RetainedCommonVariableReadingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object RetainedCommonVariableReadingSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors RetainedCommonVariableReadingSyntax() Default constructor. public RetainedCommonVariableReadingSyntax() RetainedCommonVariableReadingSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public RetainedCommonVariableReadingSyntax(XElement src) Parameters src XElement Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensAcIcSyntax.html", "title": "Class SiemensAcIcSyntax | HiAPI-C# 2025", "summary": "Class SiemensAcIcSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Siemens Assembly HiMech.dll Recognizes the Siemens per-word coordinate function family on axis words — AC(...) (absolute), IC(...) (incremental), DC(...) (rotary shortest-path), ACP(...) / ACN(...) (rotary directional approach), and the coded-position (indexing axis) counterparts CAC(...) / CIC(...) / CDC(...) / CACP(...) / CACN(...) — e.g. X=AC(400), C=IC(360/17), C=DC(47.296), B=CAC(2) — unwraps the inner expression so the downstream VariableEvaluatorSyntax resolves it through the normal Siemens expression machinery, and records the per-word positioning override in a block-root PositioningOverride section keyed by word name (Absolute / Incremental / Shortest / PositiveOnly / NegativeOnly, and the Coded* values for the coded-position verbs). Siemens semantics: the wrapper forces the interpretation of that one coordinate word for that one block, regardless of the modal G90/G91 state. The positional conversion itself stays with the same consumers that honor the modal state — IncrementalResolveSyntax for linear axes and McAbcSyntax for rotary axes (both treat every non-Incremental override as an absolute write), while the rotary shortest/directional resolution stays with the McAbcCyclicPathSyntax tail-pass — this syntax only normalizes the text and stamps the override; it never reads machine position (the Evaluation stage is not the place for position-state reads). Scope: axis words (per AxisNames, falling back to X/Y/Z/A/B/C) accept the full family, except that the rotary-only verbs DC/ACP/ACN are unwrapped only on rotary axes (per IsRotaryAxis(string), falling back to A/B/C) — on a linear axis they are invalid Siemens and are left untouched so they surface as unevaluated residue instead of being silently mis-read. The interpolation parameters I/J/K accept AC/IC only (Siemens circle centers are incremental by default; I=AC(...) switches that one component to an absolute center coordinate, consumed by SiemensCircularMotionSyntax) — the rotary verbs are meaningless there and are left untouched. The coded-position verbs (their argument is a 1-based indexing position number, not a coordinate) are unwrapped only on axes that IsIndexingAxis(string) reports as usable indexing axes — CDC/CACP/CACN additionally require the axis to be rotary. Everywhere else (a non-indexing axis, no indexing config on the list, I/J/K) they stay untouched, mirroring the Siemens alarm 17500 (\"axis is not an indexing axis\") with loud unevaluated residue. The number→coordinate lookup happens at the write stage (McAbcSyntax / IncrementalResolveSyntax via CodedPositionUtil), not here — the Evaluation stage neither reads machine position nor resolves tables. Positioning-axis forms (POS[C]=DC(...) / SPOS=) never reach the word path and are out of scope. Values whose parentheses do not balance around the wrapper (e.g. IC(1)+AC(2)) are also left untouched. Must be placed in the Evaluation bundle before VariableEvaluatorSyntax (the unwrapped inner text is a plain Siemens expression the evaluator numeric-ifies on the same block). Inside REPEAT / subprogram splices each re-fed piece runs the full bundle again, so the unwrap happens on every iteration. public class SiemensAcIcSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SiemensAcIcSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Examples C=IC(360/17) (the HUA08126 REPEAT shape) — the wrapper is unwrapped to the inner expression (still a string; the evaluator numeric-ifies it later on the same block) and the override section records the per-word incremental interpretation: #BeforeBuild: { \"Parsing\": { \"C\": \"IC(360/17)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"360/17\" }, \"PositioningOverride\": { \"C\": \"Incremental\" } } X=AC(25) — absolute override; the inner literal stays a string here (pass-2 of the evaluator turns it numeric): #BeforeBuild: { \"Parsing\": { \"X\": \"AC(25)\" } } #AfterBuild: { \"Parsing\": { \"X\": \"25\" }, \"PositioningOverride\": { \"X\": \"Absolute\" } } A plain expression without the wrapper is not touched and no override section appears: #BeforeBuild: { \"Parsing\": { \"X\": \"R5+2\" } } #AfterBuild: { \"Parsing\": { \"X\": \"R5+2\" } } Unbalanced wrapper parentheses (IC(1)+AC(2) — the outer regex shape matches but the inner text closes the wrapper early) — left untouched so it surfaces as unevaluated residue instead of a silent mis-read: #BeforeBuild: { \"Parsing\": { \"X\": \"IC(1)+AC(2)\" } } #AfterBuild: { \"Parsing\": { \"X\": \"IC(1)+AC(2)\" } } C=DC(47.296) (the A055548 corpus shape, 6632 lines in one program) — rotary shortest-path: unwrapped like AC and stamped Shortest; the write stays absolute and the shortest swing is the unconditional McAbcCyclicPathSyntax tail-pass for modular rotary axes (an exactly-180° target resolves deterministically to the negative swing — the tail-pass window is half-open [anchor-180°, anchor+180°); real controls make that measure-zero tie machine-data-dependent): #BeforeBuild: { \"Parsing\": { \"C\": \"DC(47.296)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"47.296\" }, \"PositioningOverride\": { \"C\": \"Shortest\" } } X=DC(90) — the rotary-only verb on a linear axis is invalid Siemens (real controls alarm): left untouched, loud residue instead of a silent absolute conversion: #BeforeBuild: { \"Parsing\": { \"X\": \"DC(90)\" } } #AfterBuild: { \"Parsing\": { \"X\": \"DC(90)\" } } C=ACP(270) — absolute target, positive-direction-only approach (may deliberately take the long way around): #BeforeBuild: { \"Parsing\": { \"C\": \"ACP(270)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"270\" }, \"PositioningOverride\": { \"C\": \"PositiveOnly\" } } C=ACN(90) — the negative-direction mirror: #BeforeBuild: { \"Parsing\": { \"C\": \"ACN(90)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"90\" }, \"PositioningOverride\": { \"C\": \"NegativeOnly\" } } I=AC(400) — interpolation parameter switched to an absolute center coordinate (Siemens I/J/K default incremental); consumed by SiemensCircularMotionSyntax: #BeforeBuild: { \"Parsing\": { \"I\": \"AC(400)\" } } #AfterBuild: { \"Parsing\": { \"I\": \"400\" }, \"PositioningOverride\": { \"I\": \"Absolute\" } } I=DC(10) — rotary verbs are meaningless on interpolation parameters: left untouched, loud residue: #BeforeBuild: { \"Parsing\": { \"I\": \"DC(10)\" } } #AfterBuild: { \"Parsing\": { \"I\": \"DC(10)\" } } The coded-position cases below inject a SiemensMachineDataTable declaring C rotary and X linear, both assigned to indexing table 1 = [0, 90, 180, 270] (the values double as mm for X). C=CAC(3) — coded absolute: the inner text (a position number expression, numeric-ified later by the evaluator like every other case) is unwrapped and the coded override is stamped; the number→angle lookup stays with the write-stage consumers: #BeforeBuild: { \"Parsing\": { \"C\": \"CAC(3)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"3\" }, \"PositioningOverride\": { \"C\": \"CodedAbsolute\" } } C=CIC(2) — coded incremental (advance two indexing positions): #BeforeBuild: { \"Parsing\": { \"C\": \"CIC(2)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"2\" }, \"PositioningOverride\": { \"C\": \"CodedIncremental\" } } C=CDC(4) — coded shortest-path: #BeforeBuild: { \"Parsing\": { \"C\": \"CDC(4)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"4\" }, \"PositioningOverride\": { \"C\": \"CodedShortest\" } } C=CACP(2) — coded positive-direction-only: #BeforeBuild: { \"Parsing\": { \"C\": \"CACP(2)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"2\" }, \"PositioningOverride\": { \"C\": \"CodedPositiveOnly\" } } C=CACN(2) — coded negative-direction-only: #BeforeBuild: { \"Parsing\": { \"C\": \"CACN(2)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"2\" }, \"PositioningOverride\": { \"C\": \"CodedNegativeOnly\" } } C=CAC(3) with no indexing config on the dependency list (this case injects none) — the axis is not an indexing axis, so the word stays untouched and surfaces as loud unevaluated residue (the Siemens control raises alarm 17500 here): #BeforeBuild: { \"Parsing\": { \"C\": \"CAC(3)\" } } #AfterBuild: { \"Parsing\": { \"C\": \"CAC(3)\" } } X=CDC(2) — the rotary coded verbs are invalid on a linear indexing axis: left untouched, loud residue (X=CAC(2) / X=CIC(2) would unwrap): #BeforeBuild: { \"Parsing\": { \"X\": \"CDC(2)\" } } #AfterBuild: { \"Parsing\": { \"X\": \"CDC(2)\" } } I=CAC(3) — interpolation parameters take no coded verbs: #BeforeBuild: { \"Parsing\": { \"I\": \"CAC(3)\" } } #AfterBuild: { \"Parsing\": { \"I\": \"CAC(3)\" } } Constructors SiemensAcIcSyntax() Initializes a new instance with default settings. public SiemensAcIcSyntax() SiemensAcIcSyntax(XElement) Initializes a new instance by deserializing from the given XML element. public SiemensAcIcSyntax(XElement src) Parameters src XElement Source XML element. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensExpressionParser.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensExpressionParser.html", "title": "Class SiemensExpressionParser | HiAPI-C# 2025", "summary": "Class SiemensExpressionParser Namespace Hi.NcParsers.EvaluationSyntaxs.Siemens Assembly HiMech.dll Recursive-descent parser for Sinumerik value expressions. Produces the same NcExpr AST as the Fanuc NcExpressionParser so NcExpressionEvaluator is reused unchanged. Pure: no variable lookup, no evaluation. Grammar (lowest precedence at top): expr := or-expr or-expr := and-expr (('OR' | 'XOR') and-expr)* and-expr := cmp-expr ('AND' cmp-expr)* cmp-expr := add-expr (('==' | '<>' | '>=' | '<=' | '>' | '<') add-expr)* add-expr := term (('+' | '-') term)* term := factor (('*' | '/' | 'MOD') factor)* factor := ('+' | '-')? primary primary := number | '(' expr ')' | 'R' digits → variable \"R63\" (canonical uppercase) | '$' name ('[' indexlist ']')? → variable \"$P_UIFR[1,X,TR]\" (canonical) | name '(' arglist ')' → function call | name '[' indexlist ']' → variable \"_RENC[35]\" (canonical) | name → variable \"_X_HOME\" (case preserved) indexlist := (integer | name) (',' (integer | name))* arglist := expr (',' expr)* Dialect differences from the Fanuc parser: parentheses group and call (Fanuc uses brackets); comparisons are spelled == <> >= <= > < (Fanuc uses EQ NE .. words); bare identifiers are named-variable references (Fanuc rejects an identifier without [); R63 is canonicalised to uppercase so table lookups and Parsing.Assignments keys agree. Indexed accesses ($P_UIFR[1,X,TR], _RENC[35]) require literal index elements (integers, bare letters, or keywords like TR) and are emitted as a single NcVariableExpr whose key is the canonical uppercase-indexed token — the whole token routes through Get(string), keeping the AST brand-agnostic. Function-name aliases are normalised where Sinumerik and the shared evaluator spell the same math differently: ATAN2 → ATAN (both are two-arg atan2 in degrees), TRUNC → FIX (truncate toward zero). Unknown functions (e.g. the rotary positioning form DC(...)) parse fine and fail later in the evaluator, which callers treat as fail-soft. public sealed class SiemensExpressionParser Inheritance object SiemensExpressionParser Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() 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) Methods TryParse(string, out NcExpr, out string) Parses source requiring the whole string to be consumed. On success, expr is the AST and error is null. On failure, expr is null and error describes the syntax problem. public static bool TryParse(string source, out NcExpr expr, out string error) Parameters source string expr NcExpr error string Returns bool TryParsePrefix(string, out NcExpr, out int, out string) Parses the longest valid expression prefix of source. On success, consumedLength is the number of leading characters that form the expression (trailing text from that offset on is the caller's to keep, e.g. as remaining UnparsedText). Fails only when not even a prefix parses (e.g. the text starts with a quote or an operator dangles at end-of-input) — callers fall back to their legacy lexical capture in that case. This is the parser-delimited RHS boundary: the expression grammar itself decides where the right-hand side ends, so whitespace inside expressions (R64 - 14/2), balanced call parentheses (DC(47.296)) and a following non-expression word (R24=14 R26=... / F=R103 X-204.) all resolve without lexical boundary regexes or TerminateWords. public static bool TryParsePrefix(string source, out NcExpr expr, out int consumedLength, out string error) Parameters source string expr NcExpr consumedLength int error string Returns bool" }, "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.Siemens.SiemensGotoSyntax.html", "title": "Class SiemensGotoSyntax | HiAPI-C# 2025", "summary": "Class SiemensGotoSyntax Namespace Hi.NcParsers.EvaluationSyntaxs.Siemens Assembly HiMech.dll Resolves Siemens GOTOF/GOTOB control flow — the FanucGotoSyntax pattern with named-label targets and explicit direction. Triggered by Parsing.SiemensGoto (written by SiemensGotoParsingSyntax); decides whether to fire, and on fire calls ReplaceSource(IEnumerable) on layers[0] with the re-segmented file content starting at the target label line (inclusive — a Siemens label may prefix code). Direction comes from the mnemonic and drives the anchored LabelScanUtil overload: GOTOF takes the first match strictly below the host line, GOTOB the nearest match strictly above it — never the whole-file first match, which would silently mis-target duplicate label texts. Targets may be a named label (LBL1: line, matched Ordinal-exact on the block-root SiemensLabel record) or an N block number (matched on Number). The conditional forms (IF GOTOF

file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. public class SubProgramCallSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramCallSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors SubProgramCallSyntax() Parameterless instance for bundle composition (no XML state). public SubProgramCallSyntax() SubProgramCallSyntax(XElement) XML ctor (no child elements; reserved for forward compatibility). public SubProgramCallSyntax(XElement src) Parameters src XElement Root element named XName. Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.SubProgramReturnSyntax.html", "title": "Class SubProgramReturnSyntax | HiAPI-C# 2025", "summary": "Class SubProgramReturnSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. public class SubProgramReturnSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SubProgramReturnSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors SubProgramReturnSyntax() Parameterless instance with default probe list. public SubProgramReturnSyntax() SubProgramReturnSyntax(XElement, string, IProgress) Loads LabelProbeSyntaxes from XML produced by MakeXmlSource(string, string, bool). An absent wrapper falls back to the default probe list. public SubProgramReturnSyntax(XElement src, string baseDirectory, IProgress progress) Parameters src XElement Root element named XName. baseDirectory string Project base directory propagated to child XFactory calls. progress IProgress Diagnostic sink propagated to child factories. Properties LabelProbeSyntaxes Ordered list of probe syntaxes run on each candidate block during the M99 P{seq} caller-side scan, before the integer label predicate fires. Defaults match Fanuc / Mazak / Syntec (parenthesised comment stripper + N head-index parser); API customers can swap or extend (e.g. add a TailCommentSyntax for ; end-of-block comments, or insert a BlockSkipSyntax to exclude /-prefixed candidates) without subclassing. Mirrors the same hosted-list pattern as LabelProbeSyntaxes. public List LabelProbeSyntaxes { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name used to register this syntax with XFactory. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VariableEvaluatorSyntax.html", "title": "Class VariableEvaluatorSyntax | HiAPI-C# 2025", "summary": "Class VariableEvaluatorSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS values produce no Formula entry — the Parsing value is already the original text. In the tag pass the same holds for the Heidenhain dialect only (literal strings short-circuit there because klartext readers consume them as strings); Fanuc / Siemens literal-string tags are numeric-ified as they always were (int-typed capture fallbacks and constant conditions depend on it) and thus carry a Formula entry. Evaluation failures (parse error, vacant variable, non-finite result) produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. public class VariableEvaluatorSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VariableEvaluatorSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors VariableEvaluatorSyntax() Default constructor. public VariableEvaluatorSyntax() VariableEvaluatorSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool); restores RuntimeVariableLookups via XFactory dispatch. A missing element falls back to Fanuc (legacy files). public VariableEvaluatorSyntax(XElement src) Parameters src XElement Fields FormulaKey Top-level key under which the Formula mirror tree is written. public const string FormulaKey = \"Formula\" Field Value string Properties Dialect Expression grammar this evaluator parses with. Default Fanuc keeps the legacy behavior byte-identical (Custom Macro B #nnn + brackets); the Siemens preset sets Siemens for Rn/named/$ keys and parenthesised grammar. The evaluation machinery (lookup chain, Formula mirror, diagnostics) is dialect-independent — only tokenization routes through NcExpressionDialectUtil. public NcExpressionDialect Dialect { get; set; } Property Value NcExpressionDialect Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string RuntimeVariableLookups Per-preset list of context-sensitive lookups (block-local Vars.Local / Vars.Volatile, position reads, runtime-state reads). Walked in list order, before the dependency-bound IVariableLookups. Brand presets configure this; the list is XML-serialised so a runner rebuilt from XML keeps its brand-specific lookups (each impl is stateless and dispatches by its XName via XFactory). public List RuntimeVariableLookups { get; set; } Property Value List XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.VolatileVariableReadingSyntax.html", "title": "Class VolatileVariableReadingSyntax | HiAPI-C# 2025", "summary": "Class VolatileVariableReadingSyntax Namespace Hi.NcParsers.EvaluationSyntaxs Assembly HiMech.dll Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. public class VolatileVariableReadingSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object VolatileVariableReadingSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors VolatileVariableReadingSyntax() Default constructor. public VolatileVariableReadingSyntax() VolatileVariableReadingSyntax(XElement) Loads from an XML element produced by MakeXmlSource(string, string, bool). No state to deserialise. public VolatileVariableReadingSyntax(XElement src) Parameters src XElement Fields VolatileMax Inclusive upper bound of the non-retained common range (#499). public const int VolatileMax = 499 Field Value int VolatileMin Inclusive lower bound of the non-retained common range (#100). public const int VolatileMin = 100 Field Value int Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.EvaluationSyntaxs.html": { "href": "api/Hi.NcParsers.EvaluationSyntaxs.html", "title": "Namespace Hi.NcParsers.EvaluationSyntaxs | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.EvaluationSyntaxs Classes CallStackUtil Push / pop helpers for the per-block CallStack section. Both produce a fresh deep-cloned JsonObject ready to stamp onto an inlined piece (push site) or onto an M99 return block (pop site); the caller is responsible for deep-cloning again if it distributes the same stamp across multiple pieces of an L-repetition. Pairs with ModalCarrySyntax at the Logic stage: explicit push / pop writes seed the section at frame boundaries, ModalCarry copies it forward to every block in between so each block is self-contained for cache-dump readers and downstream consumers (notably M99 P{seq} reading the top frame's CallerFilePath). LabelScanUtil Shared “re-segment a file and skip pieces until a label matches” scan, used by both FanucGotoSyntax (unconditional GOTO redirect) and SubProgramReturnSyntax (M99 P{seq} jump into the caller file). Reads the file via ReadLines(int, string, string), segments through the provided ISegmenter, runs the caller-supplied probe syntaxes on each candidate block to extract IndexNote.Number, and returns the slice from the first matching block to EOF. Returns null when no block matches — the caller's responsibility to surface the appropriate diagnostic. The probes are idempotent because the downstream Parsing bundle re-runs the same syntaxes on the yielded pieces with no-op effect (the regex patterns no longer match once the N-prefix is consumed and the parenthesised comment stripped). MacroFileResolver Shared subprogram-/macro-file resolver for Fanuc-style O lookups consumed by SubProgramCallSyntax (M98 / M198) and FanucMacroCallSyntax (G65). Single helper so the three path forms — file name, project-relative path, absolute path — are produced together at one site and each caller gets exactly the form it should consume: FileName — bare O####.NC form the resolver matched. Stored in JSON sections (FanucMacroCall, SubProgramCall) as the structural NC-language identifier; independent of which folder the dependency happened to be pointing at, so the JSON stays portable across environments. RelPath — relative path against the project base directory (e.g. \"NC/O1234.NC\"). Used as the IndexedFileLine label so diagnostics on inlined blocks align with the relative form already used for the main file label. AbsPath — absolute path. Used only at the ReadLines(int, string, string) call site for actual disk I/O; never persisted, never returned to JSON. Lives inside the resolver's stack frame and the segmenter's enumeration. Filename lookup order (first match wins) mirrors real Fanuc fallback: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). MacroInlineUtil Shared inline mechanism for Fanuc Custom Macro B body expansion — used by both FanucMacroCallSyntax (one-shot) and FanucModalMacroSyntax's expansion phase (modal trigger). Both callers do the same three things on every produced SyntaxPiece: stamp a FanucMacroCall clone, stamp a fresh MacroFrame id, and stamp argument bindings into Vars.Local. Centralising lets the two call sites stay in lock-step — frame allocation, file-index allocation, and the inline-piece JSON shape are guaranteed identical. Frame ids share the same FileIndexCounterDependency counter as file indices — both just need within-session uniqueness and the counter is rewound on session start in lock-step with the pipeline. The main NC file is allocated index 0 first, so all inline frame ids land at > 0 and never collide with main. RetainedCommonVariableReadingSyntax Obtains values for Fanuc-style retained common variables (#500-#999) by consuming literal numeric assignments from Parsing.Assignments.#nnn and writing them straight to a registered RetainedCommonVariableTable. No SyntaxPiece JSON mirror is created — the table is the single source of truth for retained values, and VariableEvaluatorSyntax reads from the table directly. The hincproj round-trip preserves writes across project sessions. Only literal numeric RHS values are consumed by this syntax (#500 = 1.234 ✓; #600 = #500 + 1 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result through the same table. The two syntaxes are decoupled. If no RetainedCommonVariableTable is registered on the runner's NcDependencyList, this syntax is a no-op. SubProgramCallSyntax Inlines a Fanuc-style subprogram into the source layer when an M98 or M198 host block is reached. M98 P_ L_ reads the matching O

file from InternalFolder; M198 P_ reads from ExternalFolder (Fanuc external-storage call — same mechanism as M98, different lookup root). The file is segmented through the host runner's segmenter (SegmenterDependency) and the resulting SyntaxPieces are prepended into layers[0] via PrependSource(IEnumerable); the rest of the pipeline picks them up through ordinary walkNode.Next traversal as if they had always been part of the host file. Pipeline placement: first child of the Fanuc Evaluation BundleSyntax. By the time this runs, M98Syntax / M198Syntax (each a ParameterizedFlagSyntax) have written a Parsing.M98 / Parsing.M198 sub-object carrying the captured P / L parameters. Note: those sub-objects are this syntax's only trigger — \"M98\" / \"M198\" never reach Parsing.Flags, because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. Filename lookup uses a fallback chain: O{P:D4}.NC, O{P}.NC, O{P:D4}, O{P}, {P:D4}.NC, {P}.NC — first match wins. Case-insensitive match is delegated to the host filesystem (Windows is, Linux is not). L > 1 inlines the same subprogram L times in series. Each repetition is a fresh segmentation pass so each block gets its own SyntaxPiece with an independent JSON object — the downstream pipeline mutates JSON in place and would clobber sibling repetitions if instances were shared. Not yet supported: M99 P{seq} early return inside a subprogram and partial-program calls (M98 P{seq}{prog} split encoding). Custom Macro B argument-binding calls (G65 / G66 / G67) live in FanucMacroCallSyntax and FanucModalMacroSyntax — those handle the argument-letter-to-#1..#26 binding and the macro-call frame isolation that M98 deliberately does not provide. SubProgramReturnSyntax Consumes Fanuc-style M99 subprogram-return blocks and pops one CallStack frame. Plain M99 relies on the natural pipeline tail — the inlined body's last block is followed in layers[0] by the caller's next block, so the “return” happens implicitly; this syntax only consumes the M99 trigger (so UnconsumedCheckSyntax doesn't warn), stamps a SubProgramReturn diagnostic section, and writes the popped CallStack for downstream blocks to carry. M99 P{seq} additionally redirects control flow to the caller's N{seq} block via ReplaceSource(IEnumerable). The caller's file is resolved from the popped frame's CallerFilePath; the scan uses the same LabelScanUtil.SegmentAndSkipUntilLabel helper as FanucGotoSyntax, with hardcoded Fanuc-default probes (QuoteCommentSyntax + HeadIndexSyntax with symbol \"N\") because the M99 P semantic itself is Fanuc-family-only and Mazak / Syntec follow the same conventions. The iteration is counted against FanucGotoIterationDependency, sharing the same runaway-loop guard as GOTO — keyed on the same (FileName, TargetN) bucket so a tight M98 → M99 P → M98 … loop trips the same threshold. Pipeline placement: same Evaluation bundle slot it always occupied, right after SubProgramCallSyntax at the head. Needs FanucGotoIterationDependency, ProjectFolderDependency, SegmenterDependency, SyntaxPieceLayerDependency, FileIndexCounterDependency on the dep list when M99 P{seq} is to fire; without them the plain-M99 path still works and the P-jump emits a configuration warning. Detection is on the Parsing.M99 sub-object written by M99Syntax (a ParameterizedFlagSyntax) — the keyword \"M99\" never reaches Parsing.Flags because the parameterized match has already consumed the text by the time NumberedFlagSyntax runs. VariableEvaluatorSyntax Pure expression normalizer for Custom Macro B syntax. Walks the parser-stage residue on a single block and inlines numeric values wherever a Fanuc-style variable reference or bracket expression appears — but does not write to any specific store. Routing “where the resolved literal lands” stays in the brand-specific reader syntaxes (VolatileVariableReadingSyntax, RetainedCommonVariableTable's reader, FanucSystemControlVariableSyntax, …) which run after this syntax on the same block. Two passes per block: Assignments normalize — Parsing.Assignments.#nnn entries whose RHS is non-literal (e.g. \"#500+1\", \"SQRT[#100]\") are evaluated via the VariableEvaluatorSyntax.ChainLookup and the RHS string is replaced with the resolved literal (round-trip-safe \"R\"-format). The entry stays in Parsing.Assignments so downstream reader syntaxes consume it as a pure-literal assignment. Iteration follows source order (Parsing.Assignments insertion order). Parsing tree substitution — every string-typed value reachable from Parsing. (axis tags, canned-cycle sub-objects) is parsed; on a successful evaluation the string is replaced with a numeric JsonValue. Failures silently leave the original string and rely on downstream GetParsedDouble(JsonObject, string, ISentenceCarrier, NcDiagnosticProgress) at consumer sites to surface VariableExpression--Unevaluated only if the tag is actually read. Lookup chain (first non-null wins, configured per brand preset via RuntimeVariableLookups + IVariableLookup instances on NcDependencyList): Current block's own resolved assignments — built-in to VariableEvaluatorSyntax.ChainLookup; covers same-block forward references in source order (an earlier #nnn=literal is visible to a later RHS that mentions #nnn). Each IRuntimeVariableLookup in RuntimeVariableLookups, in list order. Typical contents for a Fanuc-family preset: LocalVariableLookup (#1-#33), VolatileVariableLookup (#100-#499), FanucPositionVariableLookup (#5001-#5043). Each IVariableLookup on the runner's NcDependencyList, in registration order (RetainedCommonVariableTable, FanucParameterTable, FanucToolOffsetVariableLookup). Each lookup self-gates its id range; the evaluator stays brand- and range-agnostic. Adding a new variable surface is additive: register an IVariableLookup on a dependency or push an IRuntimeVariableLookup onto the per-preset list. Same-block forward reference — when an Assignment RHS references a #nnn that is also being assigned later in the same block (i.e. listed in Parsing.Assignments after the RHS being evaluated), the VariableEvaluatorSyntax.ChainLookup cannot pick up the not-yet-resolved value and falls back to traceback / dependency-table reads — effectively the pre-block value. A VariableEvaluator--SameBlockForwardReference warning is emitted per such RHS so the user is told the source-order semantics were not honoured. Practical impact is near-zero for typical CAM-emitted NC (one assignment per line). Formula mirror tree — when either pass actually performs a non-trivial expression evaluation (i.e. the RHS / tag value was not already a pure literal and the evaluator returned a finite value), the original expression string is mirrored to a parallel Formula. entry at the root of the block JSON. The Parsing.* subtree carries the resolved value (R-format string for Assignments; numeric JsonValue for tags); the Formula.* subtree preserves the source-text expression for diagnostics, round-trip reconstruction, and downstream inspection. Pure-literal RHS values produce no Formula entry — the Parsing value is already the original text. In the tag pass the same holds for the Heidenhain dialect only (literal strings short-circuit there because klartext readers consume them as strings); Fanuc / Siemens literal-string tags are numeric-ified as they always were (int-typed capture fallbacks and constant conditions depend on it) and thus carry a Formula entry. Evaluation failures (parse error, vacant variable, non-finite result) produce no Formula entry — the original string is still in Parsing.* untouched, no preservation needed. VolatileVariableReadingSyntax Obtains values for Fanuc-style non-retained common variables (#100-#499). Reads literal numeric assignments from Parsing.Assignments.#nnn, dict-merges them with the previous block's volatile state, and writes the resulting per-block dictionary into Vars.Volatile. Lifetime is bounded by MachiningSession: within one session the dictionary carries forward block-by-block via this syntax; session restart abandons the SyntaxPiece JSON dataflow and starts fresh. Program-end (M02/M30) clearing is handled by ProgramEndCleanSyntax. Only literal numeric RHS values are consumed by this syntax (#124 = 15. ✓; #100 = #1 + 5 ✗). Non-literal RHS entries are left untouched in Parsing.Assignments; VariableEvaluatorSyntax resolves them and writes the result into the same per-block dictionary. The two syntaxes are decoupled — the evaluator's lookup tracebacks via SyntaxPiece linkage so it does not depend on having run before or after this syntax. Structs MacroFileResolver.ResolvedFile Tri-form resolution result. FileName is the bare matched name; RelPath is that name joined with the folder portion of the dependency (relative when the folder is configured relative, absolute fallback when it isn't); AbsPath is the fully-resolved I/O target. Enums LabelScanDirection Scan region and match policy for the anchored LabelScanUtil overload. Forward scans take the first match below the anchor line; backward scans take the nearest match above it." }, "api/Hi.NcParsers.IGetSentence.html": { "href": "api/Hi.NcParsers.IGetSentence.html", "title": "Interface IGetSentence | HiAPI-C# 2025", "summary": "Interface IGetSentence Namespace Hi.NcParsers Assembly HiMech.dll Abstraction for a source that carries a Sentence. public interface IGetSentence 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) Methods GetSentence() Returns the source Sentence carried by this object. Sentence GetSentence() Returns Sentence" }, "api/Hi.NcParsers.ISentenceCarrier.html": { "href": "api/Hi.NcParsers.ISentenceCarrier.html", "title": "Interface ISentenceCarrier | HiAPI-C# 2025", "summary": "Interface ISentenceCarrier Namespace Hi.NcParsers Assembly HiMech.dll Carries a reference to a source Sentence together with its execution-order SentenceIndex. Used as the cross-process alignment carrier for diagnostics, messages, ClStripPos, MachiningStep, etc. — both the source content (via GetSentence()) and the execution-order position (via SentenceIndex) are available without needing two separate references. public interface ISentenceCarrier : IGetSentence, ISentenceIndexed Inherited Members IGetSentence.GetSentence() ISentenceIndexed.SentenceIndex 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)" }, "api/Hi.NcParsers.ISentenceIndexed.html": { "href": "api/Hi.NcParsers.ISentenceIndexed.html", "title": "Interface ISentenceIndexed | HiAPI-C# 2025", "summary": "Interface ISentenceIndexed Namespace Hi.NcParsers Assembly HiMech.dll Abstraction for an object that carries a SentenceIndex — a 0-based ordinal of its source Sentence in NC execution order. Use as a cross-process alignment key (messages, ClStripPos, MachiningStep, etc.) when the (FileIndex, LineIndex) source order is not enough because SubProgram inline reorders blocks relative to source order. public interface ISentenceIndexed 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 SentenceIndex 0-based ordinal in pipeline execution order. int SentenceIndex { get; } Property Value int" }, "api/Hi.NcParsers.ISessionResettable.html": { "href": "api/Hi.NcParsers.ISessionResettable.html", "title": "Interface ISessionResettable | HiAPI-C# 2025", "summary": "Interface ISessionResettable Namespace Hi.NcParsers Assembly HiMech.dll Marker for objects that hold session-scoped runtime state which must be cleared when RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) initializes a new session pipeline (the state.IsInitialized == false edge). Implementers may live on either chain: INcDependency or INcSyntax. SoftNcRunner scans PipelineNcDependencyList and NcSyntaxList on the session-init edge and calls OnSessionReset() on every match. Distinct from IPowerResettable: power-reset clears retained-but-volatile state on a controller power cycle (e.g., Fanuc #100-#499), an edge that survives ordinary session boundaries. Session-reset clears state whose lifetime is one pipeline pass (iteration counters, file-index allocators, etc.). public interface ISessionResettable 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) Methods OnSessionReset() Clears the session-scoped subset owned by this object. Called by RunNcLines(string, IEnumerable, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken) on the same edge that rebuilds the syntax-piece pipeline so a runner reused across sessions does not leak counters / allocators / accumulators from the previous session. void OnSessionReset()" }, "api/Hi.NcParsers.Initializers.HomeMcInitializer.html": { "href": "api/Hi.NcParsers.Initializers.HomeMcInitializer.html", "title": "Class HomeMcInitializer | HiAPI-C# 2025", "summary": "Class HomeMcInitializer Namespace Hi.NcParsers.Initializers Assembly HiMech.dll Sets the initial MachineCoordinateState on the first SyntaxPiece from IHomeMcConfig and IMachineAxisConfig. Every declared axis is written — rotary axes without a configured home seed at 0 deg, the same value the runtime's begin/reset teleport re-homes the machining chain to — so the first motion contour interpolates from the pose the machine actually holds at t=0 instead of a per-axis “never set” hole. public class HomeMcInitializer : INcInitializer, IMakeXmlSource Inheritance object HomeMcInitializer Implements INcInitializer IMakeXmlSource 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) Constructors HomeMcInitializer() Creates a new HomeMcInitializer. public HomeMcInitializer() HomeMcInitializer(XElement) Creates a HomeMcInitializer from an XML source element. public HomeMcInitializer(XElement src) Parameters src XElement Properties Name Display/registration name of the initializer. public string Name { get; } Property Value string XName XML element name used to register and serialize this initializer. public static string XName { get; } Property Value string Methods Initialize(JsonObject, List) Writes initial sections into jsonObject, optionally using values resolved from ncDependencyList. public void Initialize(JsonObject jsonObject, List ncDependencyList) Parameters jsonObject JsonObject ncDependencyList List MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Initializers.INcInitializer.html": { "href": "api/Hi.NcParsers.Initializers.INcInitializer.html", "title": "Interface INcInitializer | HiAPI-C# 2025", "summary": "Interface INcInitializer Namespace Hi.NcParsers.Initializers Assembly HiMech.dll Populates the init-block JSON sections (e.g. home position, static defaults) before the soft-NC runtime processes any source NC syntax. Implementations such as HomeMcInitializer and StaticInitializer write into the supplied JsonObject. public interface INcInitializer : IMakeXmlSource Inherited Members IMakeXmlSource.MakeXmlSource(string, string, bool) 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 Name Display/registration name of the initializer. string Name { get; } Property Value string Methods Initialize(JsonObject, List) Writes initial sections into jsonObject, optionally using values resolved from ncDependencyList. void Initialize(JsonObject jsonObject, List ncDependencyList) Parameters jsonObject JsonObject ncDependencyList List" }, "api/Hi.NcParsers.Initializers.StaticInitializer.html": { "href": "api/Hi.NcParsers.Initializers.StaticInitializer.html", "title": "Class StaticInitializer | HiAPI-C# 2025", "summary": "Class StaticInitializer Namespace Hi.NcParsers.Initializers Assembly HiMech.dll Merges a fixed Initialization JSON snippet into the init-block JSON. Used to seed brand-default sections (e.g. G54, G80) before any source NC syntax is processed. public class StaticInitializer : INcInitializer, IMakeXmlSource Inheritance object StaticInitializer Implements INcInitializer IMakeXmlSource 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) Constructors StaticInitializer() Creates an empty StaticInitializer. public StaticInitializer() StaticInitializer(XElement) Creates a StaticInitializer from an XML source element, reading the embedded JSON from the Initialization child element. public StaticInitializer(XElement src) Parameters src XElement Properties Default An empty StaticInitializer with no preset sections. public static StaticInitializer Default { get; } Property Value StaticInitializer HeidenhainDefault Heidenhain default: no coordinate offset active (datum tables used on demand). public static StaticInitializer HeidenhainDefault { get; } Property Value StaticInitializer Initialization JSON sections to merge into the init-block JSON during Initialize(JsonObject, List). public JsonObject Initialization { get; set; } Property Value JsonObject IsoDefault ISO/Fanuc default: G54 active, canned-cycle cancelled (G80). public static StaticInitializer IsoDefault { get; } Property Value StaticInitializer Name Display/registration name of the initializer. public string Name { get; } Property Value string SiemensDefault Siemens default: no settable work offset active (G500) and canned-cycle cancelled (the shared G80 inactive sentinel — Sinumerik has no G80 vocabulary, the marker is internal). G500 is the Siemens factory default of G group 8 (Programming Manual Fundamentals 03/2010 §16.3, SAG column): unlike Fanuc's implicit G54, a Sinumerik activates no settable frame until the program commands one — a program that never writes G54-G599 machines in the machine frame. Group 1's factory default (G1, not G0) is deliberately NOT seeded: no brand initializer seeds a motion term — first-block motion semantics are owned uniformly by the motion syntaxes' absent-state rules. public static StaticInitializer SiemensDefault { get; } Property Value StaticInitializer XName XML element name used to register and serialize this initializer. public static string XName { get; } Property Value string Methods Initialize(JsonObject, List) Writes initial sections into jsonObject, optionally using values resolved from ncDependencyList. public void Initialize(JsonObject jsonObject, List ncDependencyList) Parameters jsonObject JsonObject ncDependencyList List MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.Initializers.html": { "href": "api/Hi.NcParsers.Initializers.html", "title": "Namespace Hi.NcParsers.Initializers | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Initializers Classes HomeMcInitializer Sets the initial MachineCoordinateState on the first SyntaxPiece from IHomeMcConfig and IMachineAxisConfig. Every declared axis is written — rotary axes without a configured home seed at 0 deg, the same value the runtime's begin/reset teleport re-homes the machining chain to — so the first motion contour interpolates from the pose the machine actually holds at t=0 instead of a per-axis “never set” hole. StaticInitializer Merges a fixed Initialization JSON snippet into the init-block JSON. Used to seed brand-default sections (e.g. G54, G80) before any source NC syntax is processed. Interfaces INcInitializer Populates the init-block JSON sections (e.g. home position, static defaults) before the soft-NC runtime processes any source NC syntax. Implementations such as HomeMcInitializer and StaticInitializer write into the supplied JsonObject." }, "api/Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html": { "href": "api/Hi.NcParsers.InspectionSyntaxs.CleanupSyntax.html", "title": "Class CleanupSyntax | HiAPI-C# 2025", "summary": "Class CleanupSyntax Namespace Hi.NcParsers.InspectionSyntaxs Assembly HiMech.dll Removes indicated JSON keys from JsonObject after upstream syntaxes have consumed them. Useful for cleaning up runtime-derived intermediate data (e.g., ProgramToMcTransform) that should not persist in the final output. Place at the end of the syntax list, after all consumers have read the keys. public class CleanupSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object CleanupSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Examples new CleanupSyntax(\"ProgramToMcTransform\", \"ToolOrientation\") Constructors CleanupSyntax(params string[]) Creates a CleanupSyntax seeded with the given keys. public CleanupSyntax(params string[] keys) Parameters keys string[] JSON keys to remove on each block; copied into Keys. CleanupSyntax(XElement) Reconstructs a CleanupSyntax from a project XML element previously produced by MakeXmlSource(string, string, bool). public CleanupSyntax(XElement src) Parameters src XElement XML element with one Key child per entry in Keys. Properties Keys JSON keys to remove from JsonObject each block. public List Keys { get; set; } Property Value List Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html": { "href": "api/Hi.NcParsers.InspectionSyntaxs.ProgramXyzBackfillSyntax.html", "title": "Class ProgramXyzBackfillSyntax | HiAPI-C# 2025", "summary": "Class ProgramXyzBackfillSyntax Namespace Hi.NcParsers.InspectionSyntaxs Assembly HiMech.dll Debug / observability back-fill: writes ProgramXyz onto blocks that did not have it written by upstream logic syntaxes (e.g. HomeMcInitializer block, chain-change blocks that only updated MC via a rotary-only path), only when the effective program position has changed from the last block that stored a ProgramXyz. Skips the block entirely when either of these holds: The block already has ProgramXyz written — e.g. by ProgramXyzSyntax, G53p1RotaryPositionSyntax, MachineCoordSelectSyntax, ReferenceReturnSyntax, McAbcXyzFallbackSyntax, or RadiusCompensationSyntax. The effective value equals the last stored value (modal-only block such as pure F / S / M / plane-select — no program motion). Only back-fills the root block; ItemsKey items are intentionally skipped (they are managed by Hi.NcParsers.LogicSyntaxs.CompoundMotionSyntaxUtil and per-cycle syntaxes that already write the right per-item ProgramXyz). Placement: end of NcSyntaxList, after UnconsumedCheckSyntax. Runs purely as a bookkeeping pass — no other syntax / semantic in the default pipeline reads the additional back-fill values it emits, so the runtime output (IAct stream) is unchanged whether this syntax is present or not. The only observable effect is additional ProgramXyz entries in the cached syntax-pieces dump, which makes block-to-block debugging and diffing easier. public class ProgramXyzBackfillSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object ProgramXyzBackfillSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors ProgramXyzBackfillSyntax() Creates a default ProgramXyzBackfillSyntax. public ProgramXyzBackfillSyntax() Fields AddedByValue Value written under AddedByKey on the ProgramXyz JSON object when this syntax synthesized the value. Absent on sub-objects authored by LogicSyntaxs-stage writers (e.g. ProgramXyzSyntax, G53p1RotaryPositionSyntax, MachineCoordSelectSyntax) — the AddedByKey is only present when a post-Logic / Inspection stage writer (this syntax, or ModalCarrySyntax) injected the sub-object. Purely informational — no downstream syntax / semantic reads this marker. Intended for cache-file diffing: its presence means \"this block did not originally command program motion; the value is a modal back-fill to make debug dumps more complete\". public const string AddedByValue = \"Backfill\" Field Value string Properties Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html": { "href": "api/Hi.NcParsers.InspectionSyntaxs.SnapshotSyntax.html", "title": "Class SnapshotSyntax | HiAPI-C# 2025", "summary": "Class SnapshotSyntax Namespace Hi.NcParsers.InspectionSyntaxs Assembly HiMech.dll Debug-time JsonObject capture: deep-clones every key on the current JsonObject (except the SnapshotKey envelope itself) into json[SnapshotKey][SectionName], leaving the rest of the block untouched. Insertable at any position in NcSyntaxList — placement determines what stage the dump captures (e.g. drop after the Parsing bundle for \"after-parsing\", drop after the Logic bundle for \"after-logic\"). Two instances with different SectionName values can coexist on the same pipeline and their dumps end up under sibling keys of the same SnapshotKey envelope, so a single cache file shows the data at every captured stage in one place. Excluding the SnapshotKey envelope from the clone keeps each captured section flat: it reflects \"everything else on the block at that stage\", and re-running through additional SnapshotSyntax instances never nests past one level. Set IsEnabled = false to keep the configuration in place but skip the capture (no JSON mutation, no allocation) — convenient for toggling a debug pipeline without removing the entries. public class SnapshotSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object SnapshotSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors SnapshotSyntax() Creates a SnapshotSyntax with no SectionName set yet. public SnapshotSyntax() SnapshotSyntax(string) Creates a SnapshotSyntax with the given SectionName. public SnapshotSyntax(string sectionName) Parameters sectionName string Sub-key under SnapshotKey for this instance's capture. SnapshotSyntax(XElement) Reconstructs a SnapshotSyntax from a project XML element previously produced by MakeXmlSource(string, string, bool). public SnapshotSyntax(XElement src) Parameters src XElement XML element carrying SectionName and IsEnabled; null is treated as defaults. Fields SnapshotKey Top-level JSON envelope key under which captured sections are stored. Each SnapshotSyntax instance writes a sibling key (named by SectionName) inside this envelope. public const string SnapshotKey = \"Snapshot\" Field Value string Properties IsEnabled When false, Build(LazyLinkedListNode, List, NcDiagnosticProgress) is a no-op — keeps the entry in the syntax list for easy toggling without re-editing the project. public bool IsEnabled { get; set; } Property Value bool Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string SectionName Sub-key inside the SnapshotKey envelope under which this instance writes its capture. Two instances configured with the same SectionName are last-writer-wins on a given block. Required: Build(LazyLinkedListNode, List, NcDiagnosticProgress) throws InvalidOperationException when this is null or empty (a misconfiguration the user should see, not a silent skip). public string SectionName { get; set; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory (or Default when factory is null). Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html": { "href": "api/Hi.NcParsers.InspectionSyntaxs.UnconsumedCheckSyntax.html", "title": "Class UnconsumedCheckSyntax | HiAPI-C# 2025", "summary": "Class UnconsumedCheckSyntax Namespace Hi.NcParsers.InspectionSyntaxs Assembly HiMech.dll Emits diagnostic warnings for content remaining after all upstream syntaxes have run: unconsumed Parsing entries and non-empty UnparsedText. Flags listed in ExcludedFlags are silently ignored. Must be placed at the end of NcSyntaxList. public class UnconsumedCheckSyntax : ISituNcSyntax, INcSyntax, IMakeXmlSource Inheritance object UnconsumedCheckSyntax Implements ISituNcSyntax INcSyntax IMakeXmlSource 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) Constructors UnconsumedCheckSyntax() Creates a checker with an empty ExcludedFlags set. public UnconsumedCheckSyntax() UnconsumedCheckSyntax(XElement) Loads excluded flag names from child elements. public UnconsumedCheckSyntax(XElement src) Parameters src XElement Root element named XName. Properties ExcludedFlags Parsing flags/keys that are known but intentionally unhandled — listed entries are silently skipped by this check. This is the per-project escape hatch for non-M-code residue (sections, dotted keys, vendor G/word codes) a project has decided is irrelevant, configured via elements in the project XML. For machine M-codes prefer IMCodeDeclarationConfig declarations instead: an empty declaration silences by explicit intent, and a note-only declaration keeps the code visible as known-but-unmodeled. Brand presets deliberately ship this set empty — a silent default would erode the very signal this check exists for. public HashSet ExcludedFlags { get; set; } Property Value HashSet Name Syntax kind name (typically the concrete type name). public string Name { get; } Property Value string XName XML element name for Generators registration. public static string XName { get; } Property Value string Methods Build(LazyLinkedListNode, List, NcDiagnosticProgress) Build syntax arrangement into the syntaxPieceNode in-place. public void Build(LazyLinkedListNode syntaxPieceNode, List ncDependencyList, NcDiagnosticProgress ncDiagnosticProgress) Parameters syntaxPieceNode LazyLinkedListNode ncDependencyList List ncDiagnosticProgress NcDiagnosticProgress MakeXmlSource(string, string, bool) Creates an XML representation of the object. This method may also generate additional resources such as related files. public XElement MakeXmlSource(string baseDirectory, string relFile, bool exhibitionOnly) Parameters baseDirectory string The base directory for resolving relative paths relFile string The relative file path for the XML source exhibitionOnly bool if true, the extended file creation is suppressed. Returns XElement An XML element representing the object's state Remarks For the demand of easy moving source folder (especially project folder) without configuration file path corruption, the relative file path is applied. The baseDirectory is typically the folder at the nearest configuration file folder. Since the folder can be moving with the configuration file. Reg(XFactory) Registers this type's deserializer with the given XFactory and chains Reg(factory) on dependents. Idempotent. public static void Reg(XFactory factory = null) Parameters factory XFactory" }, "api/Hi.NcParsers.InspectionSyntaxs.html": { "href": "api/Hi.NcParsers.InspectionSyntaxs.html", "title": "Namespace Hi.NcParsers.InspectionSyntaxs | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.InspectionSyntaxs Classes CleanupSyntax Removes indicated JSON keys from JsonObject after upstream syntaxes have consumed them. Useful for cleaning up runtime-derived intermediate data (e.g., ProgramToMcTransform) that should not persist in the final output. Place at the end of the syntax list, after all consumers have read the keys. ProgramXyzBackfillSyntax Debug / observability back-fill: writes ProgramXyz onto blocks that did not have it written by upstream logic syntaxes (e.g. HomeMcInitializer block, chain-change blocks that only updated MC via a rotary-only path), only when the effective program position has changed from the last block that stored a ProgramXyz. Skips the block entirely when either of these holds: The block already has ProgramXyz written — e.g. by ProgramXyzSyntax, G53p1RotaryPositionSyntax, MachineCoordSelectSyntax, ReferenceReturnSyntax, McAbcXyzFallbackSyntax, or RadiusCompensationSyntax. The effective value equals the last stored value (modal-only block such as pure F / S / M / plane-select — no program motion). Only back-fills the root block; ItemsKey items are intentionally skipped (they are managed by Hi.NcParsers.LogicSyntaxs.CompoundMotionSyntaxUtil and per-cycle syntaxes that already write the right per-item ProgramXyz). Placement: end of NcSyntaxList, after UnconsumedCheckSyntax. Runs purely as a bookkeeping pass — no other syntax / semantic in the default pipeline reads the additional back-fill values it emits, so the runtime output (IAct stream) is unchanged whether this syntax is present or not. The only observable effect is additional ProgramXyz entries in the cached syntax-pieces dump, which makes block-to-block debugging and diffing easier. SnapshotSyntax Debug-time JsonObject capture: deep-clones every key on the current JsonObject (except the SnapshotKey envelope itself) into json[SnapshotKey][SectionName], leaving the rest of the block untouched. Insertable at any position in NcSyntaxList — placement determines what stage the dump captures (e.g. drop after the Parsing bundle for \"after-parsing\", drop after the Logic bundle for \"after-logic\"). Two instances with different SectionName values can coexist on the same pipeline and their dumps end up under sibling keys of the same SnapshotKey envelope, so a single cache file shows the data at every captured stage in one place. Excluding the SnapshotKey envelope from the clone keeps each captured section flat: it reflects \"everything else on the block at that stage\", and re-running through additional SnapshotSyntax instances never nests past one level. Set IsEnabled = false to keep the configuration in place but skip the capture (no JSON mutation, no allocation) — convenient for toggling a debug pipeline without removing the entries. UnconsumedCheckSyntax Emits diagnostic warnings for content remaining after all upstream syntaxes have run: unconsumed Parsing entries and non-empty UnparsedText. Flags listed in ExcludedFlags are silently ignored. Must be placed at the end of NcSyntaxList." }, "api/Hi.NcParsers.Keywords.BlockSkip.html": { "href": "api/Hi.NcParsers.Keywords.BlockSkip.html", "title": "Class BlockSkip | HiAPI-C# 2025", "summary": "Class BlockSkip Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Optional block skip marker extracted from the head of an NC block. ISO 6983 / Fanuc calls this feature Block Delete (BDT switch); Siemens / Syntec / Mazak use the same / prefix with matching behaviour. The section is only present on blocks that carry a / prefix. Whether the block's NC commands are actually skipped at runtime depends on IBlockSkipConfig: Config absent or the Layer bit OFF → the / prefix is consumed, Body is left null, and the rest of the line parses as a regular NC block (comments still take effect). Config present and the Layer bit ON → the rest of the line is moved into Body and cleared from UnparsedText, so downstream parsing syntaxes see nothing and no NC action is emitted. Comment syntaxes run before this one so comments (and any embedded CsScript) still take effect. Not a comment: a comment is static metadata, block skip is a runtime toggle that can change per machine/operator setting. public class BlockSkip Inheritance object BlockSkip 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 Body NC commands from the block that were moved out of UnparsedText because the skip took effect (after comment and CsScript extraction, with surrounding whitespace trimmed). Represents the semantic payload of the skipped block — not a verbatim snapshot; recover human-readable NC text with a dedicated formatter if needed. null when the skip did not take effect (no IBlockSkipConfig or its layer bit was OFF); in that case the block's commands are still in UnparsedText and parse normally. public string Body { get; set; } Property Value string Layer Skip layer (1..9). A bare / without a digit is layer 1 (most controllers treat / and /1 as the same switch). /2../9 map to layers 2..9. public int Layer { get; set; } Property Value int Symbol Delimiter symbol as it appeared in the NC block (always \"/\"). public string Symbol { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.CallFrame.html": { "href": "api/Hi.NcParsers.Keywords.CallFrame.html", "title": "Class CallFrame | HiAPI-C# 2025", "summary": "Class CallFrame Namespace Hi.NcParsers.Keywords Assembly HiMech.dll One entry in Frames. Holds the caller-side information consumers need to “unwind” or “look back” — currently only the relative file path of the caller, used by SubProgramReturnSyntax on M99 P{seq} to locate the caller's N{seq} block. public class CallFrame Inheritance object CallFrame 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 CallerFilePath Project-relative file path of the calling block — same form as FilePath on the caller side. Used by M99 P{seq} to re-segment the caller file and skip ahead to N{seq}. public string CallerFilePath { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.CallStack.html": { "href": "api/Hi.NcParsers.Keywords.CallStack.html", "title": "Class CallStack | HiAPI-C# 2025", "summary": "Class CallStack Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON-section data shape representing the active call-frame stack on a block — pushed by call-and-inline syntaxes (SubProgramCallSyntax for M98/M198, FanucMacroCallSyntax for G65, and FanucModalMacroSyntax's expansion phase for G66 implicit triggers) and popped by SubProgramReturnSyntax on M99. Every block between push and pop carries the section forward via ModalCarrySyntax; the caller's blocks before push and after pop carry the surrounding stack state (typically empty when running from the main file). The section is wrapped in a JsonObject rather than exposed as a bare JsonArray so it fits ModalCarry's \"deep-clone JsonObject\" carry pattern — the array of frames lives inside Frames. public class CallStack Inheritance object CallStack 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 Frames Ordered list of active call frames, bottom-of-stack first. Each entry is a CallFrame-shaped JSON object. Length 0 means the block is in the main (top-level) frame. public JsonArray Frames { get; set; } Property Value JsonArray" }, "api/Hi.NcParsers.Keywords.CannedCycle.html": { "href": "api/Hi.NcParsers.Keywords.CannedCycle.html", "title": "Class CannedCycle | HiAPI-C# 2025", "summary": "Class CannedCycle Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for ICannedCycleDef. public class CannedCycle : ICannedCycleDef Inheritance object CannedCycle Implements ICannedCycleDef 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 Params Resolved absolute cycle parameters: X, Y, Z, R, Q, F, P, K. Used for modal lookback so the next repeat block can merge its own overrides with the previously-resolved values. Absent on G80 blocks. public JsonObject Params { get; set; } Property Value JsonObject ReturnMode Return level mode: “G98” (initial Z) or “G99” (R-point). Only meaningful when Term is an active cycle code; absent on G80 blocks. public string ReturnMode { get; set; } Property Value string Term NC term of the canned-cycle-group code on this block (“G81”, “G82”, ..., “G89”, or “G80” for explicit cancel). Modal-repeat blocks carry the same term as the most recent active cycle. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Comment.html": { "href": "api/Hi.NcParsers.Keywords.Comment.html", "title": "Class Comment | HiAPI-C# 2025", "summary": "Class Comment Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Comment extracted from an NC block. Symbol identifies the comment style; Text holds the content without the symbol. Downstream syntaxes (e.g., CsScript) may further trim Text after extracting embedded markers. public class Comment Inheritance object Comment 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 Symbol Comment delimiter used in the NC block (e.g., \"%\", \"()\", \";\", \"//\"). public string Symbol { get; set; } Property Value string Text Comment body without the delimiter symbol. Initially set by the comment syntax; may be trimmed by CsScriptSyntax after script extraction. public string Text { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.CompoundMotion.html": { "href": "api/Hi.NcParsers.Keywords.CompoundMotion.html", "title": "Class CompoundMotion | HiAPI-C# 2025", "summary": "Class CompoundMotion Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for ICompoundMotionDef. public class CompoundMotion : ICompoundMotionDef Inheritance object CompoundMotion Implements ICompoundMotionDef 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) Fields FeedrateKey JSON key for feedrate (mm/s) inside the Hi.Motion section of non-rapid items. Absent on rapid items whose speed is determined by machine config. public const string FeedrateKey = \"Feedrate_mmds\" Field Value string ItemsKey JSON array key for the sub-operation items within the section. Items are discriminated by Hi.Motion or Dwell key presence. public const string ItemsKey = \"Items\" Field Value string Properties Term CNC term that triggered this compound motion (e.g., “G28”, “G81”). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Coolant.html": { "href": "api/Hi.NcParsers.Keywords.Coolant.html", "title": "Class Coolant | HiAPI-C# 2025", "summary": "Class Coolant Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for ICoolantDef. public class Coolant : ICoolantDef Inheritance object Coolant Implements ICoolantDef 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) Fields Flood Flood coolant (corresponds to M08). public const string Flood = \"Flood\" Field Value string Mist Mist coolant (corresponds to M07). public const string Mist = \"Mist\" Field Value string Off Coolant off (corresponds to M09). public const string Off = \"Off\" Field Value string Properties IsOn Whether any coolant is currently active. public bool IsOn { get; set; } Property Value bool Mode Abstract coolant mode (Flood / Mist / Off). public string Mode { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.CoordinateOffset.html": { "href": "api/Hi.NcParsers.Keywords.CoordinateOffset.html", "title": "Class CoordinateOffset | HiAPI-C# 2025", "summary": "Class CoordinateOffset Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Work coordinate offset state written by IsoCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G54, G55, G56, G57, G58, G59, G59.1–G59.9. Siemens: G54–G57 + G505–G599 (extended), G500 to cancel. Heidenhain: CYCL DEF 247 (Datum Preset) / CYCL DEF 7 (Datum Shift). public class CoordinateOffset Inheritance object CoordinateOffset 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) Examples \"CoordinateOffset\": { \"CoordinateId\": \"G54\", \"Offset_X\": 0.0, \"Offset_Y\": 0.0, \"Offset_Z\": -100.0 } Properties CoordinateId Active coordinate system ID: “G54”, “G55”, ..., “G59.9”. public string CoordinateId { get; set; } Property Value string Offset_X X component of the coordinate offset (mm). public double Offset_X { get; set; } Property Value double Offset_Y Y component of the coordinate offset (mm). public double Offset_Y { get; set; } Property Value double Offset_Z Z component of the coordinate offset (mm). public double Offset_Z { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.CsScript.html": { "href": "api/Hi.NcParsers.Keywords.CsScript.html", "title": "Class CsScript | HiAPI-C# 2025", "summary": "Class CsScript Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section-key holder for inline C# scripts attached to an NC block. Carries BeginScript (run before the block's acts) and EndScript (run after). Resolved by CsScriptBeginSemantic and CsScriptEndSemantic. public class CsScript Inheritance object CsScript 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 BeginScript The script effect before the NC block excuting. public string BeginScript { get; set; } Property Value string EndScript The script effect after the NC block excuted. public string EndScript { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Dwell.html": { "href": "api/Hi.NcParsers.Keywords.Dwell.html", "title": "Class Dwell | HiAPI-C# 2025", "summary": "Class Dwell Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IDwellDef. public class Dwell : IDwellDef Inheritance object Dwell Implements IDwellDef 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 Time Dwell time in seconds. public double Time { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html": { "href": "api/Hi.NcParsers.Keywords.Fanuc.FanucKeywords.html", "title": "Class FanucKeywords | HiAPI-C# 2025", "summary": "Class FanucKeywords Namespace Hi.NcParsers.Keywords.Fanuc Assembly HiMech.dll Fanuc-specific G-code and M-code constants. For ISO standard codes shared across brands, see IsoKeywords. public static class FanucKeywords Inheritance object FanucKeywords Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields G12p1 G12.1: start Polar Coordinate Interpolation (turn-mill face milling). The linear axis word (X) commands a diameter value; the rotary axis word (C) commands a hypothetical Cartesian coordinate in linear units. See PolarInterpolationSyntax. public const string G12p1 = \"G12.1\" Field Value string G13p1 G13.1: end Polar Coordinate Interpolation. Modal counterpart of G12p1. public const string G13p1 = \"G13.1\" Field Value string G43p4 G43.4: TCPM (Tool Center Point Management / RTCP). Fanuc-specific. Siemens equivalent: TRAORI. Heidenhain equivalent: M128. public const string G43p4 = \"G43.4\" Field Value string" }, "api/Hi.NcParsers.Keywords.Fanuc.html": { "href": "api/Hi.NcParsers.Keywords.Fanuc.html", "title": "Namespace Hi.NcParsers.Keywords.Fanuc | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Keywords.Fanuc Classes FanucKeywords Fanuc-specific G-code and M-code constants. For ISO standard codes shared across brands, see IsoKeywords." }, "api/Hi.NcParsers.Keywords.FanucGoto.html": { "href": "api/Hi.NcParsers.Keywords.FanucGoto.html", "title": "Class FanucGoto | HiAPI-C# 2025", "summary": "Class FanucGoto Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B GOTO record. Stamped on the host block by FanucGotoSyntax after the control-flow decision has been made; produced earlier by FanucGotoParsingSyntax as a parsing-stage sub-section (Parsing.FanucGoto) carrying the raw captured fields. Two source forms map to the same shape: GOTO — unconditional jump. Condition is null. IF [] GOTO — conditional jump. Condition holds the expression text from inside the brackets. At parsing time N is a raw token from the source — it may be a literal (\"100\"), a variable reference (\"#1\"), or a bracketed expression (\"#[#2+5]\"). VariableEvaluatorSyntax substitutes a resolved literal back into the same field in the Evaluation bundle; FanucGotoSyntax then int.TryParses the final string to produce an int target. Lifecycle of the condition fields. Condition is written at Parsing time as the raw expression text and substituted in place by VariableEvaluatorSyntax pass-2 — the original text is preserved at Formula.FanucGoto.Condition when substitution succeeds. ConditionEvaluated is the host-level stamp written by FanucGotoSyntax carrying the tri-state truthy outcome. public class FanucGoto Inheritance object FanucGoto 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 Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucGoto.Condition. Null for the unconditional form. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucGotoSyntax: true — condition met (gate fires). false — condition not met (gate falls through silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞), or the host block is the unconditional GOTO form. The original expression text is preserved at Formula.FanucGoto.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? Fired Whether the GOTO actually redirected control flow on this block. False on conditional GOTOs whose condition evaluated to false, on conditional GOTOs whose condition was not evaluable, and on iteration-limit-exceeded blocks. The host block is preserved in either case so diagnostic readers can still see the call. public bool Fired { get; set; } Property Value bool N Target sequence-number expression — kept as a string so the in-place evaluator can substitute \"#1\" → “3” before the Evaluation stage parses it as an int. public string N { get; set; } Property Value string Term Triggering phrase: “GOTO” for the unconditional form, “IF...GOTO” for the conditional form. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucIfThen.html": { "href": "api/Hi.NcParsers.Keywords.FanucIfThen.html", "title": "Class FanucIfThen | HiAPI-C# 2025", "summary": "Class FanucIfThen Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B IF [] THEN single-block conditional record. Stamped on the host block by FanucIfThenSyntax after the gate decision; produced earlier by FanucIfThenParsingSyntax as a parsing-stage sub-section (Parsing.FanucIfThen) carrying the raw captured fields plus an internal PendingAssignments sub-object harvested from the body text. Spec: IF [bool-expr] THEN executes only when the condition is truthy. Unlike FanucGoto's conditional form there is no jump — the body affects the current block only, no source splice, no label scan, no iteration watchdog. The most common body shape is a single Custom Macro B assignment (#nnn = ); multiple assignments in one body are also accepted and lifted together. Condition is held as a string at parsing time so VariableEvaluatorSyntax's pass-2 tree walk can substitute it to a numeric JsonValue in place; the FanucIfThenSyntax tail then reads the resolved node polymorphically via the same ReadCondition shape used by FanucGotoSyntax. public class FanucIfThen Inheritance object FanucIfThen 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 Applied Whether the body actually fired on this block. False on conditions that evaluated to zero, on conditions the evaluator could not resolve, and on bodies that did not parse as one or more assignments (a G-code-only body for example, currently unsupported and warned). The host block is preserved in either case so diagnostic readers can still see the IF-THEN call site. public bool Applied { get; set; } Property Value bool BodyText Raw body text after the THEN keyword, retained verbatim for diagnostics and round-trip visibility. The structured sub-section actually lifted on a truthy condition lives at Parsing.FanucIfThen.PendingAssignments, populated by the parsing syntax via NcSyntaxUtil's GrabTagAssignment. public string BodyText { get; set; } Property Value string Condition Raw boolean expression text from inside the IF [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax's pass-2 tree walk when the expression evaluates successfully. The original text survives at Formula.FanucIfThen.Condition. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the IF-form's boolean condition, stamped on the host block by FanucIfThenSyntax: true — condition met (body fires). false — condition not met (body skipped silently). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞). The original expression text is preserved at Formula.FanucIfThen.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool?" }, "api/Hi.NcParsers.Keywords.FanucMacroCall.html": { "href": "api/Hi.NcParsers.Keywords.FanucMacroCall.html", "title": "Class FanucMacroCall | HiAPI-C# 2025", "summary": "Class FanucMacroCall Namespace Hi.NcParsers.Keywords Assembly HiMech.dll One-shot custom-macro-call record written by FanucMacroCallSyntax. Lives on both the G65 host block (the caller) and every inlined block of the macro body — so a cache-dump reader can land on any block inside the macro and immediately see “this block belongs to a G65 call of FileName with these argument bindings” without back-walking to find the host. Each inlined block additionally carries the resolved Vars.Local #1-#26 bindings derived from Args (see FanucMacroArgumentMap), so LocalVariableLookup resolves macro args in a single-block lookup. Frame isolation is structural: caller blocks never have Vars.Local written, so after the macro body ends, the next caller block reads null for any #1-#26 without any explicit frame marker. public class FanucMacroCall Inheritance object FanucMacroCall 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 Args Argument-letter → numeric-value map captured from the call line (e.g., G65 P9100 A1.5 B2. ⇒ { “A”: 1.5, “B”: 2.0 }). The matching Vars.Local bindings on each inlined block are derived from this via the Type-I argument-letter map (FanucMacroArgumentMap). public JsonObject Args { get; set; } Property Value JsonObject FileName Bare matched file name (e.g. “O9100.NC”). The resolver tries several fallback patterns (FilenamePatterns); this records which one hit. JSON-portable across environments — the folder context lives on the host's SubProgramFolderConfig dependency, not encoded here. public string FileName { get; set; } Property Value string L Repeat count from the L parameter; defaults to 1 when absent. public int L { get; set; } Property Value int P Macro program number from the P parameter (e.g., 9100 for O9100). public int P { get; set; } Property Value int Term Triggering keyword (always “G65”). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucModalMacro.html": { "href": "api/Hi.NcParsers.Keywords.FanucModalMacro.html", "title": "Class FanucModalMacro | HiAPI-C# 2025", "summary": "Class FanucModalMacro Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Modal-macro-call record left by FanucModalMacroSyntax. Carries Fanuc G66 setup state forward block-to-block until cancelled by G67. The section is also written on the G67 block itself (with Term = “G67”) so cache dumps show the cancel edge; subsequent blocks then carry no section at all. Per-block expansion of the modal call into an actual macro inline at every positioning move is not yet implemented — a FanucModalMacro--NotExpanded warning is emitted on the setup block to flag the simulation gap. The setup state itself is captured faithfully so external tooling can detect \"this block sits inside a G66 modal\" via the carried section. public class FanucModalMacro Inheritance object FanucModalMacro 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 Args Argument-letter → numeric-value map captured from the G66 setup line. Null on a G67 cancel block. public JsonObject Args { get; set; } Property Value JsonObject FileName Bare matched file name (e.g. “O9000.NC”) that would supply the modal-call macro body. Null on a G67 cancel block or when the file could not be resolved at the setup site. Same JSON-portable form as FileName — the folder context lives on the host's SubProgramFolderConfig dependency, not encoded here. public string FileName { get; set; } Property Value string L Repeat count from the L parameter; defaults to 1 when absent. Null on a G67 cancel block. public int? L { get; set; } Property Value int? P Macro program number from the P parameter on the G66 setup. Null on a G67 cancel block. public int? P { get; set; } Property Value int? Term Triggering keyword: “G66” for setup / modal-active blocks, “G67” for the cancel block. Carried blocks downstream of a G66 setup mirror the setup section verbatim. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucPathSmoothing.html": { "href": "api/Hi.NcParsers.Keywords.FanucPathSmoothing.html", "title": "Class FanucPathSmoothing | HiAPI-C# 2025", "summary": "Class FanucPathSmoothing Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section data holder for IFanucPathSmoothingDef. public class FanucPathSmoothing : PathSmoothing, IFanucPathSmoothingDef, IPathSmoothingDef Inheritance object PathSmoothing FanucPathSmoothing Implements IFanucPathSmoothingDef IPathSmoothingDef Inherited Members PathSmoothing.IsEnabled PathSmoothing.Term 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 Level Fanuc G05.1 R precision / smoothness level number (typically 1..10). null when the source NC line did not specify R. Ignored when IsEnabled is false. public int? Level { get; set; } Property Value int?" }, "api/Hi.NcParsers.Keywords.FanucProgramNumber.html": { "href": "api/Hi.NcParsers.Keywords.FanucProgramNumber.html", "title": "Class FanucProgramNumber | HiAPI-C# 2025", "summary": "Class FanucProgramNumber Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc-family program identifier header that follows a TapeBoundary line — e.g. O1234 or . Wrapper records the surface form so a parsed block can be emitted back to the original notation. public class FanucProgramNumber Inheritance object FanucProgramNumber 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) Fields WrapperAngle Wrapper value for the angle-bracketed form: . public const string WrapperAngle = \"Angle\" Field Value string Remarks Fanuc 30i / 31i / 32i extended program-name notation. Some CAM post-processors emit this at the head of subprogram files. WrapperNone Wrapper value for the bare form: O1234. public const string WrapperNone = \"None\" Field Value string Properties Number The numeric portion of the program identifier, as written (no leading zero normalization). public string Number { get; set; } Property Value string Wrapper Surface form of the wrapping symbols around the O token — one of WrapperNone or WrapperAngle. New values may be added as additional notations are observed; consumers should treat unknown values as round-trip-only. public string Wrapper { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.FanucWhileDo.html": { "href": "api/Hi.NcParsers.Keywords.FanucWhileDo.html", "title": "Class FanucWhileDo | HiAPI-C# 2025", "summary": "Class FanucWhileDo Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc Custom Macro B WHILE/END bounded-loop record. Stamped on the host block by FanucWhileDoSyntax after the control-flow decision has been made; produced earlier by FanucWhileDoParsingSyntax as a parsing-stage sub-section (Parsing.FanucWhileDo) carrying the raw captured fields. Two phrases map to the same shape, distinguished by Term: WHILE [] DO — loop entry. Condition holds the expression text from inside the brackets at parsing time; substituted to a numeric JsonValue by VariableEvaluatorSyntax in place. ConditionEvaluated carries the host-level truthy outcome at stamp time. END — loop terminator. Carries no condition; unconditionally reverse-jumps to the matching WHILE block on every execution (re-evaluation of the entry condition is the WHILE block's responsibility). LoopId is the spec-named \"identification number for nesting\" (the m in DO m / END m). Nested loops must use distinct LoopIds; matching is by exact value. Same-LoopId nesting is spec-undefined and not given special handling here. Active loop frames are carried block-to-block via the top-level WhileFrames JSON section (a JsonObject keyed by LoopId-as-string, each entry recording the BeginLineNo of the WHILE block that opened that frame). Carried by ModalCarrySyntax as part of its Logic tracked keys (mutated in Evaluation, must reach Logic-stage consumers and downstream blocks unchanged). public class FanucWhileDo Inheritance object FanucWhileDo 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 Condition Raw boolean expression text from inside the WHILE's [...] brackets at Parsing time; substituted to a numeric JsonValue in place by VariableEvaluatorSyntax when the expression evaluates successfully. The original text survives at Formula.FanucWhileDo.Condition. Null on the END phrase. Note: not written on the host-level stamp; the gate outcome lives at ConditionEvaluated. public string Condition { get; set; } Property Value string ConditionEvaluated Tri-state outcome of evaluating the WHILE's boolean condition, stamped on the host block by FanucWhileDoSyntax: true — condition met (body executes; loop continues). false — condition not met (loop exits; forward-jump past matching END). null — evaluator could not produce a finite truth value (vacant variable, parse error, NaN / ±∞); loop exits defensively and emits FanucWhileDo--ConditionNotEvaluated. Null also on the END phrase (no condition to evaluate). The original expression text is preserved at Formula.FanucWhileDo.Condition by VariableEvaluatorSyntax. public bool? ConditionEvaluated { get; set; } Property Value bool? LoopId The m identifier from DO m / END m — the spec-named “identification number for nesting”. Nested loops use distinct LoopIds (1–3 typical); WHILE and END pair by exact match. public int LoopId { get; set; } Property Value int Term Triggering phrase: “WHILE...DO” for the loop entry form, “END” for the loop terminator. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Feedrate.html": { "href": "api/Hi.NcParsers.Keywords.Feedrate.html", "title": "Class Feedrate | HiAPI-C# 2025", "summary": "Class Feedrate Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IFeedrateDef. public class Feedrate : IFeedrateDef Inheritance object Feedrate Implements IFeedrateDef 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 FeedrateValue Feedrate value (mm/min for G94, mm/rev for G95). public double FeedrateValue { get; set; } Property Value double Term “G94” (per minute) or “G95” (per revolution). See IsoKeywords. public string Term { get; set; } Property Value string Unit Display unit derived from Term: “mm/min” for G94, “mm/rev” for G95. public string Unit { get; set; } Property Value string Methods GetUnit(string) Returns the display unit for a given feedrate term. public static string GetUnit(string term) Parameters term string Returns string" }, "api/Hi.NcParsers.Keywords.Generic.IsoKeywords.html": { "href": "api/Hi.NcParsers.Keywords.Generic.IsoKeywords.html", "title": "Class IsoKeywords | HiAPI-C# 2025", "summary": "Class IsoKeywords Namespace Hi.NcParsers.Keywords.Generic Assembly HiMech.dll ISO/RS274 standard G-code and M-code constants. Shared across Fanuc, Mazak, Okuma, and other ISO-compatible controllers. Brand-specific codes belong in their own keyword classes (e.g., FanucKeywords, Siemens, Heidenhain). public static class IsoKeywords Inheritance object IsoKeywords Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields CannedCycleCodes All canned cycle codes. public static readonly string[] CannedCycleCodes Field Value string[] CoolantCodes All coolant control codes (M07 mist, M08 flood, M09 off). public static readonly string[] CoolantCodes Field Value string[] G00 Rapid positioning — moves all axes at maximum traverse rate to the target. public const string G00 = \"G00\" Field Value string G01 Linear interpolation — moves in a straight line at the programmed feedrate. public const string G01 = \"G01\" Field Value string G02 Circular interpolation clockwise — arc motion in the active plane at the programmed feedrate. Center defined by I/J/K offsets or R radius. public const string G02 = \"G02\" Field Value string G03 Circular interpolation counter-clockwise — arc motion in the active plane at the programmed feedrate. Center defined by I/J/K offsets or R radius. public const string G03 = \"G03\" Field Value string G17 XY plane selection — arcs and canned cycles operate in the XY plane. Default on most controllers. public const string G17 = \"G17\" Field Value string G18 ZX plane selection — arcs and canned cycles operate in the ZX plane. public const string G18 = \"G18\" Field Value string G19 YZ plane selection — arcs and canned cycles operate in the YZ plane. public const string G19 = \"G19\" Field Value string G20 Inch unit mode — axis values and feedrates are interpreted in inches (inch/inch-per-min). Not supported by the HiNC pipeline; emits an Unsupported Error. public const string G20 = \"G20\" Field Value string G21 Metric unit mode — axis values and feedrates are interpreted in millimetres (mm/mm-per-min). HiNC default. public const string G21 = \"G21\" Field Value string G28 Reference point return — moves through an intermediate point, then to the machine reference (home) position. public const string G28 = \"G28\" Field Value string G40 Cutter radius compensation cancel — deactivates G41/G42 tool radius offset. public const string G40 = \"G40\" Field Value string G41 Cutter radius compensation left — offsets tool path to the left of the programmed path by the tool radius. public const string G41 = \"G41\" Field Value string G42 Cutter radius compensation right — offsets tool path to the right of the programmed path by the tool radius. public const string G42 = \"G42\" Field Value string G43 Tool length compensation (+) — applies positive-direction tool height offset from the offset table. public const string G43 = \"G43\" Field Value string G44 Tool length compensation (−) — applies negative-direction tool height offset from the offset table. public const string G44 = \"G44\" Field Value string G49 Tool length compensation cancel — deactivates G43/G44 tool height offset. public const string G49 = \"G49\" Field Value string G52 Local coordinate system — sets a temporary coordinate offset relative to the active work coordinate system. public const string G52 = \"G52\" Field Value string G53 Machine coordinate selection — non-modal, one-shot. Axis values specify machine coordinates directly, bypassing all work offsets. public const string G53 = \"G53\" Field Value string G53p1 Tool axis direction control — non-modal, one-shot. Positions rotary axes to align with the active tilted work plane (G68.2). Requires G68.2 active. public const string G53p1 = \"G53.1\" Field Value string G54 Work coordinate system 1 — first standard work offset (most commonly used). public const string G54 = \"G54\" Field Value string G54Series All standard work coordinate offsets: G54–G59 plus extended offsets G59.1–G59.9. public static readonly string[] G54Series Field Value string[] G55 Work coordinate system 2. public const string G55 = \"G55\" Field Value string G56 Work coordinate system 3. public const string G56 = \"G56\" Field Value string G57 Work coordinate system 4. public const string G57 = \"G57\" Field Value string G58 Work coordinate system 5. public const string G58 = \"G58\" Field Value string G59 Work coordinate system 6. public const string G59 = \"G59\" Field Value string G68 Coordinate rotation — rotates the XY program coordinate system around a center point by an angle R. public const string G68 = \"G68\" Field Value string G68p2 Tilted work plane (5-axis) — defines an inclined coordinate system via Euler angles (I/J/K) and an origin (X/Y/Z). public const string G68p2 = \"G68.2\" Field Value string G69 Coordinate rotation / tilted work plane cancel — deactivates G68 or G68.2. public const string G69 = \"G69\" Field Value string G73 High-speed peck drilling cycle — drills in increments of Q with partial retract (chip breaking). public const string G73 = \"G73\" Field Value string G74 Left-hand tapping cycle — feed to Z with CCW spindle, reverse to CW, feed retract. public const string G74 = \"G74\" Field Value string G76 Fine boring cycle — feed to Z, oriented spindle stop, tool shift Q, rapid retract, shift back. public const string G76 = \"G76\" Field Value string G80 Canned cycle cancel — deactivates G81–G89. public const string G80 = \"G80\" Field Value string G81 Drilling cycle — rapid to R, feed to Z, rapid retract. public const string G81 = \"G81\" Field Value string G82 Drilling cycle with dwell — same as G81 plus dwell P seconds at bottom. public const string G82 = \"G82\" Field Value string G83 Peck drilling cycle — drills in increments of Q with full retract to R between strokes. public const string G83 = \"G83\" Field Value string G84 Right-hand tapping cycle — feed to Z with CW spindle, reverse to CCW, feed retract. public const string G84 = \"G84\" Field Value string G85 Boring cycle — rapid to R, feed to Z, feed retract. public const string G85 = \"G85\" Field Value string G86 Boring cycle — rapid to R, feed to Z, spindle stop, rapid retract. public const string G86 = \"G86\" Field Value string G87 Back boring cycle — OSS + shift, rapid to Z, shift back, spindle on, feed up to R, OSS + shift, retract. public const string G87 = \"G87\" Field Value string G89 Boring cycle with dwell — rapid to R, feed to Z, dwell P, feed retract. public const string G89 = \"G89\" Field Value string G90 Absolute positioning — axis values specify the target position directly. public const string G90 = \"G90\" Field Value string G91 Incremental positioning — axis values specify the distance to move from the current position. public const string G91 = \"G91\" Field Value string G94 Feed per minute — feedrate F is in mm/min (or inch/min). public const string G94 = \"G94\" Field Value string G95 Feed per revolution — feedrate F is in mm/rev (or inch/rev), synchronized to spindle speed. public const string G95 = \"G95\" Field Value string G98 Canned cycle return to initial level. public const string G98 = \"G98\" Field Value string G99 Canned cycle return to R-point level. public const string G99 = \"G99\" Field Value string M00 Program stop (unconditional) — halts execution; operator must press Cycle Start to resume. Modal state preserved. public const string M00 = \"M00\" Field Value string M01 Optional program stop — halts execution only when the Optional Stop switch on the panel is ON; otherwise ignored. Modal state preserved. public const string M01 = \"M01\" Field Value string M02 Program end (no rewind) — stops execution and resets modal state. public const string M02 = \"M02\" Field Value string M03 Spindle ON clockwise — starts spindle rotation in the CW direction. public const string M03 = \"M03\" Field Value string M04 Spindle ON counter-clockwise — starts spindle rotation in the CCW direction. public const string M04 = \"M04\" Field Value string M05 Spindle stop — halts spindle rotation. public const string M05 = \"M05\" Field Value string M06 Tool change — executes automatic tool change. public const string M06 = \"M06\" Field Value string M07 Coolant ON (mist) — activates a fine oil-mist / air-blast coolant stream. public const string M07 = \"M07\" Field Value string M08 Coolant ON (flood) — activates flood coolant. public const string M08 = \"M08\" Field Value string M09 Coolant OFF — deactivates all coolant. public const string M09 = \"M09\" Field Value string M30 Program end — stops execution, resets modal state, rewinds to start. public const string M30 = \"M30\" Field Value string PlaneSelectCodes All plane selection codes. public static readonly string[] PlaneSelectCodes Field Value string[] ProgramEndCodes All program end codes. public static readonly string[] ProgramEndCodes Field Value string[] ProgramStopCodes All program-stop codes (M00 unconditional, M01 optional). public static readonly string[] ProgramStopCodes Field Value string[] UnitModeCodes All unit-mode codes (Group 06). public static readonly string[] UnitModeCodes Field Value string[]" }, "api/Hi.NcParsers.Keywords.Generic.MotionForm.html": { "href": "api/Hi.NcParsers.Keywords.Generic.MotionForm.html", "title": "Class MotionForm | HiAPI-C# 2025", "summary": "Class MotionForm Namespace Hi.NcParsers.Keywords.Generic Assembly HiMech.dll Motion interpolation form constants used in Form. Each form corresponds to a specialized INcSemantic that resolves the motion into IAct sequences. public static class MotionForm Inheritance object MotionForm Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields ClArc Circular interpolation (arc/helix) purely at cutter-location (CL) level — no machine coordinates involved. Consumed by CL-source runners (e.g. NX CLSF) whose motion semantics emit ActClArc. public const string ClArc = \"ClArc\" Field Value string ClLinear Linear interpolation at cutter-location (CL) level with per-step inverse kinematics. Used when RTCP (G43.4/TRAORI/M128) is active and rotary axes move, so the tool orientation changes during interpolation. Resolved by ClLinearMcMotionSemantic. public const string ClLinear = \"ClLinear\" Field Value string ClTeleport Non-cutting reposition purely at cutter-location (CL) level (no path swept, no machining step). Consumed by CL-source runners whose motion semantics emit ActClTeleport. public const string ClTeleport = \"ClTeleport\" Field Value string McArc Circular interpolation (arc/helix) in program coordinates, transformed to machine coordinates via ActMcXyzSpiralContour. Resolved by McArcMotionSemantic. public const string McArc = \"McArc\" Field Value string McLinear Linear interpolation in machine coordinates. McLinearMotionSemantic discriminates XYZ-only vs XYZABC by checking for rotary axis values in MachineCoordinateState. public const string McLinear = \"McLinear\" Field Value string McPolarArc Circular interpolation (arc/helix) on the polar hypothetical plane while Polar Coordinate Interpolation (Fanuc G12.1) is active. Resolved by McPolarArcMotionSemantic into ActMcPolarSpiralContour. public const string McPolarArc = \"McPolarArc\" Field Value string McPolarLinear Linear interpolation on the polar hypothetical plane while Polar Coordinate Interpolation (Fanuc G12.1) is active. Resolved by McPolarLinearMotionSemantic into ActMcPolarLinearContour. public const string McPolarLinear = \"McPolarLinear\" Field Value string" }, "api/Hi.NcParsers.Keywords.Generic.html": { "href": "api/Hi.NcParsers.Keywords.Generic.html", "title": "Namespace Hi.NcParsers.Keywords.Generic | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Keywords.Generic Classes IsoKeywords ISO/RS274 standard G-code and M-code constants. Shared across Fanuc, Mazak, Okuma, and other ISO-compatible controllers. Brand-specific codes belong in their own keyword classes (e.g., FanucKeywords, Siemens, Heidenhain). MotionForm Motion interpolation form constants used in Form. Each form corresponds to a specialized INcSemantic that resolves the motion into IAct sequences." }, "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCall.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCall.html", "title": "Class HeidenhainCall | HiAPI-C# 2025", "summary": "Class HeidenhainCall Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll Block-root record left on a CALL LBL/CALL PGM host block by HeidenhainSubProgramCallSyntax. Inlined callee blocks are stamped with a clone of the same record. public class HeidenhainCall Inheritance object HeidenhainCall 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 FileName Bare matched file name for a resolved CALL PGM. public string FileName { get; set; } Property Value string Name Label number/name or called program name (quotes stripped). public string Name { get; set; } Property Value string Rep Repeat count of the CALL LBL n REP m program-section-repeat form (the section between LBL n and the call line runs m extra times). Absent on the plain subprogram-call form. public int Rep { get; set; } Property Value int Skipped true when the call was consumed without inlining (unresolved program file, label not found, missing LBL 0, or the call-depth rail) — structured safe-skip, no motion effect. public bool Skipped { get; set; } Property Value bool Target Call target kind: “LBL” or “PGM”. public string Target { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainCyclCall.html", "title": "Class HeidenhainCyclCall | HiAPI-C# 2025", "summary": "Class HeidenhainCyclCall Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll Block-root record left on a cycle-call host block by HeidenhainCannedCycleSyntax, making the consumed call visible in cache dumps and carrying the deferred M140 retract hand-off for HeidenhainCycleRetractSyntax. public class HeidenhainCyclCall Inheritance object HeidenhainCyclCall 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 IsoTerm Mapped ISO term the call fired as; absent when the call was consumed without motion effect. public string IsoTerm { get; set; } Property Value string Number Cycle number of the definition the call resolved against. public int Number { get; set; } Property Value int Term Triggering spelling: CYCL CALL, CYCL CALL POS, M99 or M89. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainGoto.html", "title": "Class HeidenhainGoto | HiAPI-C# 2025", "summary": "Class HeidenhainGoto Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll Heidenhain FN 9–12 conditional jump record (FN 12: IF +Q1 LT +5 GOTO LBL n). Two lifetimes share the shape: Parsing.HeidenhainGoto — written by HeidenhainGotoParsingSyntax for all four opcodes, in both the spaced standard spelling and the compressed post spelling (FN12:IF+Q94 LT+1GOTOLBL\"NAME\"). block-root HeidenhainGoto — stamped by HeidenhainGotoSyntax after the control-flow decision, with Fired flipped true on a successful redirect. Unlike the Fanuc / Siemens jump records the condition is not one expression string: the klartext jump grammar is strictly , and the Heidenhain expression grammar deliberately has no comparison layer (its bare-word rejection is what keeps the evaluator's Parsing-tree pass off non-expression strings). The parsing owner therefore pre-normalises the statement: Lhs/Rhs are captured as separate value operands (pure literals typed numeric at capture, Q references kept as strings for the evaluator's pass-2 substitution) and the comparator spelling is normalised to the shared comparison words (EQU→EQ; NE/GT/LT as written). The comparison itself happens in the evaluation syntax. Klartext has no unconditional jump statement and no direction mnemonic — a TNC label is unique per program, so the consumer scans the whole host file and takes the first matching definition (LBL n / LBL \"name\"), forward or backward alike. public class HeidenhainGoto Inheritance object HeidenhainGoto 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) Fields OpEq Op normalised from the klartext EQU spelling. public const string OpEq = \"EQ\" Field Value string OpGt Op for the klartext GT comparator. public const string OpGt = \"GT\" Field Value string OpLt Op for the klartext LT comparator. public const string OpLt = \"LT\" Field Value string OpNe Op for the klartext NE comparator. public const string OpNe = \"NE\" Field Value string TermFn10 Term of the FN 10 (not-equal) jump. public const string TermFn10 = \"FN10\" Field Value string TermFn11 Term of the FN 11 (greater-than) jump. public const string TermFn11 = \"FN11\" Field Value string TermFn12 Term of the FN 12 (less-than) jump. public const string TermFn12 = \"FN12\" Field Value string TermFn9 Term of the FN 9 (equal) jump. public const string TermFn9 = \"FN9\" Field Value string Properties ConditionEvaluated Tri-state comparison outcome stamped by the evaluation syntax: true — condition met (jump proceeds); false — not met (falls through silently); null — an operand did not resolve to a finite numeric (warns HeidenhainGoto–ConditionNotEvaluated and falls through — the FN 18 SYSREAD target staying vacant is the designed source of this state). public bool? ConditionEvaluated { get; set; } Property Value bool? Fired True when the redirect actually replaced the source layer. public bool Fired { get; set; } Property Value bool Label Target label number or name as written (quotes stripped: GOTOLBL\"SLOW_FEED\" captures SLOW_FEED). Numeric labels canonicalize at match time (“01” ≡ 1 on a TNC). If a quoted name collides with a set Q spelling the evaluator may have substituted a numeric here; the consumer recovers the original text from the Formula.HeidenhainGoto.Label mirror. public string Label { get; set; } Property Value string Lhs Left comparison operand. Parsing-side a pure numeric literal is typed numeric at capture; a Q-reference operand (\"+Q94\") stays a string and is substituted in place by VariableEvaluatorSyntax's pass-2 walk when it resolves (original text mirrored to Formula.HeidenhainGoto.Lhs). A still-string operand at the evaluation syntax means “unresolved” — the jump falls through with HeidenhainGoto–ConditionNotEvaluated. public string Lhs { get; set; } Property Value string Op Comparator normalised to the shared comparison words: one of OpEq, OpNe, OpGt, OpLt. Captured from the spelled word (which on a real TNC always agrees with the opcode). public string Op { get; set; } Property Value string Rhs Right comparison operand; same contract as Lhs. public string Rhs { get; set; } Property Value string Term Statement opcode: one of TermFn9 … TermFn12, as spelled in the source (whitespace dropped). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.HeidenhainLbl.html", "title": "Class HeidenhainLbl | HiAPI-C# 2025", "summary": "Class HeidenhainLbl Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll Block-root record left on a consumed LBL marker block by HeidenhainSubProgramReturnSyntax. A plain definition marker produces no motion; the record keeps the label visible for cache dumps (and the P5 jump family). public class HeidenhainLbl Inheritance object HeidenhainLbl 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 Name Label number or name (quotes stripped); “0” is the end-of-subprogram sentinel. public string Name { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.ICyclDef.html", "title": "Interface ICyclDef | HiAPI-C# 2025", "summary": "Interface ICyclDef Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll JSON section schema for Heidenhain CYCL DEF blocks. The CyclHead string captures either the cycle title (e.g. “DATUM SETTING”) or a parameter line (e.g. “Q339=+1”). public interface ICyclDef 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 CyclHead Head content of the CYCL DEF (can be title like “DATUM SETTING” or parameters like “Q339=+1”). string CyclHead { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.MachiningCycleDef.html", "title": "Class MachiningCycleDef | HiAPI-C# 2025", "summary": "Class MachiningCycleDef Namespace Hi.NcParsers.Keywords.Heidenhain Assembly HiMech.dll Block-root section carrying the stored Heidenhain machining-cycle definition (the CYCL DEF 2xx “setup half”). Written by HeidenhainCannedCycleSyntax on every block (self-carrying modal state, the P1 datum-shift pattern) — a klartext definition never executes by itself; execution is gated on CYCL CALL/M99 (call-once) or M89 (modal call on positioning blocks), which convert this store into a direct ISO cycle sub-section under Parsing. public class MachiningCycleDef Inheritance object MachiningCycleDef 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 Armable Whether a call can execute this definition. false for unsupported cycle numbers and for definitions whose required parameters were missing or non-literal. public bool Armable { get; set; } Property Value bool Modal true while M89 modality is active: the cycle fires on every positioning block until M99 clears it or a new CYCL DEF replaces the store. public bool Modal { get; set; } Property Value bool Number Heidenhain cycle number (e.g. 232, 251, 252, 253, 200). public int Number { get; set; } Property Value int Params Mapped ISO parameter slots (absolute Z/R, optional X/Y/Q/F/P) ready for the direct Parsing.G8x section on a call block. public JsonObject Params { get; set; } Property Value JsonObject Term Mapped ISO canned-cycle term (G81/G82/G83). Absent when the cycle is recognized but not simulated. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Heidenhain.html": { "href": "api/Hi.NcParsers.Keywords.Heidenhain.html", "title": "Namespace Hi.NcParsers.Keywords.Heidenhain | HiAPI-C# 2025", "summary": "Namespace Hi.NcParsers.Keywords.Heidenhain Classes HeidenhainCall Block-root record left on a CALL LBL/CALL PGM host block by HeidenhainSubProgramCallSyntax. Inlined callee blocks are stamped with a clone of the same record. HeidenhainCyclCall Block-root record left on a cycle-call host block by HeidenhainCannedCycleSyntax, making the consumed call visible in cache dumps and carrying the deferred M140 retract hand-off for HeidenhainCycleRetractSyntax. HeidenhainGoto Heidenhain FN 9–12 conditional jump record (FN 12: IF +Q1 LT +5 GOTO LBL n). Two lifetimes share the shape: Parsing.HeidenhainGoto — written by HeidenhainGotoParsingSyntax for all four opcodes, in both the spaced standard spelling and the compressed post spelling (FN12:IF+Q94 LT+1GOTOLBL\"NAME\"). block-root HeidenhainGoto — stamped by HeidenhainGotoSyntax after the control-flow decision, with Fired flipped true on a successful redirect. Unlike the Fanuc / Siemens jump records the condition is not one expression string: the klartext jump grammar is strictly , and the Heidenhain expression grammar deliberately has no comparison layer (its bare-word rejection is what keeps the evaluator's Parsing-tree pass off non-expression strings). The parsing owner therefore pre-normalises the statement: Lhs/Rhs are captured as separate value operands (pure literals typed numeric at capture, Q references kept as strings for the evaluator's pass-2 substitution) and the comparator spelling is normalised to the shared comparison words (EQU→EQ; NE/GT/LT as written). The comparison itself happens in the evaluation syntax. Klartext has no unconditional jump statement and no direction mnemonic — a TNC label is unique per program, so the consumer scans the whole host file and takes the first matching definition (LBL n / LBL \"name\"), forward or backward alike. HeidenhainLbl Block-root record left on a consumed LBL marker block by HeidenhainSubProgramReturnSyntax. A plain definition marker produces no motion; the record keeps the label visible for cache dumps (and the P5 jump family). MachiningCycleDef Block-root section carrying the stored Heidenhain machining-cycle definition (the CYCL DEF 2xx “setup half”). Written by HeidenhainCannedCycleSyntax on every block (self-carrying modal state, the P1 datum-shift pattern) — a klartext definition never executes by itself; execution is gated on CYCL CALL/M99 (call-once) or M89 (modal call on positioning blocks), which convert this store into a direct ISO cycle sub-section under Parsing. Interfaces ICyclDef JSON section schema for Heidenhain CYCL DEF blocks. The CyclHead string captures either the cycle title (e.g. “DATUM SETTING”) or a parameter line (e.g. “Q339=+1”)." }, "api/Hi.NcParsers.Keywords.IArcMotionDef.html": { "href": "api/Hi.NcParsers.Keywords.IArcMotionDef.html", "title": "Interface IArcMotionDef | HiAPI-C# 2025", "summary": "Interface IArcMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Arc motion data written by CircularMotionSyntax. Stored under the MotionEvent JSON section alongside IMotionEventDef properties. The arc plane is read from the modal PlaneSelect section via GetPlaneNormalDir(JsonObject) rather than cached on the event — same source of truth as IsoG68RotationSyntax. public interface IArcMotionDef 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) Examples \"MotionEvent\": { \"Form\": \"McArc\", \"ArcCenter\": { \"X\": 10.0, \"Y\": 5.0, \"Z\": 0.0 }, \"IsCcw\": false, \"AdditionalCircleNum\": 0 } Properties AdditionalCircleNum Number of additional full circles (for helix with L parameter). int AdditionalCircleNum { get; } Property Value int ArcCenter Arc center in program coordinates (absolute). object ArcCenter { get; } Property Value object IsCcw True for G03 (CCW), false for G02 (CW). bool IsCcw { get; } Property Value bool IsIjkAbsolute True when the source block's I/J/K words addressed the center as absolute program coordinates (Heidenhain DIN/ISO, G90 in effect). Stamped only when true — absent means the ordinary start-to-center offsets. Read by the NcOpt splition write-back, which must emit the same absolute center on every fragment instead of per-fragment offsets. bool IsIjkAbsolute { get; } Property Value bool" }, "api/Hi.NcParsers.Keywords.ICannedCycleDef.html": { "href": "api/Hi.NcParsers.Keywords.ICannedCycleDef.html", "title": "Interface ICannedCycleDef | HiAPI-C# 2025", "summary": "Interface ICannedCycleDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Canned cycle modal state (Group 09). Captures which cycle is currently active, its return mode (G98/G99), and the resolved absolute parameter set used for modal lookback. Written by CannedCycleResolveSyntax on every block that belongs to the canned-cycle group: cycle code present (G81/G82/G83/G73/G84/G74/G85/G86/G89/G76/G87), modal repeat (cycle still active, only coordinates given), or explicit cancel (G80). Term = \"G80\" is the explicit-cancel sentinel used by FindPreviousActiveCycle(LazyLinkedListNode, string[]) to terminate modal lookback without ambiguity; regular blocks (e.g. G00 X.. Y..) simply omit the section entirely. public interface ICannedCycleDef 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) Examples // Active G81 block \"CannedCycle\": { \"Term\": \"G81\", \"ReturnMode\": \"G98\", \"Params\": { \"X\": 20, \"Y\": 52, \"Z\": -31, \"R\": 3, \"F\": 600 } } // Explicit cancel block (G80 alone) \"CannedCycle\": { \"Term\": \"G80\" } Properties Params Resolved absolute cycle parameters: X, Y, Z, R, Q, F, P, K. Used for modal lookback so the next repeat block can merge its own overrides with the previously-resolved values. Absent on G80 blocks. JsonObject Params { get; set; } Property Value JsonObject ReturnMode Return level mode: “G98” (initial Z) or “G99” (R-point). Only meaningful when Term is an active cycle code; absent on G80 blocks. string ReturnMode { get; set; } Property Value string Term NC term of the canned-cycle-group code on this block (“G81”, “G82”, ..., “G89”, or “G80” for explicit cancel). Modal-repeat blocks carry the same term as the most recent active cycle. string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.ICompoundMotionDef.html": { "href": "api/Hi.NcParsers.Keywords.ICompoundMotionDef.html", "title": "Interface ICompoundMotionDef | HiAPI-C# 2025", "summary": "Interface ICompoundMotionDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Compound motion section definition for commands that produce multiple sub-operations (G28, G53.1, G81, G82, etc.). Contains a ItemsKey array resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil. Item types (discriminated by key presence): Hi.Motion — rapid/feed linear motion (IMotionEventDef + IMachineCoordinateStateDef) Dwell — pause (Time in seconds) SpindleControl — spindle direction change (Direction) SpindleOrientation — oriented spindle stop (OSS) (Angle_deg) public interface ICompoundMotionDef 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 Term CNC term that triggered this compound motion (e.g., “G28”, “G81”). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.ICoolantDef.html": { "href": "api/Hi.NcParsers.Keywords.ICoolantDef.html", "title": "Interface ICoolantDef | HiAPI-C# 2025", "summary": "Interface ICoolantDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Coolant state (M07 mist / M08 flood / M09 off). Written by CoolantSyntax. Modal — persists until changed. IsOn is the on/off convenience flag (true for M07 and M08, false for M09). Mode carries the abstract kind (Flood / Mist / Off) for consumers that need to distinguish flood vs mist. public interface ICoolantDef 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) Examples \"Coolant\": { \"IsOn\": true, \"Mode\": \"Flood\" } \"Coolant\": { \"IsOn\": true, \"Mode\": \"Mist\" } \"Coolant\": { \"IsOn\": false, \"Mode\": \"Off\" } Properties IsOn Whether any coolant is currently active. bool IsOn { get; set; } Property Value bool Mode Abstract coolant mode (Flood / Mist / Off). string Mode { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IDwellDef.html": { "href": "api/Hi.NcParsers.Keywords.IDwellDef.html", "title": "Interface IDwellDef | HiAPI-C# 2025", "summary": "Interface IDwellDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Dwell/pause section definition for use inside Sequence items. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActDelay. public interface IDwellDef 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) Examples { \"Dwell\": { \"Time\": 0.5 } } Properties Time Dwell time in seconds. double Time { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html": { "href": "api/Hi.NcParsers.Keywords.IFanucPathSmoothingDef.html", "title": "Interface IFanucPathSmoothingDef | HiAPI-C# 2025", "summary": "Interface IFanucPathSmoothingDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Fanuc-specific path smoothing state written by FanucPathSmoothingSyntax. Extends IPathSmoothingDef with the Fanuc G05.1 R argument (precision / smoothness level number, R1..R10 mapping to controller-internal tuning macro variables). Q is binary in current Fanuc firmware (Q0 disable / Q1 enable), so IsEnabled covers it directly — no raw Q field is stored. JSON section key remains nameof(PathSmoothing) so generic readers (cache dumps, modal carry, UI) can cast to IPathSmoothingDef across all controller brands; brand-specific readers cast to IFanucPathSmoothingDef for the extra fields. public interface IFanucPathSmoothingDef : IPathSmoothingDef Inherited Members IPathSmoothingDef.IsEnabled IPathSmoothingDef.Term 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) Examples \"PathSmoothing\": { \"IsEnabled\": true, \"Term\": \"G05.1\", \"Level\": 1 } Properties Level Fanuc G05.1 R precision / smoothness level number (typically 1..10). null when the source NC line did not specify R. Ignored when IsEnabled is false. int? Level { get; set; } Property Value int?" }, "api/Hi.NcParsers.Keywords.IFeedrateDef.html": { "href": "api/Hi.NcParsers.Keywords.IFeedrateDef.html", "title": "Interface IFeedrateDef | HiAPI-C# 2025", "summary": "Interface IFeedrateDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Feedrate state written by FeedrateSyntax. Property names are used as JSON keys via nameof. ISO standard: F command + G94 (per minute) / G95 (per revolution). Supported by all major CNC brands. public interface IFeedrateDef 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) Examples \"Feedrate\": { \"FeedrateValue\": 300.0, \"Term\": \"G94\", \"Unit\": \"mm/min\" } Properties FeedrateValue Feedrate value (mm/min for G94, mm/rev for G95). double FeedrateValue { get; set; } Property Value double Term “G94” (per minute) or “G95” (per revolution). See IsoKeywords. string Term { get; set; } Property Value string Unit Display unit derived from Term: “mm/min” for G94, “mm/rev” for G95. string Unit { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IFlagsDef.html": { "href": "api/Hi.NcParsers.Keywords.IFlagsDef.html", "title": "Interface IFlagsDef | HiAPI-C# 2025", "summary": "Interface IFlagsDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON section schema describing the modal/non-modal flags that take effect on an NC block. Each entry in Flags is a brand-specific keyword recognized by the soft-NC runtime. public interface IFlagsDef 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 Flags Known flags that it takes effect. List Flags { get; set; } Property Value List" }, "api/Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html": { "href": "api/Hi.NcParsers.Keywords.IMachineCoordinateStateDef.html", "title": "Interface IMachineCoordinateStateDef | HiAPI-C# 2025", "summary": "Interface IMachineCoordinateStateDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Modal machine-coordinate state — absolute six-axis machine position after the block has executed. Written on every block by motion-related LogicSyntaxs (McAbcSyntax, McAbcXyzFallbackSyntax, McXyzSyntax, MachineCoordSelectSyntax, G53p1RotaryPositionSyntax, ReferenceReturnSyntax); seeded on the init block by HomeMcInitializer; carried across non-motion blocks — and per-key completed on partially-written blocks (an XYZ-only motion block receives the carried modal rotary values) — by ModalCarrySyntax. Only configured axes appear as keys (X/Y/Z/A/B/C). Non-existent axes (e.g., A/B/C on a 3-axis machine) are omitted rather than written as NaN sentinels. After the PostLogic carry the section is a MODAL record: key presence means \"state known\", never \"this block commanded the axis\". Consumers needing \"commanded\" must read the block's Parsing words or compare values against the previous block (see LinearMotionUtil.HasRotaryMotion). The only presence-as-commanded carve-out is CompoundMotion.Items[*] item-level sections, which the carry never touches. public interface IMachineCoordinateStateDef 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) Examples \"MachineCoordinateState\": { \"X\": 100.0, \"Y\": 50.0, \"Z\": -20.0 } \"MachineCoordinateState\": { \"X\": 100.0, \"Y\": 50.0, \"Z\": -20.0, \"A\": 0.0, \"B\": 30.0 } Properties MachineCoordinateState JSON object with per-axis absolute machine coordinate. Configured axes are present; unconfigured axes are omitted. JsonObject MachineCoordinateState { get; set; } Property Value JsonObject" }, "api/Hi.NcParsers.Keywords.IMotionEventDef.html": { "href": "api/Hi.NcParsers.Keywords.IMotionEventDef.html", "title": "Interface IMotionEventDef | HiAPI-C# 2025", "summary": "Interface IMotionEventDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll One-shot motion event — present on every block whose source programmed a motion command, regardless of whether the resulting displacement is non-zero. A redundant G01 X10 on a block already at X10 still gets a MotionEvent; the motion semantics (McLinearMotionSemantic, McArcMotionSemantic, ClLinearMcMotionSemantic) then early-return on distance <= 0 and emit no IAct. NOT carried forward across blocks. Reason for the \"programmed, not displaced\" definition: Fanuc G66 modal macro fires once per programmed motion command (per Fanuc spec — no distance gate), so FanucModalMacroSyntax.Expansion uses MotionEvent presence as its trigger. Suppressing the section on zero-distance moves would silently change G66 behaviour. The modal sibling MotionState separately latches the Group-01 mode for readers that only need to know \"what G-code is active\". Property names are used as JSON keys via nameof. public interface IMotionEventDef 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) Examples \"MotionEvent\": { \"Form\": \"McLinear\", \"IsRapid\": false } Remarks Term source-precedence rule: modal motion (G00/G01/G02/G03) leaves Term unset because the source G-code is already latched in the sibling MotionState.Term. Non-modal one-shots that drive the block's motion themselves — currently G53.1 (rapid rotary positioning to align with the active tilted plane), and the same pattern is the intended fit for any future non-modal motion command — set Term to record the originating G-code. When Term is non-null, readers should treat it as the authoritative source for this block; the modal MotionState in this case is inherited context, not the block's actual motion driver. Properties Form Interpolation form. See MotionForm. string Form { get; set; } Property Value string IsRapid True for rapid traverse; false (default) for programmed feedrate. bool IsRapid { get; set; } Property Value bool PoseStated True when the writer solved and STATED the full six-axis pose on this block's MachineCoordinateState and wants the pose-carrying act (currently the ClToMcTransformSyntax constant-posture downgrade: its acts are expanded pose-first, so even an unchanged rotary state must ride the act). Absent/false for NC blocks: there McLinearMotionSemantic discriminates by rotary VALUE change — key presence stopped meaning “commanded” once ModalCarrySyntax completes every section with carried modal values. bool PoseStated { get; set; } Property Value bool Term Source G-code term, set only when a non-modal one-shot drove this block's motion (e.g. “G53.1”). Null/absent for modal motion blocks (G00/G01/G02/G03) whose source is recorded on the sibling Term. See type-level remarks for the precedence rule. string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IMotionStateDef.html": { "href": "api/Hi.NcParsers.Keywords.IMotionStateDef.html", "title": "Interface IMotionStateDef | HiAPI-C# 2025", "summary": "Interface IMotionStateDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Modal motion state — Group 01 G-code mode (G00 / G01 / G02 / G03 ...). Written on every block by LinearMotionSyntax / CircularMotionSyntax; carried across non-motion blocks by ModalCarrySyntax. Property names are used as JSON keys via nameof. Unlike sibling modal sections (Unit, PlaneSelect, Positioning) which carry both a brand-specific Term and a brand-neutral conventional field, MotionState intentionally keeps only Term: the brand-neutral semantic (\"what kind of motion happened\") lives on the sibling one-shot MotionEvent (Form = McLinear / McArc / ClLinear / ClArc). State here is purely the modal latch of the last Group-01 G-code so downstream FindPrevious* can resume motion-mode bookkeeping. public interface IMotionStateDef 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) Examples \"MotionState\": { \"Term\": \"G01\" } Properties Term CNC term that defines the modal motion mode (e.g., “G00”, “G01”, “G02”, “G03”). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IParsingDef.html": { "href": "api/Hi.NcParsers.Keywords.IParsingDef.html", "title": "Interface IParsingDef | HiAPI-C# 2025", "summary": "Interface IParsingDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON section schema carrying the raw, brand-specific parsing trace for an NC block. The Parsing node holds intermediate parser output used by downstream syntaxes and diagnostics. public interface IParsingDef 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 Parsing Raw parsing trace JSON for the current block. JsonNode Parsing { get; set; } Property Value JsonNode" }, "api/Hi.NcParsers.Keywords.IPathSmoothingDef.html": { "href": "api/Hi.NcParsers.Keywords.IPathSmoothingDef.html", "title": "Interface IPathSmoothingDef | HiAPI-C# 2025", "summary": "Interface IPathSmoothingDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Path smoothing state. The base interface is brand-agnostic; controller brands extend it with their own argument fields (e.g. IFanucPathSmoothingDef for Fanuc G05.1 R precision-level). Fanuc-flavour writes are produced by FanucPathSmoothingSyntax. ISO/Fanuc G05.1 Q1 (enable) / G05.1 Q0 (disable): high-precision contour control / AICC / Nano Smoothing. Controller-internal interpolation black box — simulation records the state but does not alter the tool path. public interface IPathSmoothingDef 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) Examples \"PathSmoothing\": { \"IsEnabled\": true, \"Term\": \"G05.1\" } Properties IsEnabled True when path smoothing is active (Q1), false when cancelled (Q0). bool IsEnabled { get; set; } Property Value bool Term CNC term that controls this feature (e.g., “G05.1”). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IPlaneSelectDef.html": { "href": "api/Hi.NcParsers.Keywords.IPlaneSelectDef.html", "title": "Interface IPlaneSelectDef | HiAPI-C# 2025", "summary": "Interface IPlaneSelectDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Active plane selection state written by PlaneSelectSyntax. Property names are used as JSON keys via nameof. ISO: G17/G18/G19. Heidenhain: implicit from L/CC syntax. Term carries the brand-specific G-code; Plane stores the conventional, brand-neutral axis-pair name (XY/ZX/YZ). public interface IPlaneSelectDef 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) Examples \"PlaneSelect\": { \"Term\": \"G17\", \"Plane\": \"XY\" } Properties Plane Active plane axis-pair (XY, ZX, or YZ). string Plane { get; set; } Property Value string Term NC term of the plane-select code on this block (G17/G18/G19). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IPolarInterpolationDef.html": { "href": "api/Hi.NcParsers.Keywords.IPolarInterpolationDef.html", "title": "Interface IPolarInterpolationDef | HiAPI-C# 2025", "summary": "Interface IPolarInterpolationDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON section schemas for Fanuc Polar Coordinate Interpolation (G12.1/G13.1). Property names are used as JSON keys via nameof. PolarInterpolationState is the modal valve: its presence on a block means polar interpolation is active there. It is written by PolarInterpolationSyntax on the G12.1 block and re-materialized onto every following block until a G13.1 block ends the mode (single-step lookback carry, same pattern as PositioningSyntax — not registered on ModalCarrySyntax). ProgramPolarRxcz is the per-block polar position, relative to the G12.1 anchor (InitRxcz). Rxcz axes: X = radius-direction linear axis in mm (the NC word X is a diameter and is halved on parse), Y = hypothetical rotary-substitute axis in mm, Z = real Z in mm. The absolute (rotation-center-origin) position used by the math is InitRxcz + ProgramPolarRxcz, mirroring HardNc PolarEntry.CentralProgramPolarRxcz. public interface IPolarInterpolationDef 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 PolarInterpolationState Modal polar-interpolation state section (the valve). Inner keys: Dir, InitRxcz. JsonObject PolarInterpolationState { get; set; } Property Value JsonObject ProgramPolarRxcz Per-block polar position (anchor-relative Rxcz, mm). JsonObject ProgramPolarRxcz { get; set; } Property Value JsonObject" }, "api/Hi.NcParsers.Keywords.IPositioningDef.html": { "href": "api/Hi.NcParsers.Keywords.IPositioningDef.html", "title": "Interface IPositioningDef | HiAPI-C# 2025", "summary": "Interface IPositioningDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Modal positioning state — ISO Group 03 (G90 absolute / G91 incremental). Written by PositioningSyntax, consumed by IncrementalResolveSyntax, canned cycle syntaxes, and MachineCoordSelectSyntax. Property names are used as JSON keys via nameof. Term is the brand-specific G-code (Fanuc/ISO G90/G91); Mode is the conventional, brand-neutral name (Absolute / Incremental). public interface IPositioningDef 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) Examples \"Positioning\": { \"Term\": \"G90\", \"Mode\": \"Absolute\" } Properties Mode Conventional positioning mode name (Absolute / Incremental). string Mode { get; set; } Property Value string Term NC term of the positioning code on this block (G90 or G91). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IProgramEndDef.html": { "href": "api/Hi.NcParsers.Keywords.IProgramEndDef.html", "title": "Interface IProgramEndDef | HiAPI-C# 2025", "summary": "Interface IProgramEndDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Program end marker (M02/M30). Written by ProgramEndSyntax. Other syntaxes (e.g. IsoLocalCoordinateOffsetSyntax) read this section to reset modal state instead of detecting M30 directly. public interface IProgramEndDef 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) Examples \"ProgramEnd\": { \"Term\": \"M30\" } Properties Term The M-code that triggered program end (M02 or M30). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IProgramStopDef.html": { "href": "api/Hi.NcParsers.Keywords.IProgramStopDef.html", "title": "Interface IProgramStopDef | HiAPI-C# 2025", "summary": "Interface IProgramStopDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Program-stop marker (M00 unconditional / M01 optional). Written by ProgramStopSyntax on each block that carries an M00/M01 flag. Non-modal: the section appears only on the exact block where the stop code is present. Distinct from IProgramEndDef (M02/M30, end of program). M00 halts execution unconditionally; the operator must press Cycle Start to resume. M01 is an optional stop gated by the operator's \"Optional Stop\" panel switch — ignored when the switch is off. This parsing-layer section records the NC intent; runtime / semantic layers decide whether to actually pause. public interface IProgramStopDef 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) Examples \"ProgramStop\": { \"Term\": \"M01\" } Properties Term The M-code that triggered the stop (M00 or M01). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IProgramXyzDef.html": { "href": "api/Hi.NcParsers.Keywords.IProgramXyzDef.html", "title": "Interface IProgramXyzDef | HiAPI-C# 2025", "summary": "Interface IProgramXyzDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON section schema carrying the program-coordinate position commanded on the current block. Written by ProgramXyzSyntax before the ProgramToMcTransform chain composes it into machine coordinates. public interface IProgramXyzDef 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 ProgramXyz Program-coordinate XYZ (and optional ABC) for the current block. JsonObject ProgramXyz { get; set; } Property Value JsonObject" }, "api/Hi.NcParsers.Keywords.IRadiusCompensationDef.html": { "href": "api/Hi.NcParsers.Keywords.IRadiusCompensationDef.html", "title": "Interface IRadiusCompensationDef | HiAPI-C# 2025", "summary": "Interface IRadiusCompensationDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Radius compensation state written by RadiusCompensationSyntax. Property names are used as JSON keys via nameof. Managed commands (ISO): G41 (left), G42 (right), G40 (cancel). Heidenhain Klartext maps RL → G41, RR → G42, R0 → G40. When active, the tool path is offset perpendicular to the programmed path by Radius_mm; Side determines left vs right. The root ProgramXyz retains the user-programmed position; MachineCoordinate is overwritten to reflect the compensated path. public interface IRadiusCompensationDef 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) Examples Active (G41 D5, radius 2.5 mm): \"RadiusCompensation\": { \"Side\": \"Left\", \"Term\": \"G41\", \"OffsetId\": 5, \"Radius_mm\": 2.5 } Cancelled (G40, modal D preserved): \"RadiusCompensation\": { \"Side\": \"None\", \"Term\": \"G40\", \"OffsetId\": 5 } Properties OffsetId Offset number (Fanuc D number) selecting the radius in the tool offset table. Modal — preserved across G40 blocks so the next G41/G42 without an explicit D continues to reference the same row, matching real Fanuc/Siemens behaviour. int OffsetId { get; set; } Property Value int Radius_mm Unsigned compensation radius in mm, looked up from the tool offset table. Real controller tool tables hold the radius as a non-negative geometry value (wear/delta sits in a separate column); this property mirrors that convention. Direction is encoded by Side. Omitted from the JSON section when Side is SideNone. double Radius_mm { get; set; } Property Value double Side Compensation direction: SideNone, SideLeft, or SideRight. string Side { get; set; } Property Value string Term CNC term: “G41”, “G42”, or “G40”. string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.ISpindleControlDef.html": { "href": "api/Hi.NcParsers.Keywords.ISpindleControlDef.html", "title": "Interface ISpindleControlDef | HiAPI-C# 2025", "summary": "Interface ISpindleControlDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Spindle control item for use inside ItemsKey arrays. Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleDirection. public interface ISpindleControlDef 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) Examples { \"SpindleControl\": { \"Direction\": \"STOP\" } } Properties Direction Target spindle direction (STOP, CW, CCW). SpindleDirection Direction { get; set; } Property Value SpindleDirection" }, "api/Hi.NcParsers.Keywords.ISpindleOrientationDef.html": { "href": "api/Hi.NcParsers.Keywords.ISpindleOrientationDef.html", "title": "Interface ISpindleOrientationDef | HiAPI-C# 2025", "summary": "Interface ISpindleOrientationDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Oriented spindle stop item for use inside ItemsKey arrays. Commands the spindle to stop at a specific angular position (OSS). Resolved by Hi.NcParsers.Semantics.CompoundMotionSemanticUtil into ActSpindleOrientation. public interface ISpindleOrientationDef 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) Examples { \"SpindleOrientation\": { \"Angle_deg\": 0.0 } } Properties Angle_deg Target spindle stop angle in degrees. double Angle_deg { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.ISpindleSpeedDef.html": { "href": "api/Hi.NcParsers.Keywords.ISpindleSpeedDef.html", "title": "Interface ISpindleSpeedDef | HiAPI-C# 2025", "summary": "Interface ISpindleSpeedDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Spindle speed and direction state written by SpindleSpeedSyntax. Property names are used as JSON keys via nameof. ISO: S command for speed, M03/M04/M05 for direction. Heidenhain: M3/M4/M5. Siemens: M3/M4/M5 or SPOS. Direction is stored as the conventional SpindleDirection enum name (CW/CCW/STOP), not as brand-specific M-codes. public interface ISpindleSpeedDef 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) Examples \"SpindleSpeed\": { \"SpindleSpeed_rpm\": 3000.0, \"Direction\": \"CW\" } Properties Direction Spindle rotation direction. Stored in JSON as the enum name (e.g. “CW”, “CCW”, “STOP”). SpindleDirection Direction { get; set; } Property Value SpindleDirection SpindleSpeed_rpm Spindle speed in RPM. double SpindleSpeed_rpm { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.ITiltTransformDef.html": { "href": "api/Hi.NcParsers.Keywords.ITiltTransformDef.html", "title": "Interface ITiltTransformDef | HiAPI-C# 2025", "summary": "Interface ITiltTransformDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Tilt transform state written by tilt transform syntaxes. Property names are used as JSON keys via nameof. Managed commands (ISO/Fanuc): G68 (2D rotation), G68.2 (tilted work plane), G69 (cancel). Siemens equivalent: CYCLE800, ROT/AROT (handled by separate syntax). Heidenhain equivalent: PLANE SPATIAL / PLANE RESET (handled by separate syntax). public interface ITiltTransformDef 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) Examples \"TiltTransform\": { \"Term\": \"G68.2\", \"I\": 180, \"J\": 90, \"K\": 180, \"X\": 0, \"Y\": 55, \"Z\": -45.377 } Properties Term CNC term for tilt: “G68”, “G68.2”, “G69”, “PLANE SPATIAL”, “CYCLE800”, etc. string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IToolHeightCompensationDef.html": { "href": "api/Hi.NcParsers.Keywords.IToolHeightCompensationDef.html", "title": "Interface IToolHeightCompensationDef | HiAPI-C# 2025", "summary": "Interface IToolHeightCompensationDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Tool height compensation state written by ToolHeightOffsetSyntax. Property names are used as JSON keys via nameof. The JSON section can be deserialized to an instance implementing this interface. Managed commands (ISO/Fanuc): G43, G44, G49. Fanuc extension: G43.4 (TCPM — parsed only in Fanuc syntax list). Siemens equivalent: TRAFOOF/TRAORI (handled by separate syntax). Heidenhain equivalent: TOOL CALL / M128/M129 (handled by separate syntax). public interface IToolHeightCompensationDef 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) Examples \"ToolHeightCompensation\": { \"Offset_mm\": 99.98, \"Term\": \"G43\", \"OffsetId\": 1 } Remarks RTCP-rotary-dynamic state (whether the per-step MC path is non-linear while CL is commanded linearly) is signalled by a KindDynamic entry in the ProgramToMcTransform chain rather than by a flag on this section, so consumers detect it via HasDynamicEntry(JsonObject) without needing brand-specific strings. Properties OffsetId Generic offset selector: Fanuc H number, Heidenhain T number, Mazak/Okuma H number. For Siemens (T+D addressing), see ISiemensToolOffsetConfig. int OffsetId { get; set; } Property Value int Offset_mm Derived effective tool height compensation in mm. Computed from Term and OffsetId: looks up the offset table for OffsetId, obtains the effective height (geometry minus wear), then applies sign from Term (positive for G43/G43.4, negative for G44, zero for G49). double Offset_mm { get; set; } Property Value double Term CNC term for tool height compensation: “G43”, “G43.4”, “G44”, “G49”. Brand-specific syntaxes may write equivalent terms (e.g., “TRAORI” for Siemens, “M128” for Heidenhain). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.ITransformationDef.html": { "href": "api/Hi.NcParsers.Keywords.ITransformationDef.html", "title": "Interface ITransformationDef | HiAPI-C# 2025", "summary": "Interface ITransformationDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Chain of named ProgramXyz → MachineCoordinate transformation entries. Stored as a JsonArray of entries, each with “Source”, “Kind”, and “Mat4d” keys. Each contributing INcSyntax adds or replaces its own entry by source name. GetComposedTransform(JsonObject) composes entries in order: McXyz = ProgramXyz * T[0] * T[1] * ... * T[n]. Kind contour-validity classification. Each entry is either: \"Static\" — the Mat4d is valid for any point along the contour. Tilt, coord-offset, and the kinematic pivot in non-RTCP / rotary-stable blocks are all Static. \"Dynamic\" — the Mat4d is a block-endpoint snapshot of a rotary-state-dependent transform (RTCP rotary-dynamic). Composition still yields a correct endpoint MC, but the matrix is not contour-valid: intermediate CL-point positions cannot be derived by applying it to an interpolated ProgramXyz. The semantic layer (ClLinearMcMotionSemantic) handles per-step IK separately. Use HasDynamicEntry(JsonObject) to detect the presence of any Dynamic entry on this block. public interface ITransformationDef 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) Examples \"ProgramToMcTransform\": [ {\"Source\": \"TiltTransform\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]}, {\"Source\": \"ToolHeightCompensation\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,99.98,1]}, {\"Source\": \"CoordinateOffset\", \"Kind\": \"Static\", \"Mat4d\": [1,0,0,0, 0,1,0,0, 0,0,1,0, 10,20,-100,1]}, {\"Source\": \"PivotTransform\", \"Kind\": \"Dynamic\", \"Mat4d\": [cosC,sinC,0,0, -sinC,cosC,0,0, 0,0,1,0, px,py,pz,1]} ] Properties ProgramToMcTransform Ordered chain of named ProgramXyz → MachineCoordinate transformation entries. See the type-level remarks for the entry schema and composition rule. JsonArray ProgramToMcTransform { get; set; } Property Value JsonArray" }, "api/Hi.NcParsers.Keywords.IUnitDef.html": { "href": "api/Hi.NcParsers.Keywords.IUnitDef.html", "title": "Interface IUnitDef | HiAPI-C# 2025", "summary": "Interface IUnitDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Unit-system state (ISO Group 06: G20 inch / G21 metric). Written by UnitModeSyntax. Modal. HiNC's NC pipeline works exclusively in millimetres. G21 is therefore a no-op confirmation of the default; G20 is reported as an Unsupported Error and callers are expected to pre-convert the NC program to metric before loading. public interface IUnitDef 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) Examples \"Unit\": { \"Term\": \"G21\", \"System\": \"Metric\" } Properties System Abstract name of the unit system (Metric / Inch). string System { get; set; } Property Value string Term NC term of the unit code on this block (G20 or G21). string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IUnparsedTextDef.html": { "href": "api/Hi.NcParsers.Keywords.IUnparsedTextDef.html", "title": "Interface IUnparsedTextDef | HiAPI-C# 2025", "summary": "Interface IUnparsedTextDef Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON section schema carrying the residual block text that was not consumed by any registered syntax. Used for diagnostics and round-trip preservation. public interface IUnparsedTextDef 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 UnparsedText Residual NC block text not matched by any syntax. string UnparsedText { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IndexNote.html": { "href": "api/Hi.NcParsers.Keywords.IndexNote.html", "title": "Class IndexNote | HiAPI-C# 2025", "summary": "Class IndexNote Namespace Hi.NcParsers.Keywords Assembly HiMech.dll JSON-section data shape pairing a single-character address symbol (e.g. ‘O’, ‘N’) with its numeric index, used to annotate program/sequence numbers on an NC block. public class IndexNote Inheritance object IndexNote 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 Number Numeric value associated with Symbol. public int Number { get; set; } Property Value int Symbol Address symbol (e.g. “O” for program number, “N” for sequence number). public string Symbol { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html": { "href": "api/Hi.NcParsers.Keywords.IsoLocalCoordinateOffset.html", "title": "Class IsoLocalCoordinateOffset | HiAPI-C# 2025", "summary": "Class IsoLocalCoordinateOffset Namespace Hi.NcParsers.Keywords Assembly HiMech.dll ISO/Fanuc-family local coordinate offset state (G52) written by IsoLocalCoordinateOffsetSyntax. Property names are used as JSON keys via nameof. G52 X Y Z installs a local coordinate-system shift that stacks on top of the active G54-G59 work offset. The cancel mechanism is to write G52 X0 Y0 Z0 (or hit M30 / reset) — there is no separate G code for \"cancel\". The offset vector is therefore always modal: zero is a valid modal value, not a \"disabled\" state, so the section is recorded on every block. Brand-specific kin: Siemens TRANS/ATRANS (which can also carry rotation/scale/mirror) and Heidenhain TRANS DATUM are handled by their own syntaxes and write to their own sections — they do not share this key, because their data shapes are richer. public class IsoLocalCoordinateOffset Inheritance object IsoLocalCoordinateOffset 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) Examples \"IsoLocalCoordinateOffset\": { \"Offset_X\": 10.0, \"Offset_Y\": 20.0, \"Offset_Z\": 0.0 } Properties Offset_X X offset in mm. public double Offset_X { get; set; } Property Value double Offset_Y Y offset in mm. public double Offset_Y { get; set; } Property Value double Offset_Z Z offset in mm. public double Offset_Z { get; set; } Property Value double" }, "api/Hi.NcParsers.Keywords.MachineCoordinateState.html": { "href": "api/Hi.NcParsers.Keywords.MachineCoordinateState.html", "title": "Class MachineCoordinateState | HiAPI-C# 2025", "summary": "Class MachineCoordinateState Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder for IMachineCoordinateStateDef. public class MachineCoordinateState Inheritance object MachineCoordinateState 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)" }, "api/Hi.NcParsers.Keywords.MacroFrame.html": { "href": "api/Hi.NcParsers.Keywords.MacroFrame.html", "title": "Class MacroFrame | HiAPI-C# 2025", "summary": "Class MacroFrame Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Top-level integer marker stamped onto a SyntaxPiece's JSON to identify which call frame the block belongs to. Brand-agnostic by design — written by FanucMacroCallSyntax today, reusable by any future call-inlining syntax (Fanuc G66 modal expansion, Heidenhain LBL CALL, …) that needs local-variable isolation across call boundaries. Semantics: the value is an opaque id; only equality matters. Two blocks with the same MacroFrame id share a call frame (locals visible across them via single-step carry); two blocks with different ids do not. The id 0 is reserved for the main program frame and is returned by Get(JsonObject) when the field is absent — so a plain caller block needs no stamp and yet compares distinct from any inlined frame. Stored as a top-level JSON int (not an object section) so it stays lightweight on every inlined block. Decoupled from FanucMacroCall: that section is a diagnostic record of the call (what file, what args), while MacroFrame is the purely functional marker the local-variable I/O syntaxes consult. public static class MacroFrame Inheritance object MacroFrame Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Get(JsonObject) Reads the frame id off a block, returning 0 (main frame) when the field is absent or non-integer. public static int Get(JsonObject json) Parameters json JsonObject Returns int Set(JsonObject, int) Stamps the frame id onto a block. Overwrites any previous value. Callers writing the main-frame default (0) should simply leave the field absent rather than calling this with 0. public static void Set(JsonObject json, int frameId) Parameters json JsonObject frameId int" }, "api/Hi.NcParsers.Keywords.MotionEvent.html": { "href": "api/Hi.NcParsers.Keywords.MotionEvent.html", "title": "Class MotionEvent | HiAPI-C# 2025", "summary": "Class MotionEvent Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IMotionEventDef. public class MotionEvent : IMotionEventDef Inheritance object MotionEvent Implements IMotionEventDef 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 Form Interpolation form. See MotionForm. public string Form { get; set; } Property Value string IsRapid True for rapid traverse; false (default) for programmed feedrate. public bool IsRapid { get; set; } Property Value bool PoseStated True when the writer solved and STATED the full six-axis pose on this block's MachineCoordinateState and wants the pose-carrying act (currently the ClToMcTransformSyntax constant-posture downgrade: its acts are expanded pose-first, so even an unchanged rotary state must ride the act). Absent/false for NC blocks: there McLinearMotionSemantic discriminates by rotary VALUE change — key presence stopped meaning “commanded” once ModalCarrySyntax completes every section with carried modal values. public bool PoseStated { get; set; } Property Value bool Term Source G-code term, set only when a non-modal one-shot drove this block's motion (e.g. “G53.1”). Null/absent for modal motion blocks (G00/G01/G02/G03) whose source is recorded on the sibling Term. See type-level remarks for the precedence rule. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.MotionState.html": { "href": "api/Hi.NcParsers.Keywords.MotionState.html", "title": "Class MotionState | HiAPI-C# 2025", "summary": "Class MotionState Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IMotionStateDef. public class MotionState : IMotionStateDef Inheritance object MotionState Implements IMotionStateDef 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 Term CNC term that defines the modal motion mode (e.g., “G00”, “G01”, “G02”, “G03”). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.PathSmoothing.html": { "href": "api/Hi.NcParsers.Keywords.PathSmoothing.html", "title": "Class PathSmoothing | HiAPI-C# 2025", "summary": "Class PathSmoothing Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder for IPathSmoothingDef. public class PathSmoothing : IPathSmoothingDef Inheritance object PathSmoothing Implements IPathSmoothingDef Derived FanucPathSmoothing SiemensPathSmoothing 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 IsEnabled True when path smoothing is active (Q1), false when cancelled (Q0). public bool IsEnabled { get; set; } Property Value bool Term CNC term that controls this feature (e.g., “G05.1”). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.PlaneSelect.html": { "href": "api/Hi.NcParsers.Keywords.PlaneSelect.html", "title": "Class PlaneSelect | HiAPI-C# 2025", "summary": "Class PlaneSelect Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder for IPlaneSelectDef. public class PlaneSelect : IPlaneSelectDef Inheritance object PlaneSelect Implements IPlaneSelectDef 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) Fields XY Plane identifier for the XY plane (Z normal). public const string XY = \"XY\" Field Value string YZ Plane identifier for the YZ plane (X normal). public const string YZ = \"YZ\" Field Value string ZX Plane identifier for the ZX plane (Y normal). public const string ZX = \"ZX\" Field Value string Properties Plane Active plane axis-pair (XY, ZX, or YZ). public string Plane { get; set; } Property Value string Term NC term of the plane-select code on this block (G17/G18/G19). public string Term { get; set; } Property Value string Methods GetNormalAxisIndex(string) Perpendicular (normal) axis index for the plane. XY→2 (Z normal), ZX→1 (Y normal), YZ→0 (X normal). public static int GetNormalAxisIndex(string plane) Parameters plane string Returns int" }, "api/Hi.NcParsers.Keywords.PolarInterpolation.html": { "href": "api/Hi.NcParsers.Keywords.PolarInterpolation.html", "title": "Class PolarInterpolation | HiAPI-C# 2025", "summary": "Class PolarInterpolation Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Inner-key constants of the PolarInterpolationState section. public static class PolarInterpolation Inheritance object PolarInterpolation Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Fields CompensatedBeginCentral Motion-section key: where the compensated polar arc's motion begins — the previous block's CompensatedCentral (falling back to the nominal previous position when the previous block was not compensated). Present only on compensated polar arc blocks. public const string CompensatedBeginCentral = \"CompensatedBeginCentral\" Field Value string CompensatedCentral Block-root key holding the radius-compensated position of a polar block in central (anchor-origin) hypothetical-plane coordinates. Written by RadiusCompensationSyntax's polar branch; mirrors HardNc RadiusCompensationBuf.CompensatedPosOnProgramCoordinate (which stores the anchor-relative twin). Sub-object with X/Y/Z keys in mm. public const string CompensatedCentral = \"CompensatedCentral\" Field Value string CompensatedEndCentral Motion-section key: the compensated polar arc block's final position (ray intersection or perpendicular offset). Its presence marks the block's polar arc as radius-compensated, switching McPolarArcMotionSemantic to the bridged transient act structure. Mirrors HardNc RadiusCompensationBuf.CompensatedPosOnProgramCoordinate. public const string CompensatedEndCentral = \"CompensatedEndCentral\" Field Value string Dir Polar plane axis pair key; value e.g. DirXC. public const string Dir = \"Dir\" Field Value string DirXC X linear axis + C rotary axis polar pair (the standard turn-mill pair; the X radius word is a diameter). public const string DirXC = \"XC\" Field Value string DirYA Y linear axis + A rotary axis (about X) polar pair. public const string DirYA = \"YA\" Field Value string DirZB Z linear axis + B rotary axis (about Y) polar pair. public const string DirZB = \"ZB\" Field Value string InitRxcz Anchor position key — the X/C words on the G12.1 block itself (X halved from diameter to radius), zero when absent. Sub-object with X/Y/Z keys in mm. public const string InitRxcz = \"InitRxcz\" Field Value string TransientBeginCentral Motion-section key: point on the compensated arc's offset circle where the arc motion begins when the previous segment's offset path meets it at a corner; a linear bridge on the hypothetical plane connects CompensatedBeginCentral to it. Absent when the adjoining rays are parallel. Mirrors HardNc RadiusCompensationBuf.TransientBeginProgramPos. public const string TransientBeginCentral = \"TransientBeginCentral\" Field Value string TransientEndCentral Motion-section key: point on the compensated arc's offset circle where the arc motion ends when the next segment's offset path meets it at a corner; a linear bridge on the hypothetical plane connects it to CompensatedEndCentral. Absent when the adjoining rays are parallel. Mirrors HardNc RadiusCompensationBuf.TransientEndProgramPos. public const string TransientEndCentral = \"TransientEndCentral\" Field Value string" }, "api/Hi.NcParsers.Keywords.Positioning.html": { "href": "api/Hi.NcParsers.Keywords.Positioning.html", "title": "Class Positioning | HiAPI-C# 2025", "summary": "Class Positioning Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IPositioningDef. public class Positioning : IPositioningDef Inheritance object Positioning Implements IPositioningDef 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) Fields Absolute Absolute positioning mode name (corresponds to G90). public const string Absolute = \"Absolute\" Field Value string CodedAbsolute Coded-position absolute mode name (Siemens CAC()): the word value is an indexing position number, not a coordinate — the write-stage consumers (McAbcSyntax / IncrementalResolveSyntax) look the number up in the machine's indexing table (IIndexingPositionConfig) and rewrite the entry to the plain counterpart (Absolute) once the coordinate is resolved, so the McAbcCyclicPathSyntax tail-pass never sees a coded value. Per-word PositioningOverride value only. public const string CodedAbsolute = \"CodedAbsolute\" Field Value string CodedIncremental Coded-position incremental mode name (Siemens CIC()): the word value counts indexing positions to advance (positive) or retreat (negative) from the current position; 0 does not traverse. Resolved and rewritten by the same consumers as CodedAbsolute — on a cyclic indexing axis the sign becomes a PositiveOnly / NegativeOnly approach so the swing keeps the programmed direction. public const string CodedIncremental = \"CodedIncremental\" Field Value string CodedNegativeOnly Coded-position negative-direction-only mode name (Siemens CACN()) — the mirror of CodedPositiveOnly, rewritten to NegativeOnly. public const string CodedNegativeOnly = \"CodedNegativeOnly\" Field Value string CodedPositiveOnly Coded-position positive-direction-only mode name (Siemens CACP()) — CodedAbsolute lookup rewritten to PositiveOnly. Rotary indexing axes only. public const string CodedPositiveOnly = \"CodedPositiveOnly\" Field Value string CodedShortest Coded-position shortest-path mode name (Siemens CDC()) — CodedAbsolute lookup rewritten to Shortest. Rotary indexing axes only. public const string CodedShortest = \"CodedShortest\" Field Value string Incremental Incremental positioning mode name (corresponds to G91). public const string Incremental = \"Incremental\" Field Value string NegativeOnly Rotary negative-direction-only approach mode name (Siemens ACN()) — the mirror of PositiveOnly. public const string NegativeOnly = \"NegativeOnly\" Field Value string PositiveOnly Rotary positive-direction-only approach mode name (Siemens ACP()): absolute target approached by rotating in the positive axis direction, even when that is the longer way around. Per-word PositioningOverride value only. Write-stage consumers fall through to the absolute write; the directional window swap happens in McAbcCyclicPathSyntax. public const string PositiveOnly = \"PositiveOnly\" Field Value string Shortest Rotary shortest-path mode name (Siemens DC()): absolute target reached by the shortest cyclic swing. Only meaningful as a per-word PositioningOverride value, never as the modal Mode. The write-stage consumers (McAbcSyntax / IncrementalResolveSyntax) deliberately treat every non-Incremental value as an absolute write; the shortest swing itself is the McAbcCyclicPathSyntax tail-pass default for modular rotary axes, so this value changes no consumer behavior — it preserves the DC-vs-AC distinction on the block and lets the tail-pass warn when the axis is not modular rotary (where the shortest-path promise cannot be honored). public const string Shortest = \"Shortest\" Field Value string Properties Mode Conventional positioning mode name (Absolute / Incremental). public string Mode { get; set; } Property Value string Term NC term of the positioning code on this block (G90 or G91). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.PositioningOverride.html": { "href": "api/Hi.NcParsers.Keywords.PositioningOverride.html", "title": "Class PositioningOverride | HiAPI-C# 2025", "summary": "Class PositioningOverride Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Per-word positioning override — a non-modal block-root section keyed by word name (axis words and the I/J/K interpolation parameters) whose values are Absolute / Incremental / Shortest / PositiveOnly / NegativeOnly, plus the coded-position (indexing axis) family CodedAbsolute / CodedIncremental / CodedShortest / CodedPositiveOnly / CodedNegativeOnly. Overrides the modal G90/G91 Positioning state (and, for I/J/K, the default incremental center reading) for the listed words on this block only. Written by SiemensAcIcSyntax when a word carries one of the Siemens per-word coordinate function wrappers AC() / IC() / DC() / ACP() / ACN() or their coded-position counterparts CAC() / CIC() / CDC() / CACP() / CACN(). Consumed by IncrementalResolveSyntax (linear axes) and McAbcSyntax (rotary axes) — both treat every non-Incremental value as an absolute write, and both resolve a coded entry's indexing position number through CodedPositionUtil and rewrite the entry to its plain counterpart in place — by McAbcCyclicPathSyntax (the directional window for PositiveOnly / NegativeOnly and the non-modular-axis boundary warning; it never sees a coded value), and by SiemensCircularMotionSyntax (absolute I/J/K center components); words without an entry keep the default behavior unchanged. The section is not listed in any ModalCarry key set — it never carries to later blocks. public static class PositioningOverride Inheritance object PositioningOverride Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Examples \"PositioningOverride\": { \"C\": \"Shortest\" }" }, "api/Hi.NcParsers.Keywords.ProgramEnd.html": { "href": "api/Hi.NcParsers.Keywords.ProgramEnd.html", "title": "Class ProgramEnd | HiAPI-C# 2025", "summary": "Class ProgramEnd Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder for IProgramEndDef. public class ProgramEnd : IProgramEndDef Inheritance object ProgramEnd Implements IProgramEndDef 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 Term The M-code that triggered program end (M02 or M30). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.ProgramStop.html": { "href": "api/Hi.NcParsers.Keywords.ProgramStop.html", "title": "Class ProgramStop | HiAPI-C# 2025", "summary": "Class ProgramStop Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IProgramStopDef. public class ProgramStop : IProgramStopDef Inheritance object ProgramStop Implements IProgramStopDef 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 Term The M-code that triggered the stop (M00 or M01). public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.RadiusCompensation.html": { "href": "api/Hi.NcParsers.Keywords.RadiusCompensation.html", "title": "Class RadiusCompensation | HiAPI-C# 2025", "summary": "Class RadiusCompensation Namespace Hi.NcParsers.Keywords Assembly HiMech.dll Section key holder + concrete implementation for IRadiusCompensationDef. public class RadiusCompensation : IRadiusCompensationDef Inheritance object RadiusCompensation Implements IRadiusCompensationDef 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) Fields SideLeft Left of programmed path (G41 / Heidenhain RL). public const string SideLeft = \"Left\" Field Value string SideNone No active compensation (G40 / Heidenhain R0). public const string SideNone = \"None\" Field Value string SideRight Right of programmed path (G42 / Heidenhain RR). public const string SideRight = \"Right\" Field Value string Properties OffsetId Offset number (Fanuc D number) selecting the radius in the tool offset table. Modal — preserved across G40 blocks so the next G41/G42 without an explicit D continues to reference the same row, matching real Fanuc/Siemens behaviour. public int OffsetId { get; set; } Property Value int Radius_mm Unsigned compensation radius in mm, looked up from the tool offset table. Real controller tool tables hold the radius as a non-negative geometry value (wear/delta sits in a separate column); this property mirrors that convention. Direction is encoded by Side. Omitted from the JSON section when Side is SideNone. public double Radius_mm { get; set; } Property Value double Side Compensation direction: SideNone, SideLeft, or SideRight. public string Side { get; set; } Property Value string Term CNC term: “G41”, “G42”, or “G40”. public string Term { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html": { "href": "api/Hi.NcParsers.Keywords.Siemens.ISiemensPathSmoothingDef.html", "title": "Interface ISiemensPathSmoothingDef | HiAPI-C# 2025", "summary": "Interface ISiemensPathSmoothingDef Namespace Hi.NcParsers.Keywords.Siemens Assembly HiMech.dll Siemens path-control / smoothing modal registers recorded by SiemensPathSmoothingSyntax under the brand-invariant PathSmoothing section key. Record-only — simulation does not alter the tool path; the registers exist for bidirectional NC-text reconstruction and UI display. Each property mirrors one orthogonal Sinumerik modal group; a property is absent from the JSON section until its group is first programmed. IsEnabled is derived: true while a CYCLE832 high-speed setting is armed (Tolerance present) or a continuous-path mode (G64/G641/G642) is active. Term records the token that last changed the path-control state (a G code or CYCLE832). public interface ISiemensPathSmoothingDef : IPathSmoothingDef Inherited Members IPathSmoothingDef.IsEnabled IPathSmoothingDef.Term 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 AccelProfile Acceleration profile group: SOFT (jerk-limited) / BRISK. string AccelProfile { get; set; } Property Value string Compressor Compressor group: COMPCAD / COMPON / COMPOF. string Compressor { get; set; } Property Value string ExactStopCriterion Exact-stop criterion group: G601 (fine) / G602 (coarse). string ExactStopCriterion { get; set; } Property Value string FeedForward Feedforward group: FFWON / FFWOF. string FeedForward { get; set; } Property Value string FeedProfile Feedrate profile group: FNORM. string FeedProfile { get; set; } Property Value string Mode CYCLE832 technology/mode argument verbatim (e.g. _ORI_FINISH, 1) while armed. string Mode { get; set; } Property Value string PathControl Path-control group: G60 (exact stop) / G64 / G641 / G642 (continuous path). string PathControl { get; set; } Property Value string PathReference Path-reference group: UPATH / SPATH. string PathReference { get; set; } Property Value string Tolerance CYCLE832 machining tolerance (first argument, mm) while armed; absent when CYCLE832 is cancelled. A non-numeric source argument (variable/expression) is preserved verbatim as a string in the JSON section for the future evaluator. double? Tolerance { get; set; } Property Value double?" }, "api/Hi.NcParsers.Keywords.Siemens.Msg.html": { "href": "api/Hi.NcParsers.Keywords.Siemens.Msg.html", "title": "Class Msg | HiAPI-C# 2025", "summary": "Class Msg Namespace Hi.NcParsers.Keywords.Siemens Assembly HiMech.dll Block-root section recording a Siemens MSG(\"...\") operator display message, written by SiemensMsgSyntax. A section without Text records the bare MSG() clear form. Record-only: simulation ignores it; the section exists for bidirectional NC-text reconstruction and UI display. public class Msg Inheritance object Msg 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 Text Verbatim message text between the quotes; absent for the MSG() clear form. public string Text { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Siemens.SiemensCall.html": { "href": "api/Hi.NcParsers.Keywords.Siemens.SiemensCall.html", "title": "Class SiemensCall | HiAPI-C# 2025", "summary": "Class SiemensCall Namespace Hi.NcParsers.Keywords.Siemens Assembly HiMech.dll Siemens subprogram-call record. Two lifetimes share the shape: Parsing.SiemensCall — written by SiemensCallStatementSyntax when a whole-line call statement is captured (L9810, L123 P3, HQ_FC(1,2)). Carries Name, optional verbatim Args, optional P. block-root SiemensCall — written by SiemensSubProgramCallSyntax on the host block and on every inlined body block once the call is consumed. FileName records the resolved subprogram file; Skipped marks the safe-skip outcome (no file found — OEM / measuring cycles like HQ_FC, Renishaw L9810) where the call is consumed with zero motion effect and a structured warning replaces the raw unparsed-text noise. public class SiemensCall Inheritance object SiemensCall 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 Args Verbatim positional argument strings from the parenthesized form (HQ_FC(1,2) → [“1”,“2”]). Absent for bare calls. P4 records but does not bind them — argument-to-PROC-parameter binding is a later work item; a resolved call with arguments emits SiemensCall–ArgsNotBound. public string[] Args { get; set; } Property Value string[] FileName Bare matched file name (e.g. “L9810.SPF”) when the call resolved; null when skipped. public string FileName { get; set; } Property Value string Name Called name exactly as written: “L9810”, “HQ_FC”, “MY_SUB”. public string Name { get; set; } Property Value string P Repeat count from the trailing P word (L123 P3); defaults to 1 when absent. public int P { get; set; } Property Value int Skipped True when no subprogram file resolved and the call was consumed as a structured safe-skip. public bool Skipped { get; set; } Property Value bool" }, "api/Hi.NcParsers.Keywords.Siemens.SiemensFor.html": { "href": "api/Hi.NcParsers.Keywords.Siemens.SiemensFor.html", "title": "Class SiemensFor | HiAPI-C# 2025", "summary": "Class SiemensFor Namespace Hi.NcParsers.Keywords.Siemens Assembly HiMech.dll Siemens FOR = TO ... ENDFOR counting-loop record. The Parsing capture stores the start expression as a single-entry Init map ({ “R1”: 0 }) — the variable name is a JSON key, which the evaluator's pass-2 tree walk never rewrites (values only), so a loop variable whose name matches a set named variable is not clobbered; the start/end values are substituted normally. The block-root stamp records the loop variable and its per-iteration Value. public class SiemensFor Inheritance object SiemensFor 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) Fields InitKey JSON key of the single-entry init map under Parsing.SiemensFor: Init = { : }. public const string InitKey = \"Init\" Field Value string TermEndfor Loop terminator term. public const string TermEndfor = \"ENDFOR\" Field Value string TermFor Loop entry term. public const string TermFor = \"FOR\" Field Value string Properties End Inclusive end bound. Parsing-side it is the raw end expression (literal written numeric, expression written string for the evaluator); the loop frame captures the resolved value once at loop entry — Sinumerik evaluates FOR bounds once, not per iteration. public double End { get; set; } Property Value double Term One of TermFor, TermEndfor. public string Term { get; set; } Property Value string Value Current counter value assigned on this FOR arrival, stamp-side. public double Value { get; set; } Property Value double Var Loop variable name (“R1” or a named variable), stamp-side. public string Var { get; set; } Property Value string" }, "api/Hi.NcParsers.Keywords.Siemens.SiemensGoto.html": { "href": "api/Hi.NcParsers.Keywords.Siemens.SiemensGoto.html", "title": "Class SiemensGoto | HiAPI-C# 2025", "summary": "Class SiemensGoto Namespace Hi.NcParsers.Keywords.Siemens Assembly HiMech.dll Siemens GOTOF/GOTOB jump record. Two lifetimes share the shape: Parsing.SiemensGoto — written by SiemensGotoParsingSyntax for both the bare jump (GOTOF LBL1) and the single-line conditional (IF R1==1 GOTOF LBL1). block-root SiemensGoto — stamped by SiemensGotoSyntax after the control-flow decision, with Fired flipped true on a successful redirect. Unlike Fanuc's numbered GOTO n, the target is a named label (LBL1: line) or an N block number; direction is explicit in the mnemonic — GOTOF scans forward from the host line, GOTOB scans backward to the nearest label above. public class SiemensGoto Inheritance object SiemensGoto 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) Fields TermGotob Bare backward jump term. public const string TermGotob = \"GOTOB\" Field Value string TermGotof Bare forward jump term. public const string TermGotof = \"GOTOF\" Field Value string TermIfGotob Conditional backward jump term (IF GOTOB