ScummVM API documentation
hpl::iPhysicsJoint Class Referenceabstract
Inheritance diagram for hpl::iPhysicsJoint:
hpl::iSaveObject hpl::iPhysicsJointBall hpl::iPhysicsJointHinge hpl::iPhysicsJointScrew hpl::iPhysicsJointSlider hpl::iPhysicsJointNewton< iPhysicsJointBall > hpl::iPhysicsJointNewton< iPhysicsJointHinge > hpl::iPhysicsJointNewton< iPhysicsJointScrew > hpl::iPhysicsJointNewton< iPhysicsJointSlider > hpl::cPhysicsJointBallNewton hpl::cPhysicsJointHingeNewton hpl::cPhysicsJointScrewNewton hpl::cPhysicsJointSliderNewton

Public Member Functions

 iPhysicsJoint (const tString &asName, iPhysicsBody *apParentBody, iPhysicsBody *apChildBody, iPhysicsWorld *apWorld, const cVector3f &avPivotPoint)
 
const tStringGetName ()
 
iPhysicsBodyGetParentBody ()
 
iPhysicsBodyGetChildBody ()
 
void RemoveBody (iPhysicsBody *apBody)
 
cVector3f GetPivotPoint ()
 
cVector3f GetPinDir ()
 
virtual ePhysicsJointType GetType ()=0
 
virtual void SetCollideBodies (bool abX)=0
 
virtual bool GetCollideBodies ()=0
 
virtual void SetStiffness (float afX)=0
 
virtual float GetStiffness ()=0
 
virtual cVector3f GetVelocity ()=0
 
virtual cVector3f GetAngularVelocity ()=0
 
virtual cVector3f GetForce ()=0
 
virtual float GetDistance ()=0
 
virtual float GetAngle ()=0
 
cJointLimitEffectGetMaxLimit ()
 
cJointLimitEffectGetMinLimit ()
 
void SetMoveSound (tString &asName)
 
void SetMoveSpeedType (ePhysicsJointSpeed aType)
 
void SetMinMoveSpeed (float afX)
 
void SetMinMoveFreq (float afX)
 
void SetMinMoveFreqSpeed (float afX)
 
void SetMinMoveVolume (float afX)
 
void SetMaxMoveFreq (float afX)
 
void SetMaxMoveVolume (float afX)
 
void SetMaxMoveFreqSpeed (float afX)
 
void SetMiddleMoveSpeed (float afX)
 
void SetMiddleMoveVolume (float afX)
 
void SetCallback (iPhysicsJointCallback *apCallback, bool abAutoDelete)
 
iPhysicsJointCallbackGetCallback ()
 
bool CheckBreakage ()
 
void SetBreakable (bool abX)
 
bool IsBreakable ()
 
void SetBreakForce (float afForce)
 
float GetBreakForce ()
 
void SetBreakSound (const tString &asSound)
 
void SetLimitAutoSleep (bool abX)
 
void SetLimitAutoSleepDist (float afX)
 
void SetLimitAutoSleepNumSteps (int alX)
 
bool GetLimitAutoSleep ()
 
float GetLimitAutoSleepDist ()
 
int GetLimitAutoSleepNumSteps ()
 
void SetStickyMinDistance (float afX)
 
void SetStickyMaxDistance (float afX)
 
float GetStickyMinDistance ()
 
float GetStickyMaxDistance ()
 
void Break ()
 
bool IsBroken ()
 
void SetUserData (void *apUserData)
 
void AddController (iPhysicsController *apController)
 
iPhysicsControllerGetController (const tString &asName)
 
bool ChangeController (const tString &asName)
 
cPhysicsControllerIterator GetControllerIterator ()
 
void SetAllControllersPaused (bool abX)
 
void OnPhysicsUpdate ()
 
void SetSound (cSoundEntity *apSound)
 
cSoundEntityGetSound ()
 
virtual iSaveDataCreateSaveData ()
 
virtual void SaveToSaveData (iSaveData *apSaveData)
 
virtual void LoadFromSaveData (iSaveData *apSaveData)
 
virtual void SaveDataSetup (cSaveObjectHandler *apSaveObjectHandler, cGame *apGame)
 
