diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
index ec4bee8..8b46f52 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html
@@ -345,7 +345,8 @@ Generally used to suggest a name when generating or saving files.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html
index f60f496..ed98c4f 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html
@@ -503,7 +503,9 @@ The matrix is rotate along axis with given radian.
-
+
Initializes a new instance of the Mat4d class from an enumerable of double values.
+Takes the first 16 values from the enumerable.
+
@@ -513,7 +515,8 @@ The matrix is rotate along axis with given radian.
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html
index 10bdf81..5666f8e 100644
--- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html
+++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html
@@ -4052,7 +4052,9 @@ The returned object includes type metadata for web API presentation.
-
+
Attempts to parse a string into a Vec3d using a loose format.
+Accepts various delimiters (comma, semicolon, space) and removes brackets/parentheses.
+
@@ -4062,15 +4064,18 @@ The returned object includes type metadata for web API presentation.
Add physics simulation function for relief face collision depth detection (<xref:Hi.MachiningSteps.MachiningStep.ReliefFaceCollidingDepth_mm*>) and optimization (EnableLimitByReliefAngle)
Add <xref:Hi.MachiningSteps.MachiningStep.UpdateNcOptOption> function to step processing
Fix step ordering bug from concurrent processing
Fix ClStrip shrinking to zero issue
diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json
index dc5785f..4e3ab78 100644
--- a/App/wwwroot/HiAPI-docsite/index.json
+++ b/App/wwwroot/HiAPI-docsite/index.json
@@ -342,7 +342,7 @@
"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 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 Enumerate(LinkedListNode, LinkedListNode) public static IEnumerable> Enumerate(this LinkedListNode beginNode, LinkedListNode endNode) Parameters beginNode LinkedListNode endNode LinkedListNode exclusive end node. It can be null. Returns IEnumerable> Type Parameters T"
+ "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 Enumerate(LinkedListNode, LinkedListNode) Enumerates linked list nodes from the beginning node to the end node (exclusive). public static IEnumerable> Enumerate(this LinkedListNode beginNode, LinkedListNode endNode) Parameters beginNode LinkedListNode The starting node (inclusive). endNode LinkedListNode Exclusive end node. It can be null. 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",
@@ -392,7 +392,7 @@
"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. LinkedListUtil 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."
+ "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. 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",
@@ -612,7 +612,7 @@
"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 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) 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"
+ "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) 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",
@@ -657,7 +657,7 @@
"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() Methods CallJsonArrayByPath(JsonObject, IEnumerable) public static JsonArray CallJsonArrayByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject jsonObjectPath IEnumerable Returns JsonArray CallJsonObjectByPath(JsonObject, IEnumerable) public static JsonObject CallJsonObjectByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject jsonObjectPath IEnumerable Returns JsonObject 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"
+ "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() 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. 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",
@@ -912,7 +912,7 @@
"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) public static string RemoveWhiteSpaceLines(this string text) Parameters text string Returns string 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[]"
+ "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",
@@ -977,7 +977,7 @@
"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. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. 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. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 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. Slice Designed for mongo large bytes splision. 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. 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. ISourceFile Interface for objects that have a source file. IToPresentDto 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."
+ "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. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. 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. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 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. Slice Designed for mongo large bytes splision. 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. 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. 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",
@@ -1407,7 +1407,7 @@
"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) public Mat4d(IEnumerable src) Parameters src IEnumerable 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: the abbr. of Point and Normal. The value is new DVec3d(m[12], m[13], m[14], 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) public Mat4d FixFloatingZero(double floatingZeroTolerance = 1E-12) Parameters floatingZeroTolerance double Returns Mat4d 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) public Mat4d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Mat4d 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) public Mat4d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Mat4d 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."
+ "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: the abbr. of Point and Normal. The value is new DVec3d(m[12], m[13], m[14], 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",
@@ -1607,7 +1607,7 @@
"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). [BsonIgnoreExtraElements] 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 [BsonIgnore] 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. [BsonIgnore] public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. [BsonIgnore] public string CsvTitleText { get; } Property Value string ElementNum Element number: 3 for (x,y,z). public static int ElementNum { get; } Property Value int IsAllFinite [BsonIgnore] public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN [BsonIgnore] public bool IsAllNaN { get; } Property Value bool is x,y,z all NaN. IsAllNegativeInfinity [BsonIgnore] public bool IsAllNegativeInfinity { get; } Property Value bool is x,y,z all NegativeInfinity. IsAllPositiveInfinity [BsonIgnore] public bool IsAllPositiveInfinity { get; } Property Value bool is x,y,z all PositiveInfinity. IsAnyFinite [BsonIgnore] public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y,z finite. IsAnyNaN [BsonIgnore] public bool IsAnyNaN { get; } Property Value bool Is any of {x,y,z} NaN. IsZero [BsonIgnore] 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 [BsonIgnore] public double Length { get; } Property Value double Geometry length of this. LengthSquare [BsonIgnore] public double LengthSquare { get; } Property Value double Geometry length ^ 2. Which is x * x + y * y + z * z. MaxAbsDir [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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. [BsonIgnore] 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. [BsonElement] public double X { get; set; } Property Value double XY Vec2d of X and Y. The getter gets a copied object. [BsonIgnore] public Vec2d XY { get; set; } Property Value Vec2d Y Value at y direction. [BsonElement] public double Y { get; set; } Property Value double Z Value at z direction. [BsonElement] 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 object with type, x, y, z properties 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) public static bool TryParseLoose(string text, out Vec3d dst) Parameters text string dst Vec3d Returns bool 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)"
+ "summary": "Class Vec3d Namespace Hi.Geom Assembly HiGeom.dll Basic 3D point (or vector). [BsonIgnoreExtraElements] 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 [BsonIgnore] 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. [BsonIgnore] public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. [BsonIgnore] public string CsvTitleText { get; } Property Value string ElementNum Element number: 3 for (x,y,z). public static int ElementNum { get; } Property Value int IsAllFinite [BsonIgnore] public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN [BsonIgnore] public bool IsAllNaN { get; } Property Value bool is x,y,z all NaN. IsAllNegativeInfinity [BsonIgnore] public bool IsAllNegativeInfinity { get; } Property Value bool is x,y,z all NegativeInfinity. IsAllPositiveInfinity [BsonIgnore] public bool IsAllPositiveInfinity { get; } Property Value bool is x,y,z all PositiveInfinity. IsAnyFinite [BsonIgnore] public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y,z finite. IsAnyNaN [BsonIgnore] public bool IsAnyNaN { get; } Property Value bool Is any of {x,y,z} NaN. IsZero [BsonIgnore] 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 [BsonIgnore] public double Length { get; } Property Value double Geometry length of this. LengthSquare [BsonIgnore] public double LengthSquare { get; } Property Value double Geometry length ^ 2. Which is x * x + y * y + z * z. MaxAbsDir [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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 [BsonIgnore] 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. [BsonIgnore] 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. [BsonElement] public double X { get; set; } Property Value double XY Vec2d of X and Y. The getter gets a copied object. [BsonIgnore] public Vec2d XY { get; set; } Property Value Vec2d Y Value at y direction. [BsonElement] public double Y { get; set; } Property Value double Z Value at z direction. [BsonElement] 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 object with type, x, y, z properties 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.Vec3dUtil.html": {
"href": "api/Hi.Geom.Vec3dUtil.html",
@@ -5387,7 +5387,7 @@
"dev-doc/release-note/index.html": {
"href": "dev-doc/release-note/index.html",
"title": "Release Note | HiAPI-C# 2025",
- "summary": "Release Note HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see 嵌入式日誌註解). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see 優化日誌): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision depth detection () and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue"
+ "summary": "Release Note HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see 嵌入式日誌註解). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see 優化日誌): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue"
},
"dev-doc/system-requirements.html": {
"href": "dev-doc/system-requirements.html",
diff --git a/App/wwwroot/HiAPI-docsite/manifest.json b/App/wwwroot/HiAPI-docsite/manifest.json
index 3884ac4..ffc9ef8 100644
--- a/App/wwwroot/HiAPI-docsite/manifest.json
+++ b/App/wwwroot/HiAPI-docsite/manifest.json
@@ -974,7 +974,7 @@
"Uid": null,
"IsMRef": true,
"Title": "Hi.Common.Collections.LinkedListUtil",
- "Summary": null
+ "Summary": "