|
|
| 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) |
| ユニットポインタの更新
|
|