OROCHI
 
Loading...
Searching...
No Matches
GxEventHit::GxObject Class Reference

イベントあたりオブジェクトクラス More...

#include <GxEventHit.h>

Inheritance diagram for GxEventHit::GxObject:
Collaboration diagram for GxEventHit::GxObject:

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)
 ヒット時コールバック定義
 
- Public Types inherited from GxCollision::GxObject
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 GxEventHitgetManagementClass (void) const
 
GX_FORCE_INLINE HIT_CALLBACK getHitCallback (void) const
 コールバック関数の取得
 
GX_FORCE_INLINE void setHitCallback (HIT_CALLBACK pCallBack)
 コールバック関数のセット
 
constexpr void setTarget (GxObject *pTarget)
 攻撃相手のセット
 
constexpr GxObjectgetTarget (void) const
 攻撃相手の取得
 
constexpr GxClassBaseRootgetEventExecutant (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
 接触時の法線を取得

 
- Public Member Functions inherited from GxCollision::GxObject
 GxObject (void)
 デフォルトコンストラクタ
 
 ~GxObject (void) override
 デストラクタ
 
constexpr GxShapegetShape (void) const
 GXオブジェクト形状の取得
 
constexpr COLLISION_SHAPE getShapeType (void) const
 オブジェクト形状タイプの取得
 
constexpr GxCollision::GxWorldgetRegisterWorld (void) const
 登録したワールドのアドレスを取得
 
constexpr void setRegisterWorld (GxCollision::GxWorld *pWorld)
 登録したワールドのアドレスを設定
 
GX_FORCE_INLINE const GxMatrixAffinegetMatrixAddress0 (void) const
 マトリクス0のアドレス取得
 
GX_FORCE_INLINE const GxMatrixAffinegetMatrixAddress1 (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 GxVector3getOffset0 (void) const
 オフセット0の取得
 
GX_FORCE_INLINE const GxVector3getOffset1 (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 GxQuaterniongetQuaternion (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 GxUnitBasegetUnit (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 &centerPosition)
 中心位置の取得
 
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 GxCollisiongetCollision (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形状を再設定
 
- 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)
 デフォルトオブジェクト判定
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxCollision::GxObject
static constexpr u32 CHECK_FLAG_ALL = 0x7fffffff
 全フラグ定数
 
- Protected Member Functions inherited from GxCollision::GxObject
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)
 ユニットポインタの更新
 
- Protected Attributes inherited from GxCollision::GxObject
btCollisionShape * _pBtShape
 BULLET用形状
 

Detailed Description

イベントあたりオブジェクトクラス

Member Enumeration Documentation

◆ GROUP

グループ定義

Note
リソースに保存していないので、値は自由に変更可。
setType()時にtypeに応じてsetGroupMask()され、
Bulletのフィルター機能を用いてGROUP_PUSHERとGROUP_SWITCHのペアのみが作成される。
Enumerator
GROUP_PUSHER 

イベントを踏む側のあたり

GROUP_SWITCH 

踏まれるイベント側のあたり

◆ TYPE

enum class GxEventHit::GxObject::TYPE
strong

タイプ定義

Note
リソースに保存しているので、値に注意。
setType()時にtypeに応じてsetGroupMask()され、
Bulletのフィルター機能を用いてTYPE_PUSHERとTYPE_SWITCHのペアのみが作成される。
Enumerator
PUSHER 

イベントを踏む側の当たり

SWITCH 

踏まれるイベント側の当たり

ERROR_ 

未設定

MAX 

定義数

Member Function Documentation

◆ isNeedCheck()

b32 GxEventHit::GxObject::isNeedCheck ( GxCollision::GxObject * pCollisionObject)
overridevirtual

お互いの当たり判定が必要か判定

Parameters
pCollisionObject[in] 判定相手
Returns
当たり判定すべきならtrue

Reimplemented from GxCollision::GxObject.

Here is the call graph for this function:

◆ setType()

void GxEventHit::GxObject::setType ( TYPE type)

タイプの設定 typeに応じてsetGroupMask()され、 Bulletのフィルター機能を用いてTYPE_PUSHERとTYPE_SWITCHのペア以外は詳細計算前にはじかれます。 継承先クラスでsetGroupmask()を利用する場合は、↑に注意してください。 GxCollision::setGroupMask()のコメントも参照してください。

Parameters
type[in] タイプ
Here is the caller graph for this function:

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