Quantum 3 3.0.10

Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Quantum.Task.SystemArrayFilter< T > Class Template Referenceabstract

A multi-threaded system to parallelize updating components. More...

Inheritance diagram for Quantum.Task.SystemArrayFilter< T >:
Quantum.SystemBase

Public Member Functions

sealed override void OnInit (Frame f)
 Is called when the system is initialized.
 
abstract void Update (FrameThreadSafe f, ref T filter)
 Override to add workload. More...
 
- Public Member Functions inherited from Quantum.SystemBase
 SystemBase ()
 Constructor. More...
 
 SystemBase (params SystemBase[] children)
 Create a new instance of a system with children. More...
 
 SystemBase (string scheduleSample)
 Create a new instance and setting the sample name. More...
 
virtual void OnDisabled (Frame f)
 Is called when the system was disabled for example after Frame.SystemDisable(Type). More...
 
virtual void OnEnabled (Frame f)
 Is called when the system was enabled for example after calling Frame.SystemEnable<T>() or during QuantumGame.InitSystems(Photon.Deterministic.DeterministicFrame). More...
 
TaskHandle OnSchedule (Frame f, TaskHandle taskHandle)
 Creates the task graph for the system. More...
 

Public Attributes

virtual ComponentSet Any => default
 A filter to include components from the iteration. More...
 
virtual int SlicesCount => MAX_SLICES_COUNT / 2
 
virtual bool UseCulling => true
 Override to specify if the filter should use culling. More...
 
virtual ComponentSet Without => default
 A filter to exclude components from the iteration. More...
 

Protected Member Functions

virtual void OnInitUser (Frame f)
 
override TaskHandle Schedule (Frame f, TaskHandle taskHandle)
 Override to add tasks to this system.
 

Additional Inherited Members

- Properties inherited from Quantum.SystemBase
IEnumerable< SystemBaseChildSystems [get]
 The enumerable child systems. More...
 
IEnumerable< SystemBaseHierarchy [get]
 Creates the complete sub graph of child systems. More...
 
SystemBase ParentSystem [get]
 The parent system in the system hierarchy. More...
 
string ProfilerName [get]
 Profiler name. More...
 
Int32 RuntimeIndex [get]
 A unique index assigned to identify systems at runtime. More...
 
virtual Boolean StartEnabled [get, set]
 Set to true when the simulation should start with this system enabled. More...
 

Detailed Description

A multi-threaded system to parallelize updating components.

Only access to the component itself and FrameThreadSafe is safe.

Array task: similar to SystemArrayComponent<T>, but the threads will iterate over a filtered component set defined by the filter struct T.

For more information request access to the online multi-threading documentation.

Template Parameters
TComponent type to update.
Type Constraints
T :unmanaged 

Member Function Documentation

◆ Update()

abstract void Quantum.Task.SystemArrayFilter< T >.Update ( FrameThreadSafe  f,
ref T  filter 
)
pure virtual

Override to add workload.

Only access to the component itself and FrameThreadSafe is safe.

Parameters
fThe thread-safe referenced frame.
filterThe entity filter.

Member Data Documentation

◆ UseCulling

virtual bool Quantum.Task.SystemArrayFilter< T >.UseCulling => true

Override to specify if the filter should use culling.

◆ Without

virtual ComponentSet Quantum.Task.SystemArrayFilter< T >.Without => default

A filter to exclude components from the iteration.

◆ Any

virtual ComponentSet Quantum.Task.SystemArrayFilter< T >.Any => default

A filter to include components from the iteration.