ezEngine Release 25.08
Loading...
Searching...
No Matches
ezJoltWorldModule Class Reference
Inheritance diagram for ezJoltWorldModule:

Public Member Functions

 ezJoltWorldModule (ezWorld *pWorld)
 
virtual void Initialize () override
 This method is called after the constructor. A derived type can override this method to do initialization work. Typically this is the method where updates function are registered.
 
virtual void Deinitialize () override
 This method is called before the destructor. A derived type can override this method to do deinitialization work.
 
virtual void OnSimulationStarted () override
 This method is called at the start of the next world update when the world is simulated. This method will be called after the initialization method.
 
JPH::PhysicsSystem * GetJoltSystem ()
 
const JPH::PhysicsSystem * GetJoltSystem () const
 
JPH::BodyInterface & GetBodyInterface ()
 
ezUInt32 CreateObjectFilterID ()
 
void DeleteObjectFilterID (ezUInt32 &ref_uiObjectFilterID)
 
ezUInt32 AllocateUserData (ezJoltUserData *&out_pUserData)
 
void DeallocateUserData (ezUInt32 &ref_uiUserDataId)
 
const ezJoltUserDataGetUserData (ezUInt32 uiUserDataId) const
 
void SetGravity (const ezVec3 &vObjectGravity, const ezVec3 &vCharacterGravity)
 
virtual ezVec3 GetGravity () const override
 
ezVec3 GetCharacterGravity () const
 
void AddImpulse (ezUInt32 uiBodyID, const ezVec3 &vImpulse, const ezVec3 &vGlobalPosition)
 Queues an impulse to be applied on the given body as soon as that body is added to the Jolt scene.
 
void AddImpulse (ezUInt32 uiBodyID, const ezVec3 &vImpulse)
 Queues an impulse to be applied on the given body as soon as that body is added to the Jolt scene.
 
void AddTorque (ezUInt32 uiBodyID, const ezVec3 &vImpulse)
 Queues an angular impulse to be applied on the given body as soon as that body is added to the Jolt scene.
 
ezJoltForceId AddOrUpdateForce (ezJoltForceId forceId, ezUInt32 uiBodyID, ezTime duration, const ezVec3 &vForce)
 Creates a force that acts upon the given Jolt body for a limited time.
 
void ClearForce (ezJoltForceId id)
 Removes a previously added force. See AddOrUpdateForce().
 
virtual ezUInt32 GetCollisionLayerByName (ezStringView sName) const override
 Searches for a collision layer with the given name and returns its index.
 
virtual ezUInt8 GetWeightCategoryByName (ezStringView sName) const override
 Searches for a weight category with the given name and returns its key.
 
virtual ezUInt8 GetImpulseTypeByName (ezStringView sName) const override
 Searches for an impulse type with the given name and returns its key.
 
virtual bool Raycast (ezPhysicsCastResult &out_result, const ezVec3 &vStart, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params, ezPhysicsHitCollection collection=ezPhysicsHitCollection::Closest) const override
 
virtual bool RaycastAll (ezPhysicsCastResultArray &out_results, const ezVec3 &vStart, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params) const override
 
virtual bool SweepTestSphere (ezPhysicsCastResult &out_result, float fSphereRadius, const ezVec3 &vStart, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params, ezPhysicsHitCollection collection=ezPhysicsHitCollection::Closest) const override
 
virtual bool SweepTestBox (ezPhysicsCastResult &out_result, const ezVec3 &vBoxExtents, const ezTransform &transform, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params, ezPhysicsHitCollection collection=ezPhysicsHitCollection::Closest) const override
 
virtual bool SweepTestCapsule (ezPhysicsCastResult &out_result, float fCapsuleRadius, float fCapsuleHeight, const ezTransform &transform, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params, ezPhysicsHitCollection collection=ezPhysicsHitCollection::Closest) const override
 
virtual bool SweepTestCylinder (ezPhysicsCastResult &out_result, float fCylinderRadius, float fCylinderHeight, const ezTransform &transform, const ezVec3 &vDir, float fDistance, const ezPhysicsQueryParameters &params, ezPhysicsHitCollection collection=ezPhysicsHitCollection::Closest) const override
 
