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

イベントあたりワールドクラス More...

#include <GxEventHit.h>

Inheritance diagram for GxEventHit::GxWorld:
Collaboration diagram for GxEventHit::GxWorld:

Public Member Functions

初期化
 GxWorld (void)
 デフォルトコンストラクタ
 
 ~GxWorld (void) override
 デストラクタ
 
操作
void postBulletUpdate (void) override
 
void calculateHitObject (btPersistentManifold *pPersistentManifold)
 ヒットしたオブジェクトのコールバック呼び出し
 
- Public Member Functions inherited from GxCollision::GxWorld
 GxWorld (void)
 デフォルトコンストラクタ
 
 ~GxWorld (void) override
 デストラクタ
 
virtual b32 alloc (u32 meshCount, const GxVector3 &worldAabbMin, const GxVector3 &worldAabbMax, u16 maxHandles, u32 stackAllocatorSize=GX_COLLISION_DEFAULT_STACK_ALLOCATOR_SIZE, u32 maxPersistentManifoldPoolSize=GX_COLLISION_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE, u32 maxCollisionAlgorithmPoolSize=GX_COLLISION_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE)
 ワールドのメモリ確保
 
virtual void prepareCheck (void)
 当たり判定チェック前準備
 
virtual void check (void)
 
virtual void preBulletUpdate (void)
 
virtual void executePostCheckCallback (void)
 chekc後コールバックを実行
 
virtual GX_FORCE_INLINE void postCheck (void)
 check後処理
 
virtual void registerObject (GxCollision::GxObject *pObject)
 ワールドにオブジェクトを登録する
 
void banObject (GxCollision::GxObject *pObject)
 ワールドからオブジェクトを登録解除する
 
void addClass (u32 threadIndex, GxCollision *pObject)
 クラス登録
 
void detachClass (GxCollision *pCollision)
 クラス削除
 
void detachObjectFromBullet (GxObject *pObject)
 Bulletワールドからデタッチ
 
constexpr btCollisionWorld * getBulletWorld (void) const
 Bulletワールドを取得
 
b32 createBulletWorld (void)
 
b32 deleteBulletWorld (void)
 
void freeMesh (void)
 メッシュリストの解放
 
b32 addMesh (u32 index, GxCollision::GxObject *pMesh)
 背景当たりをリストに追加
 
b32 eraseMesh (GxCollision::GxObject *pMesh)
 メッシュをリストから削除(アドレス指定版)
 
virtual GxCollision::GxRayCallback * createRayCallback (const btVector3 &rayFrom, const btVector3 &rayEnd, GxConditionInformation *pConditionInfo)
 
b32 checkRayClosestVsWorld (GxCollision::GxRayResult &rayResult, const GxVector3 &startPosition, const GxVector3 &endPosition, GxConditionInformation *pConditionInfo=nullptr)
 登録されている全オブジェクトとのレイチェック(最も近い交差点)
 
b32 checkRayClosestVsSingle (GxCollision::GxRayResult &rayResult, GxObject *pTargetObject, const GxVector3 &startPosition, const GxVector3 &endPosition, GxConditionInformation *pConditionInfo=nullptr)
 指定オブジェクトとのレイチェック
 
virtual GxCollision::GxConvexCallback * createConvexCallback (const btVector3 &checkFrom, const btVector3 &checkEnd, GxConditionInformation *pConditionInfo)
 
b32 checkCapsuleClosestVsWorld (GxCollision::GxRayResult &rayResult, const GxVector3 &startPosition, const GxVector3 &endPosition, f32 radius, GxConditionInformation *pConditionInfo=nullptr)
 
b32 checkCapsuleClosestVsSingle (GxCollision::GxRayResult &rayResult, GxObject *pTargetObject, const GxVector3 &startPosition, const GxVector3 &endPosition, f32 radius, GxConditionInformation *pConditionInfo=nullptr)
 
GX_FORCE_INLINE void setActive (b32 active)
 アクティブ設定
 
GX_FORCE_INLINE b32 isActive (void)
 アクティブか判定
 
b32 setMeshCount (u32 count)
 メッシュ登録個数設定
 
GxCollision::GxObject * getMesh (u32 index)
 メッシュアドレスの取得
 
constexpr u32 getMeshCount (void) const
 メッシュオブジェクト個数の取得
 
u32 getActiveMeshCount (void)
 アクティブな個数の取得
 
constexpr u32 getListClassCount (void) const
 リスト個数取得
 
b32 setListClassCount (u32 count)
 リスト個数設定
 
constexpr GxArrayClassBase * getListClass (u32 index) const
 リストの取得
 
constexpr u32 getCollisionCount (void) const
 登録コリジョンの個数を取得
 
GX_FORCE_INLINE GxArrayClassBase * getCollisionList (void)
 登録コリジョンリストを取得
 
- 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 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 Public Member Functions inherited from GxCollision::GxWorld
static void customNearCallback (btBroadphasePair &collisionPair, btCollisionDispatcher &dispatcher, const btDispatcherInfo &dispatchInfo)
 近距離当たり判定コールバック(BULLETで用意されたものをオーバーライド)
 
- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti & __getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxCollision::GxWorld
static constexpr u32 COLLISION_ALGORITHM_NUM = GxMath::VALUE_2
 アルゴリズム個数
 
static constexpr u32 GX_COLLISION_DEFAULT_STACK_ALLOCATOR_SIZE = GxMath::VALUE_64K
 コリジョンのスタックアロケーターサイズデフォルト値
 
static constexpr u32 GX_COLLISION_DEFAULT_MAX_PERSISTENT_MANIFOLD_POOL_SIZE = GxMath::VALUE_8
 コリジョンの汎用的な最大プールサイズデフォルト値
 
static constexpr u32 GX_COLLISION_DEFAULT_MAX_COLLISION_ALGORITHM_POOL_SIZE = GxMath::VALUE_8
 コリジョンのコリジョンアルゴリズム用最大プールサイズデフォルト値
 
- Protected Member Functions inherited from GxCollision::GxWorld
GX_FORCE_INLINE void getPropertyList (void *const pValue, u32 index)
 再生クラスアドレスの取得
 
GX_FORCE_INLINE void setPropertyList (const void *const, u32)
 再生クラスアドレスの設定
 
GX_FORCE_INLINE void setPropertyListClassCount (u32 count)
 リスト個数設定
 
- Protected Attributes inherited from GxCollision::GxWorld
b32 _active
 処理を実行するかフラグ
 
u32 _listClassCount
 リストの個数
 
GxArrayClassBase ** _ppCollisionList
 AddされたCollisionクラスをスレッド毎に記憶するリスト
 
GxArrayClassBase _collisionList
 Collisionクラスを記憶するリスト
 
btCollisionConfiguration * _pBulletConfiguration
 BULLET当たり設定
 
btCollisionDispatcher * _pBulletDispatcher
 BULLET当たり判定用
 
btAxisSweep3 * _pBulletBroadphase
 BULLETブロードフェイズ処理用
 
btCollisionWorld * _pBulletWorld
 BULLETコリジョンワールド
 
btCollisionAlgorithmCreateFunc * _pBulletAlgorithmCreateFunction [COLLISION_ALGORITHM_NUM]
 BULLET判定用アルゴリズム
 
GxVector3 _worldAabbMin
 ワールドAABBのMin
 
GxVector3 _worldAabbMax
 ワールドAABBのMax
 
u16 _maxHandles
 当たり判定オブジェクト個数
 
u32 _btStackAllocatorSize
 Bulletのスタックアロケーターサイズ
 
u32 _btMaxPersistentManifoldPoolSize
 Bulletのマニフォールドの最大プールサイズ
 
u32 _btMaxCollisionAlgorithmPoolSize
 Bulletのコリジョンアルゴリズム最大プールサイズ
 

Detailed Description

イベントあたりワールドクラス

Member Function Documentation

◆ calculateHitObject()

void GxEventHit::GxWorld::calculateHitObject ( btPersistentManifold * pPersistentManifold)

ヒットしたオブジェクトのコールバック呼び出し

Parameters
pPersistentManifold[in] BULLET側のオブジェクト同士の当たり情報

◆ postBulletUpdate()

void GxEventHit::GxWorld::postBulletUpdate ( void )
overridevirtual

Bullet更新後処理

Note
コリジョンのデータをBulletから受け取る

Reimplemented from GxCollision::GxWorld.


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