Skip to content
agate-pris edited this page Oct 16, 2024 · 34 revisions

この 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 符号なし

128 ビット整数値の実装

以下を参考にする。

固定小数点数の設計と実装

備えるべきメソッドについては System.Int128System.UInt128 の他、以下を参考にする。

ベクトル・行列・クォータニオンの設計と実装

以下を参考にする。

あたり判定の設計と実装

以下を参考にする。

ライブラリ

Extensions

Rand

BitOperations

System.Numerics.BitOperations が .NET Core 3.0 、 .NET 5 からの提供であるため Unity では利用できないので、 他の主機能の実装に必要なメソッドを優先として実装する。

Mathi

正数演算を用いた特殊関数の近似などを提供する。

Overflowing

オーバーフローを取り扱う。

Numerics

固定小数点数と Unity.Mathematics に類似したいくつかのベクトル、行列などのライブラリを提供する。

Important

行列については未実装。

スプライン曲線を提供する。

Warning

未実装。