virtual bool OverlapTestSphere (float fSphereRadius, const ezVec3 &vPosition, const ezPhysicsQueryParameters &params) const override
 
virtual bool OverlapTestBox (const ezVec3 &vBoxExtents, const ezVec3 &vPosition, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual bool OverlapTestCapsule (float fCapsuleRadius, float fCapsuleHeight, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual bool OverlapTestCylinder (float fCylinderRadius, float fCylinderHeight, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual void QueryShapesInSphere (ezPhysicsOverlapResultArray &out_results, float fSphereRadius, const ezVec3 &vPosition, const ezPhysicsQueryParameters &params) const override
 
virtual void QueryShapesInBox (ezPhysicsOverlapResultArray &out_results, const ezVec3 &vBoxExtents, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual void QueryShapesInCapsule (ezPhysicsOverlapResultArray &out_results, float fCapsuleRadius, float fCapsuleHeight, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual void QueryShapesInCylinder (ezPhysicsOverlapResultArray &out_results, float fCylinderRadius, float fCylinderHeight, const ezTransform &transform, const ezPhysicsQueryParameters &params) const override
 
virtual void AddStaticCollisionBox (ezGameObject *pObject, ezVec3 vBoxSize) override
 Adds a static actor with a box shape to pOwner.
 
virtual void AddFixedJointComponent (ezGameObject *pOwner, const ezPhysicsWorldModuleInterface::FixedJointConfig &cfg) override
 Adds a fixed joint to pOwner.
 
virtual ezBoundingBoxSphere GetWorldSpaceBounds (ezGameObject *pOwner, ezUInt32 uiCollisionLayer, ezBitflags< ezPhysicsShapeType > shapeTypes, bool bIncludeChildObjects) const override
 Gets world space bounds of a physics object if its shape type is included in shapeTypes and its collision layer interacts with uiCollisionLayer.
 
const ezSet< ezJoltDynamicActorComponent * > & GetActiveActors () const
 
const ezMap< ezJoltRopeComponent *, ezInt32 > & GetActiveRopes () const
 
const ezMap< ezJoltRagdollComponent *, ezInt32 > & GetActiveRagdolls () const
 
ezArrayPtr< ezJoltRagdollComponent * > GetRagdollsPutToSleep ()
 
const ezMap< ezJoltBreakableSlabComponent *, ezInt32 > & GetActiveSlabs () const
 
ezArrayPtr< ezJoltBreakableSlabComponent * > GetSlabsPutToSleep ()
 
void QueueBodyToAdd (JPH::Body *pBody, bool bAwake)
 
JPH::GroupFilter * GetGroupFilter () const
 
JPH::GroupFilter * GetGroupFilterIgnoreSame () const
 
void EnableJoinedBodiesCollisions (ezUInt32 uiObjectFilterID1, ezUInt32 uiObjectFilterID2, bool bEnable)
 
JPH::TempAllocator * GetTempAllocator () const
 
void ActivateCharacterController (ezJoltCharacterControllerComponent *pCharacter, bool bActivate)
 
ezJoltContactListenerGetContactListener ()
 
ezJoltSoftBodyContactListenerGetSoftBodyContactListener ()
 
void CheckBreakableConstraints ()
 
void QueryGeometryInBox (const ezPhysicsQueryParameters &params, ezBoundingBox box, ezDynamicArray< ezNavmeshTriangle > &out_triangles) const
 
ezUInt64 GetJoltUpdateCounter () const
 Returns the counter of the last Jolt update. Can be used to detect when no physics update was done (at high frame rates) to skip duplicate physics modifications.
 
- Public Member Functions inherited from ezWorldModule
ezWorldGetWorld ()
 Returns the corresponding world to this module.
 
const ezWorldGetWorld () const
 Returns the corresponding world to this module.
 
ezUInt32 GetWorldIndex () const
 Same as GetWorld()->GetIndex(). Needed to break circular include dependencies.
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Public Attributes

ezDeque< ezComponentHandlem_RequireUpdate
 
ezSet< ezComponentHandlem_BreakableConstraints
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 
- Protected Types inherited from ezWorldModule
using UpdateFunction = ezDelegate< void(const UpdateContext &)>
 Update function delegate.
 
- Protected Member Functions inherited from ezPhysicsWorldModuleInterface
 ezPhysicsWorldModuleInterface (ezWorld *pWorld)
 
- Protected Member Functions inherited from ezWorldModule
 ezWorldModule (ezWorld *pWorld)
 
void RegisterUpdateFunction (const UpdateFunctionDesc &desc)
 Registers the given update function at the world.
 
void DeregisterUpdateFunction (const UpdateFunctionDesc &desc)
 De-registers the given update function from the world. Note that only the m_Function and the m_Phase of the description have to be valid for de-registration.
 
ezAllocatorGetAllocator ()
 Returns the allocator used by the world.
 
ezInternal::WorldLargeBlockAllocatorGetBlockAllocator ()
 Returns the block allocator used by the world.
 
bool GetWorldSimulationEnabled () const
 Returns whether the world simulation is enabled.
 
virtual void WorldClear ()
 Called by ezWorld::Clear(). Can be used to clear cached data when a world is completely cleared of objects (but not deleted).
 
- Protected Attributes inherited from ezWorldModule
ezWorldm_pWorld
 

Member Function Documentation

◆ AddFixedJointComponent()

void ezJoltWorldModule::AddFixedJointComponent ( ezGameObject pOwner,
const ezPhysicsWorldModuleInterface::FixedJointConfig cfg 
)
overridevirtual

Adds a fixed joint to pOwner.

Reimplemented from ezPhysicsWorldModuleInterface.

◆ AddOrUpdateForce()

ezJoltForceId ezJoltWorldModule::AddOrUpdateForce ( ezJoltForceId  forceId,
ezUInt32  uiBodyID,
ezTime  duration,
const ezVec3 vForce 
)

Creates a force that acts upon the given Jolt body for a limited time.

The force is applied every frame. It can be updated by calling this function again with a previously returned force ID. Once the duration is elapsed without an update, the force is removed.

If an invalid ID is passed in, a new force is created and a valid ID is returned. If a valid ID is passed in, the existing force gets updated, and the same ID is returned.

◆ AddStaticCollisionBox()

void ezJoltWorldModule::AddStaticCollisionBox ( ezGameObject pOwner,
ezVec3  vBoxSize 
)
overridevirtual

Adds a static actor with a box shape to pOwner.

Reimplemented from ezPhysicsWorldModuleInterface.

◆ Deinitialize()

void ezJoltWorldModule::Deinitialize ( )
overridevirtual

This method is called before the destructor. A derived type can override this method to do deinitialization work.

Reimplemented from ezWorldModule.

◆ GetCollisionLayerByName()

ezUInt32 ezJoltWorldModule::GetCollisionLayerByName ( ezStringView  sName) const
overridevirtual

Searches for a collision layer with the given name and returns its index.

Returns ezInvalidIndex if no such collision layer exists.

Implements ezPhysicsWorldModuleInterface.

◆ GetGravity()

virtual ezVec3 ezJoltWorldModule::GetGravity ( ) const
inlineoverridevirtual

◆ GetImpulseTypeByName()

ezUInt8 ezJoltWorldModule::GetImpulseTypeByName ( ezStringView  sName) const
overridevirtual

Searches for an impulse type with the given name and returns its key.

Returns ezImpulseTypeConfig::InvalidKey if no such category exists.

Implements ezPhysicsWorldModuleInterface.

◆ GetWeightCategoryByName()

ezUInt8 ezJoltWorldModule::GetWeightCategoryByName ( ezStringView  sName) const
overridevirtual

Searches for a weight category with the given name and returns its key.

Returns ezWeightCategoryConfig::InvalidKey if no such category exists.

Implements ezPhysicsWorldModuleInterface.

◆ GetWorldSpaceBounds()

ezBoundingBoxSphere ezJoltWorldModule::GetWorldSpaceBounds ( ezGameObject pOwner,
ezUInt32  uiCollisionLayer,
ezBitflags< ezPhysicsShapeType >  shapeTypes,
bool  bIncludeChildObjects 
) const
overridevirtual

Gets world space bounds of a physics object if its shape type is included in shapeTypes and its collision layer interacts with uiCollisionLayer.

Reimplemented from ezPhysicsWorldModuleInterface.

◆ Initialize()

void ezJoltWorldModule::Initialize ( )
overridevirtual

This method is called after the constructor. A derived type can override this method to do initialization work. Typically this is the method where updates function are registered.

Reimplemented from ezWorldModule.

◆ OnSimulationStarted()

void ezJoltWorldModule::OnSimulationStarted ( )
overridevirtual

This method is called at the start of the next world update when the world is simulated. This method will be called after the initialization method.

Reimplemented from ezWorldModule.

◆ OverlapTestBox()

bool ezJoltWorldModule::OverlapTestBox ( const ezVec3 vBoxExtents,
const ezVec3 vPosition,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ OverlapTestCapsule()

bool ezJoltWorldModule::OverlapTestCapsule ( float  fCapsuleRadius,
float  fCapsuleHeight,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ OverlapTestCylinder()

bool ezJoltWorldModule::OverlapTestCylinder ( float  fCylinderRadius,
float  fCylinderHeight,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ OverlapTestSphere()

bool ezJoltWorldModule::OverlapTestSphere ( float  fSphereRadius,
const ezVec3 vPosition,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ QueryShapesInBox()

void ezJoltWorldModule::QueryShapesInBox ( ezPhysicsOverlapResultArray out_results,
const ezVec3 vBoxExtents,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ QueryShapesInCapsule()

void ezJoltWorldModule::QueryShapesInCapsule ( ezPhysicsOverlapResultArray out_results,
float  fCapsuleRadius,
float  fCapsuleHeight,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ QueryShapesInCylinder()

void ezJoltWorldModule::QueryShapesInCylinder ( ezPhysicsOverlapResultArray out_results,
float  fCylinderRadius,
float  fCylinderHeight,
const ezTransform transform,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ QueryShapesInSphere()

void ezJoltWorldModule::QueryShapesInSphere ( ezPhysicsOverlapResultArray out_results,
float  fSphereRadius,
const ezVec3 vPosition,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ Raycast()

bool ezJoltWorldModule::Raycast ( ezPhysicsCastResult out_result,
const ezVec3 vStart,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params,
ezPhysicsHitCollection  collection = ezPhysicsHitCollection::Closest 
) const
overridevirtual

◆ RaycastAll()

bool ezJoltWorldModule::RaycastAll ( ezPhysicsCastResultArray out_results,
const ezVec3 vStart,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params 
) const
overridevirtual

◆ SweepTestBox()

bool ezJoltWorldModule::SweepTestBox ( ezPhysicsCastResult out_result,
const ezVec3 vBoxExtents,
const ezTransform transform,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params,
ezPhysicsHitCollection  collection = ezPhysicsHitCollection::Closest 
) const
overridevirtual

◆ SweepTestCapsule()

bool ezJoltWorldModule::SweepTestCapsule ( ezPhysicsCastResult out_result,
float  fCapsuleRadius,
float  fCapsuleHeight,
const ezTransform transform,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params,
ezPhysicsHitCollection  collection = ezPhysicsHitCollection::Closest 
) const
overridevirtual

◆ SweepTestCylinder()

bool ezJoltWorldModule::SweepTestCylinder ( ezPhysicsCastResult out_result,
float  fCylinderRadius,
float  fCylinderHeight,
const ezTransform transform,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params,
ezPhysicsHitCollection  collection = ezPhysicsHitCollection::Closest 
) const
overridevirtual

◆ SweepTestSphere()

bool ezJoltWorldModule::SweepTestSphere ( ezPhysicsCastResult out_result,
float  fSphereRadius,
const ezVec3 vStart,
const ezVec3 vDir,
float  fDistance,
const ezPhysicsQueryParameters params,
ezPhysicsHitCollection  collection = ezPhysicsHitCollection::Closest 
) const
overridevirtual

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