nlib
|
OBB(有向境界ボックス)を表すクラスです。中心座標(center
)とxyz軸方向の大きさ(extent
)及び回転クォータニオン(rotation
)をデータメンバに持ちます。
[詳解]
#include "nn/nlib/simd/SimdGeometry.h"
公開メンバ関数 | |
OrientedBox () noexcept | |
デフォルトコンストラクタです。データメンバの初期設定は行いません。 | |
void | Transform (OrientedBox *box, SimdMatrixArg m) noexcept |
OBBを3D変換したOBBを格納します。 [詳解] | |
void | GetCorners (Float3 *corners) const noexcept |
OBBの頂点座標を取得します。 [詳解] | |
静的公開メンバ関数 | |
static void | FromAxisAlignedBox (OrientedBox *box, const AxisAlignedBox &aabb) noexcept |
AABBをOBBに変換します。 [詳解] | |
公開変数類 | |
SimdVector | center |
OBBの中心座標です。3次元ベクトルです。 | |
SimdVector | extent |
OBBのxyz各座標の大きさです。各要素は全て正の値である必要があります。3次元ベクトルです。 | |
SimdQuaternion | rotation |
OBBの方向(orientation)を表すクォータニオンです。 | |
OBB(有向境界ボックス)を表すクラスです。中心座標(center
)とxyz軸方向の大きさ(extent
)及び回転クォータニオン(rotation
)をデータメンバに持ちます。
(-extent.x, -extent.y, -extent.z), (extent.x, extent.y, extent.z)
で定義されるAABBをrotation
で回転させて、center
だけ平行移動させたオブジェクトになります。 (-1,-1,-1)
と (1, 1, 1)
をそれぞれ最小座標と最大座標として持つAABBと同じになります。 SimdGeometry.h の 93 行目に定義があります。
|
staticnoexcept |
AABBをOBBに変換します。
[out] | box | OBBが格納される領域 |
[in] | aabb | AABBが格納される領域 |
|
noexcept |
OBBの頂点座標を取得します。
[out] | corners | 頂点座標が格納される領域 |
corners
は8つの頂点座標が書き出されるので、そのための領域が書き込み可能になっている必要があります。
|
noexcept |
OBBを3D変換したOBBを格納します。
[out] | box | 変換されたOBBが格納される領域 |
[in] | m | 3D変換行列 |
© 2012-2017 Nintendo Co., Ltd. All rights reserved.