-
Notifications
You must be signed in to change notification settings - Fork 0
Home
この Wiki では開発に関する情報を取り扱います。
使い方については以下のドキュメントを参照してください。
DocFX のドキュメント https://dotnet.github.io/docfx/docs/markdown.html#alerts に従う。
Note
ざっと目を通しただけでも、ユーザーが気づくべき情報。
Tip
ユーザーがより成功するためのオプション情報。
Important
ユーザーの成功に必要不可欠な情報。
Caution
ある行為がもたらす潜在的な否定的結果。
Warning
ある行為がもたらす危険な結果。
XML ドキュメントとの整合性のため以下のように記述する。
/// <summary>
/// The summary
/// </summary>
/// <param name="x">para x</param>
/// <returns>The returns</returns>
/// <remarks>
/// <div class="CAUTION alert alert-info">
/// <h5>Caution</h5>
/// <para>The caution</para>
/// </div>
/// </remarks>
Tip
Intar は固定少数点数型のベクトルのみをサポートする。
これは単純に、 Intar のコンセプト自体が再実装可能な固定少数点数による再現可能な計算にだからである。
Important
- 5 次元以上のベクトル型はサポートしない。
- 符号無し固定少数点数型のベクトル型をサポートしない。
- 17 ビットの整数部と 15 ビットの小数部を持つ固定小数点数型ベクトル型のみを
public
で定義する。 - 2 ビットの整数部と 30 ビットの小数部を持つ固定小数点数型ベクトル型を
internal
で定義する。 - 4 次元のベクトル型は
internal
で定義する。
5 次元以上のベクトル型と符号なし固定小数点数型のベクトル型をサポートしないのは簡単のため。
17 ビットの整数部と 15 ビットの小数部を持つベクトル型を public
で定義するのはユーザーがアクセス可能なトランスフォームのメンバとして使用するため。
2 ビットの整数部と 30 ビットの小数部を持つ固定小数点数型はトランスフォームの内部実装で使用する。
4 次元のベクトル型はほんとうに必要になったら public
に変更する。
Tip
以下の固定小数点数型をサポートする。
型 | 用途 |
---|---|
I17F15 |
通常の数値 |
U17F15 |
同上。符号なし |
I33F31 |
高精度の数値 |
U33F31 |
同上。符号なし |
I2F30 |
主に特殊関数の戻り値 |
U2F30 |
同上。符号なし |
I2F62 |
特殊関数の戻り値。高精度版 |
U2F62 |
同上。符号なし |
I98F30 |
ベクトルの大きさの 2 乗(部分サポート) |
U98F30 |
符号なし |
I49F15 |
ベクトルの大きさ |
U49F15 |
符号なし |
以下を参考にする。
- https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Int128.cs
- https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/UInt128.cs
備えるべきメソッドについては System.Int128
と System.UInt128
の他、以下を参考にする。
- https://doc.rust-lang.org/std/primitive.i32.html
- https://doc.rust-lang.org/std/primitive.u32.html
- tspiteri fixed
以下を参考にする。
- nalgebra
-
https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.vector2
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.vector3
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.vector4
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.matrix3x2
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.matrix4x4
- https://learn.microsoft.com/ja-jp/dotnet/api/system.numerics.quaternion
- Unity Engine
- https://docs.unity3d.com/ja/current/ScriptReference/Vector2.html
- https://docs.unity3d.com/ja/current/ScriptReference/Vector3.html
- https://docs.unity3d.com/ja/current/ScriptReference/Vector4.html
- https://docs.unity3d.com/ja/current/ScriptReference/Quaternion.html
- https://docs.unity3d.com/ja/current/ScriptReference/Matrix4x4.html
- Unity Mathematics
- Eigen
- https://www.boost.org/doc/libs/release/libs/qvm/doc/html/index.html
以下を参考にする。
System.Numerics.BitOperations
が .NET Core 3.0 、 .NET 5 からの提供であるため Unity では利用できないので、 他の主機能の実装に必要なメソッドを優先として実装する。
正数演算を用いた特殊関数の近似などを提供する。
オーバーフローを取り扱う。
固定小数点数と Unity.Mathematics に類似したいくつかのベクトル、行列などのライブラリを提供する。
Important
行列については未実装。
スプライン曲線を提供する。
Warning
未実装。