|
|
|
| GxObject (void) |
| | デフォルトコンストラクタ
|
| |
|
| ~GxObject (void) override |
| | デストラクタ
|
| |
|
|
constexpr GxShape * | getShape (void) const |
| | GXオブジェクト形状の取得
|
| |
|
constexpr COLLISION_SHAPE | getShapeType (void) const |
| | オブジェクト形状タイプの取得
|
| |
|
constexpr GxCollision::GxWorld * | getRegisterWorld (void) const |
| | 登録したワールドのアドレスを取得
|
| |
|
constexpr void | setRegisterWorld (GxCollision::GxWorld *pWorld) |
| | 登録したワールドのアドレスを設定
|
| |
|
GX_FORCE_INLINE const GxMatrixAffine * | getMatrixAddress0 (void) const |
| | マトリクス0のアドレス取得
|
| |
|
GX_FORCE_INLINE const GxMatrixAffine * | getMatrixAddress1 (void) const |
| | マトリクス1のアドレス取得
|
| |
|
GX_FORCE_INLINE void | setMatrixAddress0 (const GxMatrixAffine *pMatrix) |
| | マトリクス0のアドレス設定
|
| |
|
GX_FORCE_INLINE void | setMatrixAddress1 (const GxMatrixAffine *pMatrix) |
| | マトリクス1のアドレス設定
|
| |
|
GX_FORCE_INLINE GxMatrixAffine | getMatrix0 (void) const |
| | マトリクス0の取得
|
| |
|
GX_FORCE_INLINE GxMatrixAffine | getMatrix1 (void) const |
| | マトリクス1の取得
|
| |
|
GX_FORCE_INLINE const GxVector3 & | getOffset0 (void) const |
| | オフセット0の取得
|
| |
|
GX_FORCE_INLINE const GxVector3 & | getOffset1 (void) const |
| | オフセット1の取得
|
| |
|
GX_FORCE_INLINE void | setOffset0 (const GxVector3 &offset) |
| | オフセット0の設定
|
| |
|
GX_FORCE_INLINE void | setOffset1 (const GxVector3 &offset) |
| | オフセット1の設定
|
| |
|
GX_FORCE_INLINE const GxQuaternion & | getQuaternion (void) |
| | 回転の取得
|
| |
|
GX_FORCE_INLINE void | setQuaternion (const GxQuaternion &quaternion) |
| | 回転の設定
|
| |
|
GX_FORCE_INLINE b32 | getActiveFlag (u32 flag) const |
| | アクティブフラグ取得
|
| |
|
constexpr u32 | getActiveFlagAll (void) const |
| | 全アクティブフラグ取得
|
| |
|
GX_FORCE_INLINE void | setActiveFlag (u32 flag, b32 value) |
| | アクティブフラグ設定
|
| |
|
GX_FORCE_INLINE b32 | isActive (void) const |
| | アクティブかどうか取得
|
| |
| void | setActive (b32 active) |
| | アクティブかどうか設定
|
| |
|
GX_FORCE_INLINE b32 | isActiveOld (void) const |
| |
|
constexpr GxUnitBase * | getUnit (void) const |
| | ユニット取得
|
| |
|
GX_FORCE_INLINE void | setUnit (GxUnitBase *pUnit) |
| | ユニット設定
|
| |
|
constexpr u32 | getId (void) const |
| | ID取得
|
| |
|
constexpr void | setId (u32 id) |
| | ID設定
|
| |
|
constexpr s32 | getMaterial (void) const |
| | マテリアルの取得
|
| |
|
constexpr void | setMaterial (s32 material) |
| | マテリアルの設定
|
| |
|
constexpr u32 | getCheckFlag (void) const |
| | チェックフラグの取得
|
| |
|
constexpr void | setCheckFlag (u32 flag) |
| | チェックフラグの設定
|
| |
|
constexpr void | onCheckFlag (u32 flag) |
| | チェックフラグの有効化
|
| |
|
constexpr void | offCheckFlag (u32 flag) |
| | チェックフラグの無効化
|
| |
|
- Note
- 衝突判定の早期回避のためのBulletの仕組みです。
isNeedCheck()より先に行われ、 (objA._group & objB._mask) && (objA._mask & objB._group) == false の場合は詳細計算を省き、早期終了します。
_groupには1ビットのみを立て、_maskは複数ビットたたせる事で制御すると 間違いにくいかと思います。
_group/_mask, _checkFlag共GxObject単位で設定されることに注意してください。 メッシュ形状の三角形単位でのフラグチェックに関しては isHitCheckFlagTrimesh()のコメントを参照してください。
_group/_maskと_checkFlagとの違い 1: _maskと_groupによる判定はBullet内で行われる。 _checkFlagによる判定はGxPhysics内で行われる。 2: isHitCheckFlag()よりも早く呼ばれるため、 グループ・マスクを利用したほうが速度が改善する。 3: フラグはvirtualなisHitCheckFlag()で判定される。
|
|
constexpr s16 | getGroup (void) const |
| | グループの取得
|
| |
|
constexpr s16 | getMask (void) const |
| | マスクの取得
|
| |
| void | setGroupMask (s16 group, s16 mask) |
| | グループ・マスク設定
|
| |
| b32 | setSphereRadius (f32 radius) |
| | 球の半径変更
|
| |
| b32 | setMultisphereRadius (f32 radius0, f32 radius1) |
| | マルチ球の半径変更
|
| |
| b32 | setCapsuleRadius (f32 radius) |
| | カプセルの半径変更
|
| |
| b32 | setBoxExtent (const GxVector3 &extent) |
| | 箱のサイズ変更
|
| |
| b32 | setCylinderExtent (const f32 radius, const f32 heightHalf) |
| | 円柱のサイズ変更
|
| |
| b32 | transformMeshVertex (const GxMatrixAffine &matrix) |
| | メッシュ頂点の変形
|
| |
| void | getCenterPosition (GxVector3 ¢erPosition) |
| | 中心位置の取得
|
| |
| const GxMatrixAffine | getCenterMatrix (void) |
| | 中心のマトリクスを取得
|
| |
| f32 | getRadiusMin (void) |
| | 最小半径の取得
|
| |
| const GxVector3 | getNormal (const GxVector3 &position) |
| | 法線の取得
|
| |
|
GX_FORCE_INLINE btCollisionObject * | getBulletCollisionObject (void) |
| | BULLETコリジョンオブジェクトの取得
|
| |
|
constexpr btCollisionShape * | getBulletCollisionShape (void) const |
| | BULLET形状の取得
|
| |
|
GX_FORCE_INLINE void | getPropertyActiveOld (void *const pValue) |
| | 前回のアクティブを取得
|
| |
|
GX_FORCE_INLINE void | getPropertyActive (void *const pValue) |
| | アクティブを取得
|
| |
|
constexpr void | setPropertyActiveOld (const void *const) |
| | 前回のアクティブを設定
|
| |
|
GX_FORCE_INLINE void | setPropertyActive (const void *const pValue) |
| | アクティブを設定
|
| |
|
constexpr void | setCollision (GxCollision *pCollision) |
| | 親コリジョンの設定
|
| |
|
constexpr GxCollision * | getCollision (void) const |
| | 親コリジョンの取得
|
| |
|
constexpr | GxClassBase (void) |
| | コンストラクタ
|
| |
|
constexpr | GxClassBase (const GxClassBase &base) |
| | コピーコンストラクタ
|
| |
|
| ~GxClassBase (void) override |
| | デストラクタ
|
| |
|
constexpr | GxClassBaseRoot (void) |
| | コンストラクタ
|
| |
|
constexpr | GxClassBaseRoot (const GxClassBaseRoot &) |
| | コピーコンストラクタ
|
| |
|
virtual | ~GxClassBaseRoot (void) |
| | デストラクタ
|
| |
|
constexpr GxClassBaseRoot & | operator= (const GxClassBaseRoot &) |
| | 代入演算子
|
| |
|
virtual GxRtti & | getRtti (void) const =0 |
| | Rttiの取得
|
| |
| virtual GX_FORCE_INLINE const GxTypedObject * | getDefaultObject (void) |
| | デフォルトオブジェクトを取得
|
| |
|
GX_FORCE_INLINE b32 | isDefaultObject (void) |
| | デフォルトオブジェクト判定
|
| |
|
|
virtual void | prepareCheck (void) |
| | 当たり判定チェック前準備
|
| |
| virtual void | update (void) |
| | オブジェクト位置の更新
|
| |
| void | addOffset (const GxVector3 &offset) |
| | オフセット加算
|
| |
| virtual b32 | isNeedCheck (GxObject *pCollisionObject) |
| | お互いの当たり判定が必要かどうか
|
| |
| virtual b32 | isHitCheckFlag (u32 targetFlag) |
| | チェックフラグからあたり判定が必要かを調べる
|
| |
| virtual b32 | isHitCheckFlagTrimesh (u32 triangleIndex, u32 targetFlag) |
| | メッシュ形状の三角形単位で、チェックフラグから当たり判定が必要かを調べる
|
| |
| virtual GX_FORCE_INLINE void | initializeActiveOn (void) |
| | アクティブON時のパラメタ初期化
|
| |
| virtual GX_FORCE_INLINE void | initializeActiveOff (void) |
| | アクティブOFF時のパラメタ初期化
|
| |
| virtual GX_FORCE_INLINE void | initializeUpdate (void) |
| | 更新前のパラメタ初期化(1フレームに複数回呼ばれる可能性もある)
|
| |
| virtual b32 | createSphere (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeSphere &sphere) |
| | 球の作成
|
| |
| virtual b32 | createBox (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeBox &box) |
| | ボックスの作成
|
| |
| virtual b32 | createMultisphere (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1, const GxShapeMultisphere &multisphere) |
| | マルチ球の作成
|
| |
| virtual b32 | createCylinder (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCylinder &cylinder) |
| | 円柱の作成
|
| |
| virtual b32 | createCapsule (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCapsule &capsule) |
| | カプセルの作成
|
| |
| virtual b32 | createMesh (b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btTriangleIndexVertexArray *pVertex, b32 isCompress, GxVector3 *pAabbMin=nullptr, GxVector3 *pAabbMax=nullptr) |
| | メッシュの作成
|
| |
| virtual b32 | createMesh (b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btBvhTriangleMeshShape *pBtTrimeshShape) |
| | メッシュの作成(外部からBULLET用のシェイプを取得)
|
| |
| void | resetBulletShape (btCollisionShape *pBtShapeNew) |
| | Bullet形状を再設定
|
| |
|
GX_FORCE_INLINE void | updateActiveFlag (void) |
| | アクティブフラグ更新
|
| |
| virtual void | initialize (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1) |
| | オブジェクトの初期化
|
| |
|
GX_FORCE_INLINE void | updateUnitPointer (void) |
| | ユニットポインタの更新
|
| |