ScummVM API documentation
hpl::iPhysicsJointScrew Class Referenceabstract
Inheritance diagram for hpl::iPhysicsJointScrew:
hpl::iPhysicsJoint hpl::iSaveObject hpl::iPhysicsJointNewton< iPhysicsJointScrew > hpl::cPhysicsJointScrewNewton

Public Member Functions

 iPhysicsJointScrew (const tString &asName, iPhysicsBody *apParentBody, iPhysicsBody *apChildBody, iPhysicsWorld *apWorld, const cVector3f &avPivotPoint)
 
virtual void SetMaxDistance (float afX)=0
 
virtual void SetMinDistance (float afX)=0
 
virtual float GetMaxDistance ()=0
 
virtual float GetMinDistance ()=0
 
ePhysicsJointType GetType ()
 
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::iPhysicsJoint
 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 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 ()
 
- Public Member Functions inherited from hpl::iSaveObject
int GetSaveObjectId ()
 
void SetIsSaved (bool abX)
 
bool IsSaved ()
 

Protected Attributes

float mfMaxDistance
 
float mfMinDistance
 
cVector3f mvPin
 
- Protected Attributes inherited from hpl::iPhysicsJoint
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
 

Additional Inherited Members

- Protected Member Functions inherited from hpl::iPhysicsJoint
void OnMaxLimit ()
 
void OnMinLimit ()
 
void OnNoLimit ()
 
void CalcSoundFreq (float afSpeed, float *apFreq, float *apVol)
 
void LimitEffect (cJointLimitEffect *pEffect)
 
- Static Protected Member Functions inherited from hpl::iPhysicsJoint
static void CheckLimitAutoSleep (iPhysicsJoint *apJoint, const float afMin, const float afMax, const float afDist)
 

Member Function Documentation

◆ SetMaxDistance()

virtual void hpl::iPhysicsJointScrew::SetMaxDistance ( float  afX)
pure virtual

Set the maximum distance the bodies can be from each other, relative to the start dist between them This is true if pin points towards the child. In other words, distance increases as the distance between start pivot and current pivot increases in the opposite direction of the pin.

Implemented in hpl::cPhysicsJointScrewNewton.

◆ CreateSaveData()

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

Creates the SaveData that this class uses.

Reimplemented from hpl::iPhysicsJoint.

◆ SaveToSaveData()

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

Save it's data to a SaveData

Reimplemented from hpl::iPhysicsJoint.

◆ LoadFromSaveData()

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

Load it's data from a SaveData

Reimplemented from hpl::iPhysicsJoint.

◆ SaveDataSetup()

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

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

Reimplemented from hpl::iPhysicsJoint.


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