コリジョンシステムクラス
More...
#include <GxSysCollision.h>
|
|
| GxSysCollision (void) |
| デフォルトコンストラクタ
|
|
| ~GxSysCollision (void) override |
| デストラクタ
|
|
b32 | initialize (const GxClassBase *pInitialInformation) override |
| 初期化
|
|
void | terminate (void) override |
| 終了処理
|
|
|
constexpr void | setOnRadian (f32 radian) |
| 上に乗れる角度の設定(0度が平坦)
|
|
constexpr f32 | getOnRadian (void) const |
| 上に乗れる角度の取得
|
|
GX_FORCE_INLINE b32 | isOnNormal (const GxVector3 &normal) const |
| 上に乗れる角度か判定
|
|
GX_FORCE_INLINE b32 | isCeilingNormal (const GxVector3 &normal) const |
| 天井の角度か判定
|
|
GX_FORCE_INLINE void | getPropertyWorld (void *const pValue, u32 index) |
| ワールド取得
|
|
constexpr void | setPropertyWorld (const void *const, u32) |
| ワールド設定
|
|
constexpr u32 | getPropertyWorldCount (void) const |
| ワールド数取得
|
|
constexpr void | setPropertyWorldCount (u32) |
| ワールド数設定
|
|
constexpr void | getPropertyOnRadian (void *const pValue) |
|
constexpr void | setPropertyOnRadian (const void *const pValue) |
|
| GxSysCollisionBase (void) |
| デフォルトコンストラクタ
|
|
| ~GxSysCollisionBase (void) override |
| デストラクタ
|
|
virtual GX_FORCE_INLINE void | setup (void) |
| update()前に毎フレーム呼ぶ準備
|
|
template<typename T > |
T * | getModule (void) const |
| モジュールを取得
|
|
| GxSysBase (void) |
| デフォルトコンストラクタ
|
|
| ~GxSysBase (void) override |
| デストラクタ
|
|
b32 | isLocked (void) |
| クリティカルセクションのロック状態を確認する
|
|
void | sleep (f32 time) |
| スリープ(スクリプト用)
|
|
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) |
| デフォルトオブジェクト判定
|
|
| SingletonBase (void) |
| コンストラクタ
|
|
| ~SingletonBase (void) |
| デストラクタ
|
|
|
|
static constexpr u32 | CHECK_FLAG_ALL = 0xffffffffUL |
| 全フラグ定数
|
|
static constexpr u32 | DEFAULT_MESH_MAX = GxMath::VALUE_8 |
| デフォルトメッシュ最大数
|
|
static constexpr u32 | DEFAULT_TASK_MAX = GxMath::VALUE_128 |
| デフォルトタスク最大数
|
|
static constexpr u32 | DEFAULT_OBJECT_MAX = GxMath::VALUE_8 |
| デフォルトオブジェクト最大数
|
|
static constexpr u32 | DEFAULT_EVENT_MAX = GxMath::VALUE_64 |
| デフォルトイベント最大数
|
|
static constexpr u32 | DEFAULT_MESH_CONTACT_MAX = GxMath::VALUE_16 |
| デフォルトメッシュコンタクト最大数
|
|
static constexpr u32 | DEFAULT_MESH_POLYGON_MAX = 0x4000 |
| デフォルトメッシュポリゴン最大数
|
|
|
void | update (void) override |
| 更新
|
|
b32 | addWorld (GxCollision::GxWorld *pWorld) |
| ワールドをリストへ追加
|
|
b32 | checkWorld (GxCollision::GxWorld *pCheckWorld) |
| 指定ワールドが存在するかどうかチェック
|
|
void | eraseWorld (GxCollision::GxWorld *pSearchWorld) |
| 指定ワールドをリストから削除
|
|
void | eraseAllWorld (void) |
| 全ワールドをリストから削除
|
|
GxCollision::GxWorld * | getWorld (u32 index) |
| 指定ワールドを取得
|
|
virtual GX_FORCE_INLINE GxBackgroundHit::GxWorld * | getBackgroundHitWorld (void) |
| 背景あたりワールド取得
|
|
virtual GX_FORCE_INLINE GxObjectHit::GxWorld * | getObjectHitWorld (void) |
| オブジェクトあたりワールド取得
|
|
virtual GX_FORCE_INLINE GxEventHit::GxWorld * | getEventHitWorld (void) |
| イベントあたりワールド取得
|
|
virtual GX_FORCE_INLINE GxAttackHit::GxWorld * | getAttackHitWorld (void) |
| 攻撃あたりワールド取得
|
|
b32 | resetAllBulletWorld (void) |
|
virtual GxCollision::GxObject * | createObjectFromResource (GxResCollisionObject *pRes, GxCollision *pCollision, GxUnitModelBase *pModel, const GxMatrixAffine *pMatrix, u32 index, u32 id) |
|
virtual GX_FORCE_INLINE u32 | getCollisionObjectResVersion (void) |
|
virtual b32 | checkFloor (GxCollision::GxRayResult &rayResult, const GxVector3 &position, const f32 marginLower=100.f, const f32 marginUpper=100.f, GxBackgroundHit::GxConditionInformationBackgroundHit *pCondition=nullptr) |
| 床チェック(TYPE_STATICな背景あたりとの下方レイチェック)
|
|
b32 | raycastBackgroundHit (const GxVector3 &position0, const GxVector3 &position1, GxVector3 *pHitPosition=nullptr, GxVector3 *pNormal=nullptr) override |
| 背景あたりとのレイチェック
|
|
static void * | allocateMemoryBullet (size_t size) |
| Bullet用メモリ確保
|
|
static void * | allocateMemoryAlignedBullet (size_t size, s32 alignment) |
| Bullet用アラインメント有りメモリ確保
|
|
static void | freeMemoryBullet (void *pAddress) |
| Bullet用メモリ解放
|
|
static b32 | checkSegmentVsObject (GxCollision::GxRayResult &rayResult, GxCollision::GxObject *pObject, const GxVector3 &position0, const GxVector3 &position1, u32 checkFlag=0xffffffff) |
| 指定したオブジェクトと線分のヒットチェック
|
|
static b32 | checkCapsuleVsObject (GxCollision::GxRayResult &rayResult, GxCollision::GxObject *pObject, const GxVector3 &position0, const GxVector3 &position1, f32 radius, u32 checkFlag=0xffffffff) |
| 指定したオブジェクトとカプセルのヒットチェック
|
|
◆ addWorld()
ワールドをリストへ追加
- Parameters
-
- Returns
- 成功ならtrue
◆ allocateMemoryAlignedBullet()
void * GxSysCollision::allocateMemoryAlignedBullet |
( |
size_t | size, |
|
|
s32 | alignment ) |
|
static |
Bullet用アラインメント有りメモリ確保
- Parameters
-
size | [in] サイズ |
alignment | [in] アラインメント |
- Returns
- 確保アドレス
◆ allocateMemoryBullet()
void * GxSysCollision::allocateMemoryBullet |
( |
size_t | size | ) |
|
|
static |
Bullet用メモリ確保
- Parameters
-
- Returns
- 確保アドレス
◆ checkCapsuleVsObject()
指定したオブジェクトとカプセルのヒットチェック
- Parameters
-
rayResult | [out] ヒット情報 |
pObject | [in] チェックするオブジェクト |
position0 | [in] カプセル開始点 |
position1 | [in] カプセル終了点 |
radius | [in] カプセル半径 |
checkFlag | [in] どの当たりに当たるか |
- Returns
- ヒットしたらtrue
◆ checkFloor()
床チェック(TYPE_STATICな背景あたりとの下方レイチェック)
- Parameters
-
rayResult | [out] ヒット情報 |
position | [in] チェック位置 |
marginLower | [in] -y方向のチェック範囲 |
marginUpper | [in] +y方向のチェック範囲 |
pCondition | [in] チェック条件(default = nullptr) |
- Returns
- チェック範囲内に床有りならtrue
◆ checkSegmentVsObject()
指定したオブジェクトと線分のヒットチェック
- Parameters
-
rayResult | [out] ヒット情報 |
pObject | [in] チェックするオブジェクト |
position0 | [in] 線分開始点 |
position1 | [in] 線分終了点 |
checkFlag | [in] どの当たりに当たるか |
- Returns
- ヒットしたらtrue
◆ checkWorld()
指定ワールドが存在するかどうかチェック
- Parameters
-
pCheckWorld | [in] チェックしたいワールド |
- Returns
- 存在するならtrue
◆ createObjectFromResource()
リソースからコリジョンデータを作成
- Note
- GxResCollisionObject::GxObjectData::_pExtraDataを 設定するためにはこの関数を継承して使うこと。 関連:createExtraData()
- Parameters
-
pRes | [in] コリジョンリソース |
pCollision | [in] コリジョンアドレス |
pModel | [in] セットするモデルユニットのアドレス |
pMatrix | [in] アタッチしたいマトリックスのアドレス(データを参照する場合はnullptr) |
index | [in] オブジェクトデータのインデックス |
id | [in] ID |
- Returns
- コリジョンオブジェクト
◆ eraseWorld()
指定ワールドをリストから削除
- Parameters
-
pSearchWorld | [in] リストから削除したいワールド |
◆ freeMemoryBullet()
void GxSysCollision::freeMemoryBullet |
( |
void * | pAddress | ) |
|
|
static |
◆ getCollisionObjectResVersion()
virtual GX_FORCE_INLINE u32 GxSysCollision::getCollisionObjectResVersion |
( |
void | | ) |
|
|
inlinevirtual |
コリジョンオブジェクトリソースバージョンを取得
- Note
- この関数をオーバーライドすることで、コリジョンオブジェクトリソースのバージョン下位8ビットを変更できます。 関連:GxResCollisionObject::getCurrentResVersion()
◆ getWorld()
指定ワールドを取得
- Parameters
-
u32 | index [in] 取得したいワールドのインデックス(インデックスはワールドを登録した順番) |
- Returns
- 登録されているワールドがあればそのアドレス、なければnullptr
◆ initialize()
b32 GxSysCollision::initialize |
( |
const GxClassBase * | pInitialInformation | ) |
|
|
overridevirtual |
初期化
- Parameters
-
pInitialInformation | [in] 初期化情報 |
- Returns
- 成功ならtrue
Reimplemented from GxSysBase.
◆ raycastBackgroundHit()
背景あたりとのレイチェック
- Parameters
-
position0 | [in] 線分開始点 |
position1 | [in] 線分終了点 |
pHitPosition | [out] ヒット位置 |
pNormal | [out] ヒットした箇所の法線 |
- Returns
- 当たったらtrue
Reimplemented from GxSysCollisionBase.
◆ resetAllBulletWorld()
b32 GxSysCollision::resetAllBulletWorld |
( |
void | | ) |
|
全ワールドのBulletワールドを削除・再生成
- Note
- Bulletのシステムに起因するメモリゴミを削除するのに利用できます。 全GxWorldに所属するGxCollision, GxObjectが「全て」削除されている必要があることに注意してください。
- Returns
- 成功ならtrue
◆ terminate()
void GxSysCollision::terminate |
( |
void | | ) |
|
|
overridevirtual |
◆ update()
void GxSysCollision::update |
( |
void | | ) |
|
|
overridevirtual |
The documentation for this class was generated from the following files:
- C:/Users/t-arai/Documents/workspace/orochi_package_windows/middleware/GxPhysics/src/GxSysCollision.h
- C:/Users/t-arai/Documents/workspace/orochi_package_windows/middleware/GxPhysics/src/GxSysCollision.cpp