コリジョン基本クラス More...
#include <GxCollision.h>
Classes | |
class | GxConditionInformation |
struct | GxConvexCallback |
class | GxObject |
Collision基本オブジェクトクラス More... | |
struct | GxRayCallback |
struct | GxRayResult |
レイ判定情報 More... | |
class | GxWorld |
Collision基本ワールドクラス More... | |
Public Member Functions | |
初期化 | |
GxCollision (void) | |
デフォルトコンストラクタ | |
~GxCollision (void) override | |
デストラクタ | |
![]() | |
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) |
デフォルトオブジェクト判定 | |
定義 | |
enum class | COLLISION_SHAPE { ERROR_ = -1 , SPHERE = 0 , BOX , CYLINDER , MULTISPHERE , TRIMESH , PLANE , RAY , BEAM , CAPSULE , CONVEX , COMPOUND , WHEEL , MAX } |
コリジョン形状 More... | |
typedef void(GxClassBaseRoot::*) | COLLISION_CALLBACK(void) |
コールバック定義 | |
static const f32 | BULLET_MARGIN = CONVEX_DISTANCE_MARGIN |
Bulletのマージン値 | |
メンバ変数 | |
GxWorld * | _pRegisterWorld |
親ワールド | |
COLLISION_CALLBACK | _pCallback |
補正用コールバック | |
GxArrayClassBase | _listObject |
オブジェクトのリスト | |
操作 | |
void | clearList (void) |
全オブジェクトをリストから削除 | |
virtual GxObject * | allocObject (void) |
オブジェクトのメモリ確保 | |
virtual GxObject * | createSphere (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeSphere &sphere) |
球の作成 | |
virtual GxObject * | createBox (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeBox &box) |
ボックスの作成 | |
virtual GxObject * | createMultisphere (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1, const GxShapeMultisphere &multisphere) |
マルチ球の作成 | |
virtual GxObject * | createCylinder (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCylinder &cylinder) |
円柱の作成 | |
virtual GxObject * | createCapsule (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCapsule &capsule) |
カプセルの作成 | |
virtual GxObject * | createMesh (u32 index, b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btTriangleIndexVertexArray *pVertex, b32 isCompress=true, GxVector3 *pAabbMin=nullptr, GxVector3 *pAabbMax=nullptr) |
背景メッシュの作成 | |
virtual GxObject * | createMesh (u32 index, b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btBvhTriangleMeshShape *pTrimeshShape) |
背景メッシュの作成 | |
GxObject * | getObject (u32 index) |
指定インデックスのオブジェクトを取得 | |
virtual void | deleteObject (GxObject *pObject) |
オブジェクトを削除する | |
virtual void | detachObject (GxObject *pObject) |
オブジェクトをリストから切り離す | |
virtual void | initialize (GxWorld *pRegistWorld, GxUnitBase *pUnit, GxCollision::COLLISION_CALLBACK pCallback, u32 threadIndex) |
初期設定(スレッドセーフ) | |
virtual void | prepareCheck (void) |
当たり判定チェック前準備 | |
virtual void | update (void) |
位置の更新 | |
constexpr GxWorld * | getWorld (void) const |
登録ワールドの取得 | |
constexpr GxUnitBase * | getUnit (void) const |
登録ユニットの取得 | |
virtual GX_FORCE_INLINE void | initializeActiveOn (void) |
アクティブON時のパラメタ初期化 | |
virtual GX_FORCE_INLINE void | initializeActiveOff (void) |
アクティブOFF時のパラメタ初期化 | |
virtual GX_FORCE_INLINE void | initializeUpdate (void) |
更新前のパラメタ初期化 | |
virtual void | executePostCheckCallback (void) |
チェック後コールバック関数の呼び出し | |
constexpr void | setWorldNull (void) |
登録ワールドの削除 | |
virtual GxObject * | addObject (void) |
オブジェクトの追加 | |
アクセサ | |
GX_FORCE_INLINE void | setHitCallback (GxCollision::COLLISION_CALLBACK pCallback) |
コールバックを設定 | |
GX_FORCE_INLINE b32 | isActive (void) const |
アクティブ判定 | |
void | setActive (b32 active) |
アクティブ状態の設定 | |
constexpr u32 | getObjectCount (void) const |
登録オブジェクトの個数を取得 | |
GX_FORCE_INLINE void | getPropertyActive (void *const pValue) |
アクティブを取得 | |
GX_FORCE_INLINE void | setPropertyActive (const void *const pValue) |
アクティブを設定 | |
GX_FORCE_INLINE void | getPropertyObject (void *const pValue, u32 index) |
当たりオブジェクトを取得 | |
constexpr void | setPropertyObject (const void *const, u32) |
当たりオブジェクトを設定 | |
constexpr u32 | getPropertyObjectCount (void) const |
当たりオブジェクト数を取得 | |
constexpr void | setPropertyObjectCount (u32) |
当たりオブジェクト数を設定 | |
GX_FORCE_INLINE void | setOffsetAdjustVector (const GxVector3 &offset) |
押返しベクトルのオフセットを設定 | |
GX_FORCE_INLINE GxVector3 | getOffsetAdjustVector (void) |
押返しベクトルのオフセットを取得 | |
Additional Inherited Members | |
![]() | |
static GX_FORCE_INLINE GxRtti & | __getStaticRtti (void) |
Rttiの取得 | |
コリジョン基本クラス
|
strong |
|
protectedvirtual |
オブジェクトの追加
Reimplemented in GxAdjustHit, GxAttackHit, and GxEventHit.
|
virtual |
オブジェクトのメモリ確保
Reimplemented in GxAdjustHit, GxAttackHit, GxBackgroundHit, GxEventHit, and GxObjectHit.
|
virtual |
ボックスの作成
active | [in] 登録後すぐアクティブにするかどうか |
id | [in] 当たりID |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
box | [in] ボックス形状 |
|
virtual |
カプセルの作成
active | [in] 登録後すぐアクティブにするかどうか |
id | [in] 当たりID |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
capsule | [in] カプセル形状 |
|
virtual |
円柱の作成
active | [in] 登録後すぐアクティブにするかどうか |
id | [in] 当たりID |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
cylinder | [in] 円柱形状 |
|
virtual |
背景メッシュの作成
index | [in] メッシュインデックス |
active | [in] 登録後すぐアクティブにするかどうか |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
trimesh | [in] 三角形メッシュ形状 |
pBtTrimeshShape | [in] 外部で作成したBULLETのメッシュシェイプ |
|
virtual |
背景メッシュの作成
index | [in] メッシュインデックス |
active | [in] 登録後すぐアクティブにするかどうか |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
trimesh | [in] メッシュ |
pVertex | [in] メッシュのデータ |
isCompress | [in] データを圧縮するかどうか(default = true) |
pAabbMin | [in] メッシュを囲むAABBボックスの最小値 |
pAabbMax | [in] メッシュを囲むAABBボックスの最大値 |
|
virtual |
マルチ球の作成
active | [in] 登録後すぐアクティブにするかどうか |
id | [in] 当たりID |
pMatrix0 | [in] 引っ付けるマトリクス0番 |
offset0 | [in] マトリクス0番からのオフセット |
pMatrix1 | [in] 引っ付けるマトリクス1番 |
offset1 | [in] マトリクス1番からのオフセット |
multisphere | [in] マルチ球形状 |
|
virtual |
球の作成
active | [in] 登録後すぐアクティブにするかどうか |
id | [in] 当たりID |
pMatrix | [in] 引っ付けるマトリクス |
offset | [in] マトリクスからのオフセット |
sphere | [in] 球の形状 |
|
virtual |
オブジェクトを削除する
pObject | [in] オブジェクト |
|
virtual |
オブジェクトをリストから切り離す
pObject | [in] オブジェクト |
|
virtual |
チェック後コールバック関数の呼び出し
Reimplemented in GxBackgroundHit.
GxCollision::GxObject * GxCollision::getObject | ( | u32 | index | ) |
指定インデックスのオブジェクトを取得
index | [in] オブジェクトのインデックス |
|
virtual |
初期設定(スレッドセーフ)
pRegisterWorld | [in] 登録先ワールド |
pUnit | [in] 使用するユニット |
pCallback | [in] 呼び出すコールバック関数 |
threadIndex | [in] スレッドインデックス |
Reimplemented in GxEventHit.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
void GxCollision::setActive | ( | b32 | active | ) |
アクティブ状態の設定
active | [in] trueで有効化、false時はisNeedCheck()ではじく |
|
virtual |