nlib
nn::nlib::simd::Plane クラス

3次元空間上の平面を扱う関数が集められたクラスです。 [詳解]

#include "nn/nlib/simd/SimdGeometry.h"

静的公開メンバ関数

static f128 Dot (SimdPlaneArg plane, SimdVectorArg vec) noexcept
 平面と4次元ベクトルの内積を計算します。 [詳解]
 
static f128 DotCoord (SimdPlaneArg plane, SimdVectorArg vec) noexcept
 平面と4次元ベクトルの内積を計算します。vec[3]は1として計算します。 [詳解]
 
static f128 DotNormal (SimdPlaneArg plane, SimdVectorArg vec) noexcept
 平面と4次元ベクトルの内積を計算します。vec[3]は0として計算します。 [詳解]
 
static SimdPlane FromPointAndNormal (SimdVectorArg point, SimdVectorArg normal) noexcept
 平面上の点と法線ベクトルから平面を作成します。 [詳解]
 
static SimdPlane FromPoint (SimdVectorArg point0, SimdVectorArg point1, SimdVectorArg point2) noexcept
 3点を通る平面を作成します。 [詳解]
 
static SimdPlane Normalize (SimdPlaneArg plane) noexcept
 平面の法線ベクトル (plane[0], plane[1], plane[2])を正規化した平面を返します。 [詳解]
 
static SimdPlane NormalizeEst (SimdPlaneArg plane) noexcept
 平面の法線ベクトル (plane[0], plane[1], plane[2])を相対的に低い精度で正規化した平面を返します。 [詳解]
 
static SimdPlane Transform (SimdPlaneArg plane, SimdMatrixArg m) noexcept
 平面を行列で変換します。 [詳解]
 

詳解

3次元空間上の平面を扱う関数が集められたクラスです。

説明
このクラスで扱う平面は、vec[0] * x + vec[1] * y + vec[2] * z + vec[3] = 0として表現される平面です。
このクラスのメンバは全て静的関数で、クラスをインスタンス化することはできません。

SimdGeometry.h34 行目に定義があります。

関数詳解

◆ Dot()

nn::nlib::simd::Plane::Dot ( SimdPlaneArg  plane,
SimdVectorArg  vec 
)
staticnoexcept

平面と4次元ベクトルの内積を計算します。

引数
[in]plane平面
[in]vec4次元ベクトル
戻り値
各レーンに内積が格納されます。

◆ DotCoord()

nn::nlib::simd::Plane::DotCoord ( SimdPlaneArg  plane,
SimdVectorArg  vec 
)
staticnoexcept

平面と4次元ベクトルの内積を計算します。vec[3]は1として計算します。

引数
[in]plane平面
[in]vec4次元ベクトル(w要素は1として扱われる)
戻り値
各レーンに内積が格納されます。

◆ DotNormal()

nn::nlib::simd::Plane::DotNormal ( SimdPlaneArg  plane,
SimdVectorArg  vec 
)
staticnoexcept

平面と4次元ベクトルの内積を計算します。vec[3]は0として計算します。

引数
[in]plane平面
[in]vec3次元ベクトル(w要素が0として扱われる)
戻り値
各レーンに内積が格納されます。

◆ FromPoint()

nn::nlib::simd::Plane::FromPoint ( SimdVectorArg  point0,
SimdVectorArg  point1,
SimdVectorArg  point2 
)
staticnoexcept

3点を通る平面を作成します。

引数
[in]point0平面上の点
[in]point1平面上の点
[in]point2平面上の点
戻り値
平面

◆ FromPointAndNormal()

nn::nlib::simd::Plane::FromPointAndNormal ( SimdVectorArg  point,
SimdVectorArg  normal 
)
staticnoexcept

平面上の点と法線ベクトルから平面を作成します。

引数
[in]point平面上の点
[in]normal法線ベクトル
戻り値
平面

◆ Normalize()

nn::nlib::simd::Plane::Normalize ( SimdPlaneArg  plane)
staticnoexcept

平面の法線ベクトル (plane[0], plane[1], plane[2])を正規化した平面を返します。

引数
[in]plane平面
戻り値
法線ベクトルが正規化された平面

◆ NormalizeEst()

nn::nlib::simd::Plane::NormalizeEst ( SimdPlaneArg  plane)
staticnoexcept

平面の法線ベクトル (plane[0], plane[1], plane[2])を相対的に低い精度で正規化した平面を返します。

引数
[in]plane平面
戻り値
法線ベクトルが正規化された平面

◆ Transform()

nn::nlib::simd::Plane::Transform ( SimdPlaneArg  plane,
SimdMatrixArg  m 
)
staticnoexcept

平面を行列で変換します。

引数
[in]plane平面
[in]m行列
戻り値
変換された平面

このクラス詳解は次のファイルから抽出されました: