OROCHI
 
Loading...
Searching...
No Matches
GxDynamics::GxConstraint Class Reference

GxDynamics 拘束クラス More...

#include <GxDynamics.h>

Inheritance diagram for GxDynamics::GxConstraint:
Collaboration diagram for GxDynamics::GxConstraint:

Public Member Functions

初期化
 GxConstraint (void)
 デフォルトコンストラクタ
 
 ~GxConstraint (void) override
 デストラクタ
 
アクセサ
constexpr TYPE getType (void) const
 拘束タイプの取得
 
constexpr GxDynamics::GxWorldgetRegisterWorld (void) const
 登録したワールドのアドレスを取得
 
constexpr void setRegisterWorld (GxDynamics::GxWorld *pWorld)
 登録したワールドのアドレスをセット
 
void setActive (b32 active)
 アクティブ設定
 
GX_FORCE_INLINE b32 isActive (void) const
 アクティブ取得
 
constexpr u32 getActiveFlagAll (void) const
 全アクティブフラグ取得
 
GX_FORCE_INLINE b32 getActiveFlag (u32 flag) const
 アクティブフラグ取得
 
GX_FORCE_INLINE void setActiveFlag (u32 flag, b32 value)
 アクティブフラグ設定
 
virtual GX_FORCE_INLINE GxMatrixAffine getMatrix (void)
 マトリクスを取得
 
constexpr void setManagementClass (GxDynamics *pManagementClass)
 管理クラスのセット
 
constexpr GxDynamicsgetManagementClass (void) const
 管理クラスの取得
 
virtual GX_FORCE_INLINE void setBreakParam (b32, f32, f32)
 壊れパラメタ設定
 

Protected Attributes

メンバ変数
GxFlag32Bit _activeFlag
 アクティブ設定用フラグ
 
TYPE _type
 拘束タイプ
 
GxDynamics::GxWorld_pRegisterWorld
 登録先ワールド
 
GxDynamics_pManagementClass
 自分を管理しているクラス
 

定義

enum  {
  ACTIVE_FLAG_ACTIVE = (1UL << 0) , ACTIVE_FLAG_REGISTERED = (1UL << 1) , ACTIVE_FLAG_REQUEST_REGISTER = (1UL << 2) , ACTIVE_FLAG_REQUEST_BAN = (1UL << 3) ,
  ACTIVE_FLAG_REQUEST_LINKED_BODIES = (1UL << 4) , ACTIVE_FLAG_REQUEST_DELETE = (1UL << 5)
}
 アクティブフラグ定義 More...
 
enum class  TYPE {
  ERROR_ = 0 , SPHERICAL , REVOLUTE , CONE_TWIST ,
  PRISMATIC , POINT_IN_PLANE , POINT_ON_LINE , PULLEY ,
  _6DOF , FIXED , MAX
}
 拘束タイプ More...
 
 GX_RTTI_CLASS (GxDynamics::GxConstraint, gx::core::GxClassBase)
 
 GX_OPERATOR_NEW_DELETE (GxAllocatorList::ALLOCATOR_TYPE::PHYSICS)
 
 GX_PROHIBIT_CLASS_BASE (GxConstraint)
 

操作

virtual GX_FORCE_INLINE b32 createConstraintSpherical (b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &, b32)
 
virtual GX_FORCE_INLINE b32 createConstraintRevolute (b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxMatrixAffine &, const GxMatrixAffine &, b32)
 
virtual GX_FORCE_INLINE b32 createConstraintRevolute (b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, const GxVector3 &, b32)
 回転軸タイプの拘束作成(軸指定)
 
virtual GX_FORCE_INLINE b32 createConstraintConeTwist (b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxMatrixAffine &, const GxMatrixAffine &, const GxParamConeTwist &)
 ConeTwistタイプの拘束作成
 
virtual GX_FORCE_INLINE b32 createConstraintFixed (b32, GxDynamics::GxObject *, GxDynamics::GxObject *, const GxVector3 &, const GxVector3 &)
 固定タイプの拘束作成
 
virtual void prepareCheck (void)
 当たり判定チェック前準備
 
virtual GX_FORCE_INLINE void setParameterRevolute (const f32, const f32)
 回転軸タイプのパラメタを設定
 
virtual void initialize (b32 active, TYPE type, b32 disableCollisions)
 拘束情報の初期化
 
constexpr void reset (void)
 状態リセット
 

Detailed Description

GxDynamics 拘束クラス

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

アクティブフラグ定義

Enumerator
ACTIVE_FLAG_ACTIVE 

オブジェクトがアクティブ状態かどうか

ACTIVE_FLAG_REGISTERED 

登録されているかどうか

ACTIVE_FLAG_REQUEST_REGISTER 

アクティブフラグON登録待ち

ACTIVE_FLAG_REQUEST_BAN 

アクティブフラグOFF登録待ち

ACTIVE_FLAG_REQUEST_LINKED_BODIES 

剛体同士をつなげるかどうか

ACTIVE_FLAG_REQUEST_DELETE 

オブジェクト削除待ち

◆ TYPE

enum class GxDynamics::GxConstraint::TYPE
strong

拘束タイプ

Enumerator
ERROR_ 

未定義

SPHERICAL 

ボールソケットタイプ(回転運動のみ可能)

REVOLUTE 

ヒンジタイプ(1軸周りの回転のみ可能)

CONE_TWIST 

コーンツイストタイプの拘束(可動範囲を指定できるボールソケット)

PRISMATIC 

1方向直線運動のみ可能なタイプ

POINT_IN_PLANE 

2方向直線運動+自由回転

POINT_ON_LINE 

1方向直線運動+自由回転

PULLEY 

滑車間のロープのような拘束

_6DOF 

3軸の回転および平行移動を自由に設定できるフリーな拘束

FIXED 

固定用拘束

MAX 

定義数

Member Function Documentation

◆ createConstraintRevolute()

virtual GX_FORCE_INLINE b32 GxDynamics::GxConstraint::createConstraintRevolute ( b32 ,
GxDynamics::GxObject * ,
GxDynamics::GxObject * ,
const GxMatrixAffine & ,
const GxMatrixAffine & ,
b32  )
inlinevirtual

回転軸タイプの拘束作成

Note
2つのオブジェクトを自由回転する軸でつなぐ、ヒンジのような拘束です。

◆ createConstraintSpherical()

virtual GX_FORCE_INLINE b32 GxDynamics::GxConstraint::createConstraintSpherical ( b32 ,
GxDynamics::GxObject * ,
GxDynamics::GxObject * ,
const GxVector3 & ,
const GxVector3 & ,
b32  )
inlinevirtual

球タイプの拘束作成(固定点指定)

Note
2つのオブジェクトを自由回転する点でつなぐ、ボールソケットのような拘束です。

◆ initialize()

void GxDynamics::GxConstraint::initialize ( b32 active,
TYPE type,
b32 disableCollisions )
protectedvirtual

拘束情報の初期化

Parameters
active[in] アクティブにするかどうか
type[in] 設定するタイプ
disableCollisions[in] 剛体間のコリジョンを無視するか
Here is the call graph for this function:

◆ setActive()

void GxDynamics::GxConstraint::setActive ( b32 active)

アクティブ設定

Parameters
active[in] アクティブならtrue

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