書 式
-
#include <Ninja.h>
Int njCollisionCheckBC( *box, *capsule )
NJS_BOX *box
NJS_CAPSULE *capsule
引 数
- *box
- コリジョンチェックの対象となる6面体
- *capsule
- コリジョンチェックの対象となるカプセル
返 値
-
1:接触
0:非接触
エラー
- なし
機 能
- 6面体とカプセルのコリジョンチェックを行います。
用 例
- 6面体 box とカプセル capsule のコリジョンチェックを行います。
NJS_BOX box;
NJS_CAPSULE capsule;
box.v[0].x = -150.f; box.v[0].y = 100.f; box.v[0].z = 100;
box.v[1].x = -150.f; box.v[1].y = 100.f; box.v[1].z = -100;
box.v[2].x = 50.f; box.v[2].y = 100.f; box.v[2].z = -100;
box.v[3].x = 50.f; box.v[3].y = 100.f; box.v[3].z = 100;
box.v[4].x = -150.f; box.v[4].y = -100.f; box.v[4].z = 100;
box.v[5].x = -150.f; box.v[5].y = -100.f; box.v[5].z = -100;
box.v[6].x = 50.f; box.v[6].y = -100.f; box.v[6].z = -100;
box.v[7].x = 50.f; box.v[7].y = -100.f; box.v[7].z = 100;
capsule.c1.x = 100.f;
capsule.c1.y = 0.f;
capsule.c1.z = 0.f;
capsule.c2.x = 200.f;
capsule.c2.y = 0.f;
capsule.c2.z = 0.f;
capsule.r = 100.f;
njCollisionCheckBC(&box, &capsule);
% 結果 %
返り値 = 1
備 考
- 6面体 box とカプセル capsule のコリジョンチェックを行います。
NJS_BOX box;
NJS_CAPSULE capsule;
box.v[0].x = -150.f; box.v[0].y = 100.f; box.v[0].z = 100;
box.v[1].x = -150.f; box.v[1].y = 100.f; box.v[1].z = -100;
box.v[2].x = 50.f; box.v[2].y = 100.f; box.v[2].z = -100;
box.v[3].x = 50.f; box.v[3].y = 100.f; box.v[3].z = 100;
box.v[4].x = -150.f; box.v[4].y = -100.f; box.v[4].z = 100;
box.v[5].x = -150.f; box.v[5].y = -100.f; box.v[5].z = -100;
box.v[6].x = 50.f; box.v[6].y = -100.f; box.v[6].z = -100;
box.v[7].x = 50.f; box.v[7].y = -100.f; box.v[7].z = 100;
capsule.c1.x = 100.f;
capsule.c1.y = 0.f;
capsule.c1.z = 0.f;
capsule.c2.x = 200.f;
capsule.c2.y = 0.f;
capsule.c2.z = 0.f;
capsule.r = 100.f;
njCollisionCheckBC(&box, &capsule);
% 結果 %
返り値 = 1
関 連
-
- NJS_BOX構造体(箱型)
typedef struct{
NJS_POINT3 v[8]; /* 6面体の頂点リスト */
} NJS_BOX;
- 頂点リストのインデックスと対応する頂点
- NJS_CAPSULE構造体(カプセル型)
typedef struct{
NJS_POINT3 c1;
NJS_POINT3 c2;
Float r;
} NJS_CAPSULE;
- 中心座標 c1、半径 r の球と中心座標 c2、半径 r の球を両端に持った棒状の物。