OROCHI
 
Loading...
Searching...
No Matches
GxShape Class Referenceabstract

形状基礎クラス More...

#include <GxShape.h>

Inheritance diagram for GxShape:
Collaboration diagram for GxShape:

Public Member Functions

初期化
 GxShape (void)
 コンストラクタ
 
 ~GxShape (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 

Static Public Attributes

定義
static const f32 HIT_DISTANCE = 5.0e-1
 この距離未満なら衝突と判定
 
static const f32 NORMALIZED_JUDGE_MAX = 1.0e-3
 fabs(lengthSquare - 1.f)がこの値未満なら正規化と判定
 

操作

virtual const GxVector3 getNormal (const GxVector3 &position) const =0
 指定位置への法線を求める
 
virtual b32 isInclude (const GxVector3 &) const
 
static b32 isHit (const GxShapeSphere &sphere0, const GxShapeSphere &sphere1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と球の衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapeBox &box, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と箱の衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapeCylinder &cylinder, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と円柱の衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapeMultisphere &multisphere, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球とカプセルの衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と平面の衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と三角メッシュの衝突判定
 
static b32 isHitSphereRay (const GxShapeSphere &sphere, const GxShapeRay &ray, f32 *pParameter=nullptr, GxVector3 *pHitNormal=nullptr)
 球と線分の衝突判定
 
static b32 isHit (const GxShapeSphere &sphere, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 球と光束の衝突判定
 
static b32 isHit (const GxShapeBox &box0, const GxShapeBox &box1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と箱の衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxShapeCylinder &cylinder, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と円柱の衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxShapeMultisphere &multisphere, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱とカプセルの衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と平面の衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxVector3 &n, const GxVector3 &p, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と平面の衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と三角メッシュの衝突判定
 
static b32 isHitBoxRay (const GxShapeBox &box, const GxShapeRay &ray, f32 *pParam=nullptr, GxVector3 *pHitNormal=nullptr)
 箱と線分の衝突判定
 
static b32 isHit (const GxShapeBox &box, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 箱と光束の衝突判定
 
static b32 isHit (const GxShapeCylinder &cylinder0, const GxShapeCylinder &cylinder1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 円柱と円柱の衝突判定
 
static b32 isHit (const GxShapeCylinder &cylinder, const GxShapeMultisphere &multisphere, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 円柱とカプセルの衝突判定
 
static b32 isHit (const GxShapeCylinder &cylinder, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 円柱と平面の衝突判定
 
static b32 isHit (const GxShapeCylinder &cylinder, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 円柱と三角メッシュの衝突判定
 
static b32 isHitCylinderRay (const GxShapeCylinder &cylinder, const GxShapeRay &ray, f32 *pParameter=nullptr, GxVector3 *pHitNormal=nullptr)
 円柱と線分の衝突判定
 
static b32 isHit (const GxShapeCylinder &cylinder, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 円柱と光束の衝突判定
 
static b32 isHit (const GxShapeCapsule &multisphere0, const GxShapeCapsule &multisphere1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 カプセルとカプセルの衝突判定
 
static b32 isHit (const GxShapeCapsule &multisphere, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 カプセルと平面の衝突判定
 
static b32 isHit (const GxShapeCapsule &multisphere, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 カプセルと三角メッシュの衝突判定
 
static b32 isHitCapsuleRay (const GxShapeCapsule &multisphere, const GxShapeRay &ray, f32 *pParameter=nullptr, GxVector3 *pHitNormal=nullptr)
 カプセルと線分の衝突判定
 
static b32 isHit (const GxShapeCapsule &multisphere, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 カプセルと光束の衝突判定
 
static b32 isHit (const GxShapeMultisphere &multisphere0, const GxShapeMultisphere &multisphere1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 マルチ球とマルチ球の衝突判定
 
static b32 isHit (const GxShapeMultisphere &multisphere, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 マルチ球と平面の衝突判定
 
static b32 isHit (const GxShapeMultisphere &multisphere, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 マルチ球と三角メッシュの衝突判定
 
static b32 isHitMultisphereRay (const GxShapeMultisphere &multisphere, const GxShapeRay &ray, f32 *pParameter=nullptr, GxVector3 *pHitNormal=nullptr)
 マルチ球と線分の衝突判定
 
static b32 isHit (const GxShapeMultisphere &multisphere, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 マルチ球と光束の衝突判定
 
static b32 isHit (const GxShapeAxisAlignedBox &aab0, const GxShapeAxisAlignedBox &aab1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 AABとAABの衝突判定
 
static b32 isHit (const GxShapeAxisAlignedBox &aabb, const GxShapePlane &plane, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 AABBと平面の交差判定
 
static b32 isHit (const GxShapeAxisAlignedBox &aabb, const GxVector3 &n, const GxVector3 &p, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 AABBと平面の交差判定
 
static b32 isHit (const GxShapePlane &plane0, const GxShapePlane &plane1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 平面と平面の衝突判定
 
static b32 isHit (const GxShapePlane &plane, const GxShapeTrimesh &trimesh, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 平面と三角メッシュの衝突判定
 
static b32 isHitPlaneRay (const GxShapePlane &plane, const GxShapeRay &ray, f32 *pParameter=nullptr, GxVector3 *pHitNormal=nullptr)
 平面と線分の衝突判定
 
static b32 isHit (const GxShapePlane &plane, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 平面と光束の衝突判定
 
static b32 isHit (const GxShapeTrimesh &trimesh0, const GxShapeTrimesh &trimesh1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 三角メッシュと三角メッシュの衝突判定
 
static b32 isHit (const GxShapeTrimesh &trimesh, const GxShapeRay &ray, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 三角メッシュと線分の衝突判定
 
static b32 isHit (const GxShapeTrimesh &trimesh, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 三角メッシュと光束の衝突判定
 
static b32 isHit (const GxShapeRay &ray0, const GxShapeRay &ray1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 線分と線分の衝突判定
 
static b32 isHit (const GxShapeRay &ray, const GxShapeBeam &beam, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 線分と光束の衝突判定
 
static b32 isHit (const GxShapeBeam &beam0, const GxShapeBeam &beam1, GxVector3 *pHitPosition=nullptr, GxVector3 *pAdjustVector=nullptr)
 光束と光束の衝突判定
 
static void getClosestPoint (const GxVector3 &point, const GxShapeBox &box, GxVector3 &closestPoint, GxVector3 &surfacePoint)
 点と箱の最近接点を求める
 
static void getClosestPoint (const GxVector3 &point, const GxShapeRay &ray, GxVector3 &closestPoint)
 点と線分の最近接点を求める
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 

Detailed Description

形状基礎クラス

Member Function Documentation

◆ getClosestPoint() [1/2]

void GxShape::getClosestPoint ( const GxVector3 & point,
const GxShapeBox & box,
GxVector3 & closestPoint,
GxVector3 & surfacePoint )
static

点と箱の最近接点を求める

Parameters
point[in] 点
box[in] 箱
closestPoint[out] 最近接点
surfacePoint[out] 接触面の点
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getClosestPoint() [2/2]

void GxShape::getClosestPoint ( const GxVector3 & point,
const GxShapeRay & ray,
GxVector3 & closestPoint )
static

点と線分の最近接点を求める

Parameters
point[in] 点
ray[in] 線分
closestPoint[out] 最近接点
Here is the call graph for this function:

◆ getNormal()

virtual const GxVector3 GxShape::getNormal ( const GxVector3 & position) const
pure virtual

◆ isHit() [1/39]

b32 GxShape::isHit ( const GxShapeAxisAlignedBox & aab0,
const GxShapeAxisAlignedBox & aab1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

AABとAABの衝突判定

Parameters
aab0[in] AAB0
aab1[in] AAB1
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [2/39]

b32 GxShape::isHit ( const GxShapeAxisAlignedBox & aabb,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

AABBと平面の交差判定

Parameters
aabb[in] AABBオブジェクト
plane[in] 平面オブジェクト
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [3/39]

b32 GxShape::isHit ( const GxShapeAxisAlignedBox & aabb,
const GxVector3 & normal,
const GxVector3 & position,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

AABBと平面の交差判定

Parameters
aabb[in] AABBオブジェクト
normal[in] 平面の法線
position[in] 平面の座標
pHitPosition[in] 中心の平面への投射位置
pAdjustVector[in] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [4/39]

b32 GxShape::isHit ( const GxShapeBeam & beam0,
const GxShapeBeam & beam1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

光束と光束の衝突判定

Parameters
beam0[in] 光束0
beam1[in] 光束1
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [5/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と光束の衝突判定

Parameters
box[in] 箱
beam[in] 光束
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [6/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxShapeCylinder & cylinder,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と円柱の衝突判定

Parameters
box[in] 箱
cylinder[in] 円柱
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [7/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxShapeMultisphere & multisphere,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱とカプセルの衝突判定

Parameters
box[in] 箱
multisphere[in] マルチ球
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [8/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と平面の衝突判定

Parameters
box[in] 箱
plane[in] 平面
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [9/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と三角メッシュの衝突判定

Parameters
box[in] 箱
trimesh[in] 三角メッシュ
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [10/39]

b32 GxShape::isHit ( const GxShapeBox & box,
const GxVector3 & normal,
const GxVector3 & position,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と平面の衝突判定

Parameters
box[in] 箱
normal[in] 平面の法線
position[in] 平面の座標
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [11/39]

b32 GxShape::isHit ( const GxShapeBox & box0,
const GxShapeBox & box1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

箱と箱の衝突判定

Parameters
box0[in] 箱0
box1[in] 箱1
pHitPosition[out] 箱に最もめり込んでいる、箱上の点の座標
pAdjustVector[out] 箱をどれだけ動かせば箱と衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [12/39]

b32 GxShape::isHit ( const GxShapeCapsule & multisphere,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

カプセルと光束の衝突判定

Parameters
capsule[in] 円柱
beam[in] 光束
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [13/39]

b32 GxShape::isHit ( const GxShapeCapsule & multisphere,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

カプセルと平面の衝突判定

Parameters
capsule[in] 円柱
plane[in] 平面
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [14/39]

b32 GxShape::isHit ( const GxShapeCapsule & multisphere,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

カプセルと三角メッシュの衝突判定

Parameters
capsule[in] 円柱
trimesh[in] 三角メッシュ
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [15/39]

b32 GxShape::isHit ( const GxShapeCapsule & multisphere0,
const GxShapeCapsule & multisphere1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

カプセルとカプセルの衝突判定

Parameters
capsule0[in] 円柱0
capsule1[in] 円柱1
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [16/39]

b32 GxShape::isHit ( const GxShapeCylinder & cylinder,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

円柱と光束の衝突判定

Parameters
cylinder[in] 円柱0
beam[in] 光束
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [17/39]

b32 GxShape::isHit ( const GxShapeCylinder & cylinder,
const GxShapeMultisphere & multisphere,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

円柱とカプセルの衝突判定

Parameters
cylinder[in] 円柱
multisphere[in] カプセル
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [18/39]

b32 GxShape::isHit ( const GxShapeCylinder & cylinder,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

円柱と平面の衝突判定

Parameters
cylinder[in] 円柱
plane[in] 平面
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [19/39]

b32 GxShape::isHit ( const GxShapeCylinder & cylinder,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

円柱と三角メッシュの衝突判定

Parameters
cylinder[in] 円柱0
trimesh[in] 三角メッシュ
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [20/39]

b32 GxShape::isHit ( const GxShapeCylinder & cylinder0,
const GxShapeCylinder & cylinder1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

円柱と円柱の衝突判定

Parameters
cylinder0[in] 円柱0
cylinder1[in] 円柱1
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [21/39]

b32 GxShape::isHit ( const GxShapeMultisphere & multisphere,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

マルチ球と光束の衝突判定

Parameters
multisphere[in] マルチ球
beam[in] 光束
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [22/39]

b32 GxShape::isHit ( const GxShapeMultisphere & multisphere,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

マルチ球と平面の衝突判定

Parameters
multisphere[in] マルチ球
plane[in] 平面
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [23/39]

b32 GxShape::isHit ( const GxShapeMultisphere & multisphere,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

マルチ球と三角メッシュの衝突判定

Parameters
multisphere[in] マルチ球
trimesh[in] 三角メッシュ
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [24/39]

b32 GxShape::isHit ( const GxShapeMultisphere & multisphere0,
const GxShapeMultisphere & multisphere1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

マルチ球とマルチ球の衝突判定

Parameters
multisphere0[in] マルチ球0
multisphere1[in] マルチ球1
pHitPosition[out] 接触点の座標
pAdjustVector[out] どれだけ動かせば衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [25/39]

b32 GxShape::isHit ( const GxShapePlane & plane,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

平面と光束の衝突判定

Parameters
plane[in] 平面
beam[in] 光束
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [26/39]

b32 GxShape::isHit ( const GxShapePlane & plane,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

平面と三角メッシュの衝突判定

Parameters
plane[in] 平面
trimesh[in] 三角メッシュ
pHitPosition[in] 中心の平面への投射位置
pAdjustVector[in] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [27/39]

b32 GxShape::isHit ( const GxShapePlane & plane0,
const GxShapePlane & plane1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

平面と平面の衝突判定

Parameters
plane0[in] 平面0
plane1[in] 平面1
pHitPosition[in] 中心の平面への投射位置
pAdjustVector[in] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [28/39]

b32 GxShape::isHit ( const GxShapeRay & ray,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

線分と光束の衝突判定

Parameters
ray[in] 線分
beam[in] 光束
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [29/39]

b32 GxShape::isHit ( const GxShapeRay & ray0,
const GxShapeRay & ray1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

線分と線分の衝突判定

Parameters
ray0[in] 線分0
ray1[in] 線分1
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [30/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と光束の衝突判定

Parameters
sphere[in] 判定する主体
beam[in] 判定される側
pHitPosition[out] beamに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] beamをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [31/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapeBox & box,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と箱の衝突判定

Parameters
sphere[in] 判定する主体
box[in] 判定される側
pHitPosition[out] boxに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] boxをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [32/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapeCylinder & cylinder,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と円柱の衝突判定

Parameters
sphere[in] 判定する主体
cylinder[in] 判定される側
pHitPosition[out] cylinderに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] cylinderをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [33/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapeMultisphere & multiSphere,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球とカプセルの衝突判定

Parameters
sphere[in] 判定する主体
multiSphere[in] 判定される側
pHitPosition[out] multisphereに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] multisphereをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:

◆ isHit() [34/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapePlane & plane,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と平面の衝突判定

Parameters
sphere[in] 判定する主体
plane[in] 判定される側
pHitPosition[out] planeに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] planeをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [35/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere,
const GxShapeTrimesh & trimesh,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と三角メッシュの衝突判定

Parameters
sphere[in] 判定する主体
trimesh[in] 判定される側
pHitPosition[out] trimeshに最もめり込んでいる、sphere上の点の座標
pAdjustVector[out] trimeshをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue

◆ isHit() [36/39]

b32 GxShape::isHit ( const GxShapeSphere & sphere0,
const GxShapeSphere & sphere1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

球と球の衝突判定

Parameters
sphere0[in] 判定する主体
sphere1[in] 判定される側
pHitPosition[out] sphere1に最もめり込んでいる、sphere0上の点の座標
pAdjustVector[out] sphere1をどれだけ動かせばsphere0と衝突しなくなるか
Returns
衝突したらtrue
Here is the caller graph for this function:

◆ isHit() [37/39]

b32 GxShape::isHit ( const GxShapeTrimesh & trimesh,
const GxShapeBeam & beam,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

三角メッシュと光束の衝突判定

Parameters
trimesh[in] 三角メッシュ
beam[in] 光束
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [38/39]

b32 GxShape::isHit ( const GxShapeTrimesh & trimesh,
const GxShapeRay & ray,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

三角メッシュと線分の衝突判定

Parameters
trimesh[in] 三角メッシュ
ray[in] 線分
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHit() [39/39]

b32 GxShape::isHit ( const GxShapeTrimesh & trimesh0,
const GxShapeTrimesh & trimesh1,
GxVector3 * pHitPosition = nullptr,
GxVector3 * pAdjustVector = nullptr )
static

三角メッシュと三角メッシュの衝突判定

Parameters
plane[in] 平面
trimesh[in] 三角メッシュ
pHitPosition[out] 中心の平面への投射位置
pAdjustVector[out] AABBが平面に丁度くっつくまで
Returns
衝突したらtrue

◆ isHitBoxRay()

b32 GxShape::isHitBoxRay ( const GxShapeBox & box,
const GxShapeRay & ray,
f32 * pParameter = nullptr,
GxVector3 * pHitNormal = nullptr )
static

箱と線分の衝突判定

Parameters
box[in] 判定する主体
ray[in] 判定される側
pParameter[out] ヒット位置 = ray.getPosition0() + *pParam * (ray.getPosition1() - ray.getPosition0())。戻り値がfalseの場合は不定値になります。
pHitNormal[out] rayが初めにヒットする点の面法線。戻り値がfalseの場合は不定値になります。
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isHitCapsuleRay()

b32 GxShape::isHitCapsuleRay ( const GxShapeCapsule & capsule,
const GxShapeRay & ray,
f32 * pParameter = nullptr,
GxVector3 * pHitNormal = nullptr )
static

カプセルと線分の衝突判定

Parameters
capsule[in] 判定する主体
ray[in] 判定される側
pParameter[out] ヒット位置 = ray.getPosition0() + *pParam * (ray.getPosition1() - ray.getPosition0())。 戻り値がfalseの場合は不定値になります。
pHitNormal[out] rayが初めにヒットする点の面法線。 戻り値がfalseの場合は不定値になります。
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isHitCylinderRay()

b32 GxShape::isHitCylinderRay ( const GxShapeCylinder & cylinder,
const GxShapeRay & ray,
f32 * pParameter = nullptr,
GxVector3 * pHitNormal = nullptr )
static

円柱と線分の衝突判定

Parameters
cylinder[in] 判定する主体
ray[in] 判定される側
pParameter[out] ヒット位置 = ray.getPosition0() + *pParameter * (ray.getPosition1() - ray.getPosition0())。戻り値がfalseの場合は不定値になります。
pHitNormal[out] rayが初めにヒットする点の面法線。戻り値がfalseの場合は不定値になります。レイの始点が内包されているときはGxVector3::ZEROが返ります。
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isHitMultisphereRay()

b32 GxShape::isHitMultisphereRay ( const GxShapeMultisphere & multisphere,
const GxShapeRay & ray,
f32 * pParameter = nullptr,
GxVector3 * pHitNormal = nullptr )
static

マルチ球と線分の衝突判定

Parameters
multisphere[in] 判定する主体
ray[in] 判定される側
pParameter[out] ヒット位置 = ray.getPosition0() + *pParam * (ray.getPosition1() - ray.getPosition0())。 戻り値がfalseの場合は不定値になります。
pHitNormal[out] rayが初めにヒットする点の面法線。 戻り値がfalseの場合は不定値になります。
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isHitPlaneRay()

b32 GxShape::isHitPlaneRay ( const GxShapePlane & plane,
const GxShapeRay & ray,
f32 * pParameter = nullptr,
GxVector3 * pHitNormal = nullptr )
static

平面と線分の衝突判定

Parameters
plane[in] 判定する主体
ray[in] 判定される側
pParameter[out] ヒット位置 = ray.getPosition0() + *pParameter * (ray.getPosition1() - ray.getPosition0())。戻り値がfalseの場合は不定値になります。
pHitNormal[out] beamをどれだけ動かせばsphereと衝突しなくなるか
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isHitSphereRay()

b32 GxShape::isHitSphereRay ( const GxShapeSphere & sphere,
const GxShapeRay & ray,
f32 * pParam = nullptr,
GxVector3 * pHitNormal = nullptr )
static

球と線分の衝突判定

Parameters
sphere[in] 判定する主体
ray[in] 判定される側
pParam[out] ヒット位置 = ray.getPosition0() + *pParam * (ray.getPosition1() - ray.getPosition0())。戻り値がfalseの場合は不定値になります。
pHitNormal[out] rayが初めにヒットする点の面法線。戻り値がfalseの場合は不定値になります。
Returns
衝突したらtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isInclude()

virtual b32 GxShape::isInclude ( const GxVector3 & ) const
inlinevirtual

指定点が含まれているか判定

Parameters
point[in] チェックする点の座標
Returns
pointが自GxShapeに含まれているならtrue

Reimplemented in GxShapeAxisAlignedBox, GxShapeBox, GxShapeCylinder, GxShapeFrustum, and GxShapeSphere.


The documentation for this class was generated from the following files: