Open 3D Engine EMotionFX Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
EMotionFX::ActorUpdateScheduler Class Referenceabstract

#include <ActorUpdateScheduler.h>

Inherits EMotionFX::BaseObject.

Inherited by EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

Public Member Functions

virtual const char * GetName () const =0
 
virtual uint32 GetType () const =0
 
virtual void Execute (float timePassedInSeconds)=0
 
virtual void Clear ()=0
 
virtual void Print ()
 
virtual void RecursiveInsertActorInstance (ActorInstance *actorInstance, size_t startStep=0)=0
 
virtual void RecursiveRemoveActorInstance (ActorInstance *actorInstance, size_t startStep=0)=0
 
virtual size_t RemoveActorInstance (ActorInstance *actorInstance, size_t startStep=0)=0
 
size_t GetNumUpdatedActorInstances () const
 
size_t GetNumVisibleActorInstances () const
 
size_t GetNumSampledActorInstances () const
 
- Public Member Functions inherited from EMotionFX::BaseObject
 BaseObject ()
 
virtual ~BaseObject ()
 
- Public Member Functions inherited from MCore::MemoryObject
 MemoryObject ()
 
virtual ~MemoryObject ()
 
void IncreaseReferenceCount ()
 
void DecreaseReferenceCount ()
 
void Destroy ()
 
uint32 GetReferenceCount () const
 

Protected Member Functions

 ActorUpdateScheduler ()
 
virtual ~ActorUpdateScheduler ()
 
- Protected Member Functions inherited from EMotionFX::BaseObject
void Delete () override
 
virtual void Delete ()
 

Protected Attributes

MCore::AtomicSizeT m_numUpdated
 
MCore::AtomicSizeT m_numVisible
 
MCore::AtomicSizeT m_numSampled
 

Detailed Description

The actor update scheduler base class. This class is responsible for updating the transformations of all actor instances, in the right order.

Constructor & Destructor Documentation

◆ ActorUpdateScheduler()

EMotionFX::ActorUpdateScheduler::ActorUpdateScheduler ( )
inlineprotected

The constructor.

◆ ~ActorUpdateScheduler()

virtual EMotionFX::ActorUpdateScheduler::~ActorUpdateScheduler ( )
inlineprotectedvirtual

The destructor.

Member Function Documentation

◆ Clear()

virtual void EMotionFX::ActorUpdateScheduler::Clear ( )
pure virtual

Clear the schedule.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ Execute()

virtual void EMotionFX::ActorUpdateScheduler::Execute ( float  timePassedInSeconds)
pure virtual

The main method that will trigger all updates of the actor instances.

Parameters
timePassedInSecondsThe time passed, in seconds, since the last call to the update.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ GetName()

virtual const char * EMotionFX::ActorUpdateScheduler::GetName ( ) const
pure virtual

Get the name of this class, or a description.

Returns
The string containing the name of the scheduler.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ GetType()

virtual uint32 EMotionFX::ActorUpdateScheduler::GetType ( ) const
pure virtual

Get the unique type ID of the scheduler type. All schedulers will have another ID, so that you can use this to identify what scheduler you are dealing with.

Returns
The unique ID of the scheduler type.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ Print()

virtual void EMotionFX::ActorUpdateScheduler::Print ( )
inlinevirtual

LOG the schedule using the LOG method. This can for example show the update order, in which order the actor instances will be updated.

Reimplemented in EMotionFX::MultiThreadScheduler.

◆ RecursiveInsertActorInstance()

virtual void EMotionFX::ActorUpdateScheduler::RecursiveInsertActorInstance ( ActorInstance actorInstance,
size_t  startStep = 0 
)
pure virtual

Recursively insert an actor instance into the schedule, including all its attachments.

Parameters
actorInstanceThe actor instance to insert.
startStepAn offset in the schedule where to start trying to insert the actor instances.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ RecursiveRemoveActorInstance()

virtual void EMotionFX::ActorUpdateScheduler::RecursiveRemoveActorInstance ( ActorInstance actorInstance,
size_t  startStep = 0 
)
pure virtual

Recursively remove an actor instance and its attachments from the schedule.

Parameters
actorInstanceThe actor instance to remove.
startStepAn offset in the schedule where to start trying to remove from.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.

◆ RemoveActorInstance()

virtual size_t EMotionFX::ActorUpdateScheduler::RemoveActorInstance ( ActorInstance actorInstance,
size_t  startStep = 0 
)
pure virtual

Remove a single actor instance from the schedule. This will not remove its attachments.

Parameters
actorInstanceThe actor instance to remove.
startStepAn offset in the schedule where to start trying to remove from.
Returns
Returns the offset in the schedule where the actor instance was removed.

Implemented in EMotionFX::MultiThreadScheduler, and EMotionFX::SingleThreadScheduler.


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