イベントあたりオブジェクトクラス More...
#include <GxEventHit.h>
Public Types | |
定義 | |
enum class | TYPE { PUSHER = 0 , SWITCH , ERROR_ , MAX } |
enum | GROUP { GROUP_PUSHER = (0x01 << 0) , GROUP_SWITCH = (0x01 << 1) } |
typedef void(GxClassBaseRoot::*) | HIT_CALLBACK(GxEventHit::GxObject *pHitObject) |
ヒット時コールバック定義 | |
![]() | |
enum | { ACTIVE_FLAG_ACTIVE = (1UL << 0) , ACTIVE_FLAG_ACTIVE_OLD = (1UL << 1) , ACTIVE_FLAG_REQUEST_REGISTER = (1UL << 2) , ACTIVE_FLAG_REQUEST_BAN = (1UL << 3) , ACTIVE_FLAG_REQUEST_DELETE = (1UL << 4) } |
アクティブフラグ定義 More... | |
Public Member Functions | |
初期化 | |
GxObject (void) | |
デフォルトコンストラクタ | |
~GxObject (void) override | |
デストラクタ | |
操作 | |
b32 | isNeedCheck (GxCollision::GxObject *pCollisionObject) override |
お互いの当たり判定が必要か判定 | |
アクセサ | |
constexpr TYPE | getType (void) const |
タイプの取得 | |
void | setType (TYPE type) |
GX_FORCE_INLINE GxEventHit * | getManagementClass (void) const |
GX_FORCE_INLINE HIT_CALLBACK | getHitCallback (void) const |
コールバック関数の取得 | |
GX_FORCE_INLINE void | setHitCallback (HIT_CALLBACK pCallBack) |
コールバック関数のセット | |
constexpr void | setTarget (GxObject *pTarget) |
攻撃相手のセット | |
constexpr GxObject * | getTarget (void) const |
攻撃相手の取得 | |
constexpr GxClassBaseRoot * | getEventExecutant (void) const |
イベント実行者取得 | |
constexpr void | setEventExecutant (GxClassBaseRoot *pEventExecutant) |
イベント実行者設定 | |
GX_FORCE_INLINE void | setHitPosition (const GxVector3 &hitPosition) |
接触点を設定 | |
GX_FORCE_INLINE void | setHitNormal (const GxVector3 &hitNormal) |
接触時の法線を設定 | |
GX_FORCE_INLINE GxVector3 | getHitPosition (void) const |
接触点を取得 | |
GX_FORCE_INLINE GxVector3 | getHitNormal (void) const |
接触時の法線を取得 | |
![]() | |
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) |
チェックフラグの無効化 | |
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 |
親コリジョンの取得 | |
virtual void | prepareCheck (void) |
当たり判定チェック前準備 | |
virtual void | update (void) |
オブジェクト位置の更新 | |
void | addOffset (const GxVector3 &offset) |
オフセット加算 | |
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形状を再設定 | |
![]() | |
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) |
デフォルトオブジェクト判定 | |
Additional Inherited Members | |
![]() | |
static GX_FORCE_INLINE GxRtti & | __getStaticRtti (void) |
Rttiの取得 | |
![]() | |
static constexpr u32 | CHECK_FLAG_ALL = 0x7fffffff |
全フラグ定数 | |
![]() | |
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) |
ユニットポインタの更新 | |
![]() | |
btCollisionShape * | _pBtShape |
BULLET用形状 | |
イベントあたりオブジェクトクラス
グループ定義
Enumerator | |
---|---|
GROUP_PUSHER | イベントを踏む側のあたり |
GROUP_SWITCH | 踏まれるイベント側のあたり |
|
strong |
タイプ定義
Enumerator | |
---|---|
PUSHER | イベントを踏む側の当たり |
SWITCH | 踏まれるイベント側の当たり |
ERROR_ | 未設定 |
MAX | 定義数 |
|
overridevirtual |
お互いの当たり判定が必要か判定
pCollisionObject | [in] 判定相手 |
Reimplemented from GxCollision::GxObject.
void GxEventHit::GxObject::setType | ( | TYPE | type | ) |
タイプの設定 typeに応じてsetGroupMask()され、 Bulletのフィルター機能を用いてTYPE_PUSHERとTYPE_SWITCHのペア以外は詳細計算前にはじかれます。 継承先クラスでsetGroupmask()を利用する場合は、↑に注意してください。 GxCollision::setGroupMask()のコメントも参照してください。
type | [in] タイプ |