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

背景あたりオブジェクトクラス More...

#include <GxAdjustHit.h>

Inheritance diagram for GxAdjustHit::GxObject:
Collaboration diagram for GxAdjustHit::GxObject:

Public Member Functions

初期化
 GxObject (void)
 デフォルトコンストラクタ
 
 ~GxObject (void) override
 デストラクタ
 
void initialize (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1) override
 初期化
 
アクセサ
constexpr u32 getAttribute (void) const
 属性取得
 
constexpr void setAttribute (u32 attribute)
 属性設定
 
constexpr void onAttribute (u32 attribute)
 属性有効化
 
constexpr void offAttribute (u32 attribute)
 属性無効化
 
GX_FORCE_INLINE const GxVector3getPlaneNormal (void) const
 乗っている面の法線の取得
 
GX_FORCE_INLINE void setPlaneNormal (const GxVector3 &normal)
 乗っている面の法線の設定
 
GX_FORCE_INLINE const GxVector3getAdjustVector (void) const
 補正方向の取得
 
GX_FORCE_INLINE void setAdjustVector (const GxVector3 &vector)
 補正方向の設定
 
constexpr f32 getWeight (void) const
 重さの取得
 
constexpr void setWeight (f32 weight)
 重さの設定
 
- 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 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)
 デフォルトオブジェクト判定
 

定義

enum class  SHIFT {
  POSITION_OLD_CHECK = 0 , DISABLE_POSITION_OLD_CHECK_ONCE , ADJUST_HIT_DUMMY_0 , ADJUST_HIT_DUMMY_1 ,
  ADJUST_HIT_MAX
}
 属性定義用シフト量定義 More...
 
enum  ATTRIBUTE { ATTRIBUTE_POSITION_OLD_CHECK = (1L << static_cast<s32>(SHIFT::POSITION_OLD_CHECK)) , ATTRIBUTE_DISABLE_POSITION_OLD_CHECK_ONCE = (1L << static_cast<s32>(SHIFT::DISABLE_POSITION_OLD_CHECK_ONCE)) }
 

操作

void initializeActiveOn (void) override
 アクティブON時のパラメータ初期化
 
void initializeActiveOff (void) override
 アクティブOFF時のパラメータ初期化
 
void initializeUpdate (void) override
 更新時のパラメータ初期化(1フレームに複数回呼ばれる可能性もある)
 
void initializeCheck (void)
 チェック時のパラメータ初期化(1フレームに1回)
 
b32 isNeedCheck (GxCollision::GxObject *pCollisionObject) override
 お互いの当たり判定が必要か判定
 
b32 isAdjustEnd (void)
 補正が終了したか判定
 
void checkOldPosition (GxRayResult &result, const GxVector3 &moveVector, const GxVector3 &offset, GxCollision::GxConditionInformation *pCondition)
 現在位置と前回位置の貫通判定
 

Additional Inherited Members

- 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...
 
- 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)
 アクティブフラグ更新
 
GX_FORCE_INLINE void updateUnitPointer (void)
 ユニットポインタの更新
 
- Protected Attributes inherited from GxCollision::GxObject
btCollisionShape * _pBtShape
 BULLET用形状
 

Detailed Description

背景あたりオブジェクトクラス

Member Enumeration Documentation

◆ ATTRIBUTE

属性定義

Note
リソース保存されているので、値変更に注意
Enumerator
ATTRIBUTE_POSITION_OLD_CHECK 

OLD位置とPOS位置でラインチェックを行う

ATTRIBUTE_DISABLE_POSITION_OLD_CHECK_ONCE 

一度だけOLD->POSチェックをしない(ツールでは設定できない)

◆ SHIFT

enum class GxAdjustHit::GxObject::SHIFT
strongprotected

属性定義用シフト量定義

Enumerator
POSITION_OLD_CHECK 

前回の座標チェック

DISABLE_POSITION_OLD_CHECK_ONCE 

前回の座標チェック無効

ADJUST_HIT_DUMMY_0 

補正当たりダミー

ADJUST_HIT_DUMMY_1 

補正当たりダミー

ADJUST_HIT_MAX 

補正当たり最大数

Member Function Documentation

◆ checkOldPosition()

void GxAdjustHit::GxObject::checkOldPosition ( GxRayResult & result,
const GxVector3 & moveVector,
const GxVector3 & offset,
GxCollision::GxConditionInformation * pCondition )

現在位置と前回位置の貫通判定

Parameters
result[out] チェック結果格納先
moveVector[in] 移動量
offset[in] オフセット(チェックは『GxObjectが付いているマトリクス位置+offset』~『マトリクス位置+offset+moveVec』間で行われる)
pCondition[in] チェック条件
Here is the call graph for this function:

◆ initialize()

void GxAdjustHit::GxObject::initialize ( b32 active,
u32 id,
const GxMatrixAffine * pMatrix0,
const GxVector3 & offset0,
const GxMatrixAffine * pMatrix1,
const GxVector3 & offset1 )
overridevirtual

初期化

Parameters
active[in] アクティブにするかどうか
id[in] 当たりID
pMatrix0[in] 当たりを引っ付けるマトリクス0
offset0[in] 当たりを引っ付けるオフセット0
pMatrix1[in] 当たりを引っ付けるマトリクス1
offset1[in] 当たりを引っ付けるオフセット1

Reimplemented from GxCollision::GxObject.

◆ initializeActiveOff()

void GxAdjustHit::GxObject::initializeActiveOff ( void )
overridevirtual

アクティブOFF時のパラメータ初期化

Reimplemented from GxCollision::GxObject.

◆ initializeActiveOn()

void GxAdjustHit::GxObject::initializeActiveOn ( void )
overridevirtual

アクティブON時のパラメータ初期化

Reimplemented from GxCollision::GxObject.

◆ initializeUpdate()

void GxAdjustHit::GxObject::initializeUpdate ( void )
overridevirtual

更新時のパラメータ初期化(1フレームに複数回呼ばれる可能性もある)

Reimplemented from GxCollision::GxObject.

◆ isAdjustEnd()

b32 GxAdjustHit::GxObject::isAdjustEnd ( void )

補正が終了したか判定

Returns
補正は終了したならtrue
Here is the call graph for this function:

◆ isNeedCheck()

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

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

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

Reimplemented from GxCollision::GxObject.

Here is the call graph for this function:

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