- Public Member Functions inherited from hpl::iSaveObject
int GetSaveObjectId ()
 
void SetIsSaved (bool abX)
 
bool IsSaved ()
 

Protected Member Functions

void OnMaxLimit ()
 
void OnMinLimit ()
 
void OnNoLimit ()
 
void CalcSoundFreq (float afSpeed, float *apFreq, float *apVol)
 
void LimitEffect (cJointLimitEffect *pEffect)
 

Static Protected Member Functions

static void CheckLimitAutoSleep (iPhysicsJoint *apJoint, const float afMin, const float afMax, const float afDist)
 

Protected Attributes

tString msName
 
iPhysicsBodympParentBody
 
iPhysicsBodympChildBody
 
iPhysicsWorldmpWorld
 
cMatrixf m_mtxParentBodySetup
 
cMatrixf m_mtxChildBodySetup
 
cVector3f mvPinDir
 
cVector3f mvPivotPoint
 
cVector3f mvStartPivotPoint
 
cVector3f mvLocalPivot
 
float mfStickyMinDistance
 
float mfStickyMaxDistance
 
tPhysicsControllerMap m_mapControllers
 
cJointLimitEffect mMaxLimit
 
cJointLimitEffect mMinLimit
 
int mlSpeedCount
 
cMatrixf m_mtxPrevChild
 
cMatrixf m_mtxPrevParent
 
tString msMoveSound
 
float mfMinMoveSpeed
 
float mfMinMoveFreq
 
float mfMinMoveFreqSpeed
 
float mfMinMoveVolume
 
float mfMaxMoveFreq
 
float mfMaxMoveFreqSpeed
 
float mfMaxMoveVolume
 
float mfMiddleMoveSpeed
 
float mfMiddleMoveVolume
 
ePhysicsJointSpeed mMoveSpeedType
 
bool mbBreakable
 
float mfBreakForce
 
tString msBreakSound
 
bool mbBroken
 
bool mbLimitAutoSleep
 
float mfLimitAutoSleepDist
 
int mlLimitAutoSleepNumSteps
 
cSoundEntitympSound
 
bool mbHasCollided
 
iPhysicsJointCallbackmpCallback
 
bool mbAutoDeleteCallback
 
int mlLimitStepCount
 
void * mpUserData
 
- Protected Attributes inherited from hpl::iSaveObject
iSaveDatampSaveData
 

Member Function Documentation

◆ CreateSaveData()

virtual iSaveData* hpl::iPhysicsJoint::CreateSaveData ( )
virtual

Creates the SaveData that this class uses.

Implements hpl::iSaveObject.

Reimplemented in hpl::iPhysicsJointSlider, hpl::iPhysicsJointScrew, hpl::iPhysicsJointBall, and hpl::iPhysicsJointHinge.

◆ SaveToSaveData()

virtual void hpl::iPhysicsJoint::SaveToSaveData ( iSaveData apSaveData)
virtual

Save it's data to a SaveData

Reimplemented from hpl::iSaveObject.

Reimplemented in hpl::iPhysicsJointSlider, hpl::iPhysicsJointScrew, hpl::iPhysicsJointBall, and hpl::iPhysicsJointHinge.

◆ LoadFromSaveData()

virtual void hpl::iPhysicsJoint::LoadFromSaveData ( iSaveData apSaveData)
virtual

Load it's data from a SaveData

Reimplemented from hpl::iSaveObject.

Reimplemented in hpl::iPhysicsJointSlider, hpl::iPhysicsJointScrew, hpl::iPhysicsJointBall, and hpl::iPhysicsJointHinge.

◆ SaveDataSetup()

virtual void hpl::iPhysicsJoint::SaveDataSetup ( cSaveObjectHandler apSaveObjectHandler,
cGame apGame 
)
virtual

After all objects have been created, this function is called to enable setup.

Reimplemented from hpl::iSaveObject.

Reimplemented in hpl::iPhysicsJointSlider, hpl::iPhysicsJointScrew, hpl::iPhysicsJointBall, and hpl::iPhysicsJointHinge.


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