Apparatus Version 1.8
ECS data-oriented workflow for Unreal Engine.
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
IMechanical Class Reference

A common interface for all mechanisms. More...

#include <Mechanical.h>

Inheritance diagram for IMechanical:
Inheritance graph
[legend]

Public Member Functions

UMechanismGetMechanism () const
 Get the mechanism this mechanical is part of. More...
 
FSubjectHandle SpawnSubject ()
 Spawn a new subject, returning its handle. More...
 
template<typename ChainT = TChain<TChunkIt<FSubjectHandle>, TBeltIt<FSubjectHandle>>>
ChainT * Enchain (const FFilter &InFilter) const
 Enchain iterables using the supplied filter. More...
 
TChain< TChunkIt< FSolidSubjectHandle >, TBeltIt< FSolidSubjectHandle > > * EnchainSolid (const FFilter &InFilter) const
 Solid-enchain iterables using the supplied filter. More...
 
void ReceiveBoot ()
 Process newly created subjects. More...
 
void ReceiveInputTick ()
 Process a pre-steady input tick. More...
 
void ReceiveSteadyTick (float DeltaSeconds)
 Process a fixed-rate steady tick. More...
 
void ReceivePresentationTick (float DeltaSeconds, float FrameRatio, float FutureFactor)
 Process a past-steady presentation tick. More...
 
virtual void Boot ()
 Process newly created subjects. More...
 
virtual void InputTick ()
 Process a pre-steady input tick. More...
 
virtual void SteadyTick (float DeltaTime)
 Process a fixed-rate steady tick. More...
 
virtual void PresentationTick (float DeltaSeconds, float FrameRatio, float FutureFactor)
 Process a past-steady presentation tick. More...
 
 IMechanical ()
 
virtual float GetSteadyDeltaTime () const
 Get the time interval for steady ticking. More...
 
virtual float GetOwnTime () const
 Get own Mechanical's local life time. More...
 
float GetProcessedSteadyTime () const
 Get the time of the last processed steady frame. More...
 
float CalcSteadyFrameRatio () const
 The current ratio within the steady frame. More...
 
void GetSteadyFrame (int64 &OutFrame) const
 Get the current steady frame. More...
 
float GetSteadyTime () const
 Get the total steady time elapsed. More...
 
float CalcSteadyFutureFactor () const
 The current steady future factor. More...
 

Protected Member Functions

virtual void DoTick (float NewTime, float DeltaTime, float SteadyDeltaTime)
 Perform a standard ticking routine. More...
 
void DoRegister ()
 
void DoUnregister ()
 
float DoGetProcessedSteadyTime (float SteadyDeltaTime) const
 
float DoCalcSteadyFrameRatio (const float Time, const float SteadyDeltaTime) const
 
float DoCalcSteadyFutureFactor (const float Time, const float SteadyDeltaTime) const
 
float GetProcessedSteadyTime_Implementation () const
 
float CalcSteadyFrameRatio_Implementation () const
 
void GetSteadyFrame_Implementation (int64 &OutFrame) const
 
float CalcSteadyFutureFactor_Implementation () const
 
float GetSteadyTime_Implementation () const
 

Protected Attributes

int64 SteadyFrame = 0
 The steady frame we are currently part of. More...
 
int64 ProcessedSteadyFrame = -1
 The last, actually processed steady frame. More...
 
float PrevTime = NAN
 The game time of the previous tick. More...
 
uint32 bInsideTick: 1
 Is this mechanism currently updating? More...
 
uint32 bInsideSteadyTick: 1
 Is this mechanism currently in the process of steady ticking? More...
 
uint32 bInsidePresentationTick: 1
 Is this mechanism currently in the process of presentation ticking? More...
 

Friends

class UMachine
 

Detailed Description

A common interface for all mechanisms.

Constructor & Destructor Documentation

◆ IMechanical()

IMechanical::IMechanical ( )
inline

Member Function Documentation

◆ Boot()

virtual void IMechanical::Boot ( )
inlinevirtual

Process newly created subjects.

◆ CalcSteadyFrameRatio()

float IMechanical::CalcSteadyFrameRatio ( ) const
inline

The current ratio within the steady frame.

This is in relation between the previous steady frame and the current next one. Should be used for interframe interpolation.

◆ CalcSteadyFrameRatio_Implementation()

float IMechanical::CalcSteadyFrameRatio_Implementation ( ) const
inlineprotected

◆ CalcSteadyFutureFactor()

float IMechanical::CalcSteadyFutureFactor ( ) const
inline

The current steady future factor.

This is in relation between the previous change time delta to the next steady frame change delta time.

◆ CalcSteadyFutureFactor_Implementation()

float IMechanical::CalcSteadyFutureFactor_Implementation ( ) const
inlineprotected

◆ DoCalcSteadyFrameRatio()

float IMechanical::DoCalcSteadyFrameRatio ( const float  Time,
const float  SteadyDeltaTime 
) const
inlineprotected

◆ DoCalcSteadyFutureFactor()

float IMechanical::DoCalcSteadyFutureFactor ( const float  Time,
const float  SteadyDeltaTime 
) const
inlineprotected

◆ DoGetProcessedSteadyTime()

float IMechanical::DoGetProcessedSteadyTime ( float  SteadyDeltaTime) const
inlineprotected

◆ DoRegister()

void IMechanical::DoRegister ( )
inlineprotected

◆ DoTick()

void IMechanical::DoTick ( float  NewTime,
float  DeltaTime,
float  SteadyDeltaTime 
)
inlineprotectedvirtual

Perform a standard ticking routine.

The function can be used in the descendants to perform a standard ticking routine.

◆ DoUnregister()

void IMechanical::DoUnregister ( )
inlineprotected

◆ Enchain()

template<typename ChainT >
ChainT * IMechanical::Enchain ( const FFilter InFilter) const
inline

Enchain iterables using the supplied filter.

Parameters
InFilterA filter to enchain with.
Returns
A pointer to a chain.

◆ EnchainSolid()

TChain<TChunkIt<FSolidSubjectHandle>, TBeltIt<FSolidSubjectHandle> >* IMechanical::EnchainSolid ( const FFilter InFilter) const
inline

Solid-enchain iterables using the supplied filter.

Parameters
InFilterA filter to enchain with.
Returns
A pointer to a chain.

◆ GetMechanism()

UMechanism * IMechanical::GetMechanism ( ) const
inline

Get the mechanism this mechanical is part of.

◆ GetOwnTime()

virtual float IMechanical::GetOwnTime ( ) const
inlinevirtual

Get own Mechanical's local life time.

Should be overriden in the descendants.

Reimplemented in AMechanicalGameModeBase, AMechanicalGameMode, UMechanicalActorComponent, and AMechanicalActor.

◆ GetProcessedSteadyTime()

float IMechanical::GetProcessedSteadyTime ( ) const
inline

Get the time of the last processed steady frame.

◆ GetProcessedSteadyTime_Implementation()

float IMechanical::GetProcessedSteadyTime_Implementation ( ) const
inlineprotected

◆ GetSteadyDeltaTime()

virtual float IMechanical::GetSteadyDeltaTime ( ) const
inlinevirtual

Get the time interval for steady ticking.

Should be overriden in the descendants to provide a propertie's value.

Reimplemented in AMechanicalGameModeBase, AMechanicalGameMode, UMechanicalActorComponent, and AMechanicalActor.

◆ GetSteadyFrame()

void IMechanical::GetSteadyFrame ( int64 &  OutFrame) const

Get the current steady frame.

◆ GetSteadyFrame_Implementation()

void IMechanical::GetSteadyFrame_Implementation ( int64 &  OutFrame) const
inlineprotected

◆ GetSteadyTime()

float IMechanical::GetSteadyTime ( ) const
inline

Get the total steady time elapsed.

◆ GetSteadyTime_Implementation()

float IMechanical::GetSteadyTime_Implementation ( ) const
inlineprotected

◆ InputTick()

virtual void IMechanical::InputTick ( )
inlinevirtual

Process a pre-steady input tick.

◆ PresentationTick()

virtual void IMechanical::PresentationTick ( float  DeltaSeconds,
float  FrameRatio,
float  FutureFactor 
)
inlinevirtual

Process a past-steady presentation tick.

Parameters
DeltaSecondsThe fixed delta time in seconds.
FrameRatioThe steady frame ratio.
FutureFactorThe steady future factor.

◆ ReceiveBoot()

void IMechanical::ReceiveBoot ( )

Process newly created subjects.

◆ ReceiveInputTick()

void IMechanical::ReceiveInputTick ( )

Process a pre-steady input tick.

◆ ReceivePresentationTick()

void IMechanical::ReceivePresentationTick ( float  DeltaSeconds,
float  FrameRatio,
float  FutureFactor 
)

Process a past-steady presentation tick.

Parameters
DeltaSecondsThe fixed delta time in seconds.
FrameRatioThe steady frame ratio.
FutureFactorThe steady future factor.

◆ ReceiveSteadyTick()

void IMechanical::ReceiveSteadyTick ( float  DeltaSeconds)

Process a fixed-rate steady tick.

◆ SpawnSubject()

FSubjectHandle IMechanical::SpawnSubject ( )
inline

Spawn a new subject, returning its handle.

◆ SteadyTick()

virtual void IMechanical::SteadyTick ( float  DeltaTime)
inlinevirtual

Process a fixed-rate steady tick.

Friends And Related Function Documentation

◆ UMachine

friend class UMachine
friend

Member Data Documentation

◆ bInsidePresentationTick

uint32 IMechanical::bInsidePresentationTick
protected

Is this mechanism currently in the process of presentation ticking?

◆ bInsideSteadyTick

uint32 IMechanical::bInsideSteadyTick
protected

Is this mechanism currently in the process of steady ticking?

◆ bInsideTick

uint32 IMechanical::bInsideTick
protected

Is this mechanism currently updating?

◆ PrevTime

float IMechanical::PrevTime = NAN
protected

The game time of the previous tick.

◆ ProcessedSteadyFrame

int64 IMechanical::ProcessedSteadyFrame = -1
protected

The last, actually processed steady frame.

-1 if the steady tick was not run yet.

◆ SteadyFrame

int64 IMechanical::SteadyFrame = 0
protected

The steady frame we are currently part of.


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