nlib
|
交差の判定を行う関数をまとめたクラスです。 [詳解]
#include "nn/nlib/simd/SimdGeometry.h"
公開型 | |
enum | PlaneResult { PLANE_FRONT = 0, PLANE_INTERSECT = 1, PLANE_BACK = 2 } |
平面との交差判定の戻り値の型です。平面の法線方向と同じ側を平面の表とします。 [詳解] | |
静的公開メンバ関数 | |
static SimdVector | PlaneLine (SimdPlaneArg plane, SimdVectorArg line_point, SimdVectorArg line_dir_normalized) noexcept |
3次元空間上の線が平面と交差する点を計算します。 [詳解] | |
static SimdVector | PlaneRay (SimdPlaneArg plane, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
3次元空間上の半直線が平面と交差する点を計算します。 [詳解] | |
static SimdVector | PlaneSegment (SimdPlaneArg plane, SimdVectorArg segment_point0, SimdVectorArg segment_point1) noexcept |
3次元空間上の線分が平面と交差する点を計算します。 [詳解] | |
static bool | SphereRay (float *distance, SimdSphereArg sphere, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
3次元空間上の球と半直線が交差するかどうかを判定します。 [詳解] | |
static bool | TriangleRay (float *distance, SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
3次元空間上の三角形と半直線が交差するかどうかを判定します。 [詳解] | |
static PlaneResult | TrianglePlane (SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2, SimdPlaneArg plane_normalized) noexcept |
3次元空間上の三角形と平面が交差するかどうかを判定します。 [詳解] | |
static PlaneResult | SpherePlane (SimdSphereArg sphere, SimdPlaneArg plane_normalized) noexcept |
3次元空間上の球と平面が交差するかどうかを判定します。 [詳解] | |
static bool | SphereSphere (SimdSphereArg sphere0, SimdSphereArg sphere1) noexcept |
3次元空間上の球と球が交差するかどうかを判定します。 [詳解] | |
static f128x2 | PlanePlane (SimdPlaneArg plane0, SimdPlaneArg plane1) noexcept |
3次元空間上の平面と平面が交差するかどうかを判定します。 [詳解] | |
static bool | SphereTriangle (SimdSphereArg sphere, SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2) noexcept |
3次元空間上の球と三角形が交差するかどうかを判定します。 [詳解] | |
static PlaneResult | AxisAlignedBoxPlane (const AxisAlignedBox &aabb, SimdPlaneArg plane_normalized) noexcept |
AABBと平面が交差するかどうかを判定します。 [詳解] | |
static bool | AxisAlignedBoxRay (const AxisAlignedBox &aabb, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
3次元空間上のAABBと半直線が交差するのかどうかを判定します。 [詳解] | |
static bool | AxisAlignedBoxSphere (const AxisAlignedBox &aabb, SimdSphereArg sphere) noexcept |
3次元空間上のAABBと球が交差するのかどうかを判定します。 [詳解] | |
static bool | AxisAlignedBoxAxisAlignedBox (const AxisAlignedBox &aabb0, const AxisAlignedBox &aabb1) noexcept |
3次元空間上のAABBとAABBが交差するのかどうかを判定します。 [詳解] | |
static bool | AxisAlignedBoxTriangle (const AxisAlignedBox &aabb, SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2) noexcept |
3次元空間上のAABBと三角形が交差するのかどうかを判定します。 [詳解] | |
static bool | OrientedBoxSphere (const OrientedBox &box, SimdSphereArg sphere) noexcept |
3次元空間上のOBBと球が交差するのかどうかを判定します。 [詳解] | |
static bool | OrientedBoxAxisAlignedBox (const OrientedBox &box, const AxisAlignedBox &aabb) noexcept |
3次元空間上のOBBとAABBが交差するのかどうかを判定します。 [詳解] | |
static bool | OrientedBoxOrientedBox (const OrientedBox &box0, const OrientedBox &box1) noexcept |
3次元空間上のOBBとOBBが交差するのかどうかを判定します。 [詳解] | |
static bool | OrientedBoxTriangle (const OrientedBox &box, SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2) noexcept |
3次元空間上のOBBと三角形が交差するのかどうかを判定します。 [詳解] | |
static PlaneResult | OrientedBoxPlane (const OrientedBox &box, SimdPlaneArg plane_normalized) noexcept |
3次元空間上のOBBと平面が交差するのかどうかを判定します。 [詳解] | |
static bool | OrientedBoxRay (const OrientedBox &box, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
3次元空間上のOBBと半直線が交差するのかどうかを判定します。 [詳解] | |
static bool | FrustumSphere (const Frustum &frustum, SimdSphereArg sphere) noexcept |
フラスタムと球が交差するのかどうかを判定します。 [詳解] | |
static bool | FrustumAxisAlignedBox (const Frustum &frustum, const AxisAlignedBox &aabb) noexcept |
フラスタムとAABBが交差するのかどうかを判定します。 [詳解] | |
static bool | FrustumOrientedBox (const Frustum &frustum, const OrientedBox &obb) noexcept |
フラスタムとOBBが交差するのかどうかを判定します。 [詳解] | |
static bool | FrustumTriangle (const Frustum &frustum, SimdVectorArg triangle_point0, SimdVectorArg triangle_point1, SimdVectorArg triangle_point2) noexcept |
フラスタムと三角形が交差するのかどうかを判定します。 [詳解] | |
static PlaneResult | FrustumPlane (const Frustum &frustum, SimdPlaneArg plane) noexcept |
フラスタムと平面が交差するのかどうかを判定します。 [詳解] | |
static bool | FrustumRay (const Frustum &frustum, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept |
フラスタムと半直線が交差するのかどうかを判定します。 [詳解] | |
平面との交差判定の戻り値の型です。平面の法線方向と同じ側を平面の表とします。
列挙値 | |
---|---|
PLANE_FRONT | 対象オブジェクトは平面の表側に存在します。 |
PLANE_INTERSECT | 対象オブジェクトは平面と交差します。 |
PLANE_BACK | 対象オブジェクトは平面の裏側に存在します。 |
SimdGeometry.h の 181 行目に定義があります。
|
staticnoexcept |
3次元空間上のAABBとAABBが交差するのかどうかを判定します。
[in] | aabb0 | 3次元空間上のAABB |
[in] | aabb1 | 3次元空間上のAABB |
true
|
staticnoexcept |
AABBと平面が交差するかどうかを判定します。
[in] | aabb | 3次元空間上のAABB |
[in] | plane_normalized | 3次元空間上の正規化された平面 |
|
staticnoexcept |
3次元空間上のAABBと半直線が交差するのかどうかを判定します。
[in] | aabb | 3次元空間上のAABB |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
true
|
staticnoexcept |
3次元空間上のAABBと球が交差するのかどうかを判定します。
[in] | aabb | 3次元空間上のAABB |
[in] | sphere | 3次元空間上の球 |
true
|
staticnoexcept |
3次元空間上のAABBと三角形が交差するのかどうかを判定します。
[in] | aabb | 3次元空間上のAABB |
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
true
|
staticnoexcept |
フラスタムとAABBが交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | aabb | 3次元空間上のAABB |
true
|
staticnoexcept |
フラスタムとOBBが交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | obb | 3次元空間上のOBB |
true
|
staticnoexcept |
フラスタムと平面が交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | plane | 3次元空間上の平面 |
true
|
staticnoexcept |
フラスタムと半直線が交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
true
|
staticnoexcept |
フラスタムと球が交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | sphere | 3次元空間上の球 |
true
|
staticnoexcept |
フラスタムと三角形が交差するのかどうかを判定します。
[in] | frustum | フラスタム |
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
true
|
staticnoexcept |
3次元空間上のOBBとAABBが交差するのかどうかを判定します。
[in] | box | 3次元空間上のOBB |
[in] | aabb | 3次元空間上のAABB |
true
|
staticnoexcept |
3次元空間上のOBBとOBBが交差するのかどうかを判定します。
[in] | box0 | 3次元空間上のOBB |
[in] | box1 | 3次元空間上のOBB |
true
|
staticnoexcept |
3次元空間上のOBBと平面が交差するのかどうかを判定します。
[in] | box | 3次元空間上のOBB |
[in] | plane_normalized | 3次元空間上の正規化された平面 |
|
staticnoexcept |
3次元空間上のOBBと半直線が交差するのかどうかを判定します。
[in] | box | 3次元空間上のOBB |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
true
|
staticnoexcept |
3次元空間上のOBBと球が交差するのかどうかを判定します。
[in] | box | 3次元空間上のOBB |
[in] | sphere | 3次元空間上の球 |
true
|
staticnoexcept |
3次元空間上のOBBと三角形が交差するのかどうかを判定します。
[in] | box | 3次元空間上のOBB |
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
true
|
staticnoexcept |
3次元空間上の線が平面と交差する点を計算します。
[in] | plane | 3次元空間上の平面 |
[in] | line_point | 線上の点の位置を示す3次元ベクトル |
[in] | line_dir_normalized | 線の方向を表す単位ベクトル |
NaN
を設定して返します。
|
staticnoexcept |
3次元空間上の平面と平面が交差するかどうかを判定します。
[in] | plane0 | 3次元空間上の平面 |
[in] | plane1 | 3次元空間上の平面 |
NaN
を設定して返します。
|
staticnoexcept |
3次元空間上の半直線が平面と交差する点を計算します。
[in] | plane | 3次元空間上の平面 |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
NaN
を設定して返します。
|
staticnoexcept |
3次元空間上の線分が平面と交差する点を計算します。
[in] | plane | 3次元空間上の平面 |
[in] | segment_point0 | 線分の始点 |
[in] | segment_point1 | 線分の終点 |
NaN
を設定して返します。
|
staticnoexcept |
3次元空間上の球と平面が交差するかどうかを判定します。
[in] | sphere | 3次元空間上の球 |
[in] | plane_normalized | 3次元空間上の正規化された平面 |
|
staticnoexcept |
3次元空間上の球と半直線が交差するかどうかを判定します。
[out] | distance | NULL でなく交差する場合には半直線の起点と交差点との距離が格納されます。 |
[in] | sphere | 3次元空間上の球 |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
true
|
staticnoexcept |
3次元空間上の球と球が交差するかどうかを判定します。
[in] | sphere0 | 3次元空間上の球 |
[in] | sphere1 | 3次元空間上の球 |
true
|
staticnoexcept |
3次元空間上の球と三角形が交差するかどうかを判定します。
[in] | sphere | 3次元空間上の球 |
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
true
|
staticnoexcept |
3次元空間上の三角形と平面が交差するかどうかを判定します。
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
[in] | plane_normalized | 3次元空間上の正規化された平面 |
|
staticnoexcept |
3次元空間上の三角形と半直線が交差するかどうかを判定します。
[out] | distance | NULL でなく交差する場合には半直線の起点と交差点との距離が格納されます。 |
[in] | triangle_point0 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point1 | 三角形の頂点を示す3次元ベクトル |
[in] | triangle_point2 | 三角形の頂点を示す3次元ベクトル |
[in] | ray_point | 半直線の起点の位置を示す3次元ベクトル |
[in] | ray_dir_normalized | 半直線の方向を表す単位ベクトル |
true
© 2012-2016 Nintendo Co., Ltd. All rights reserved.