Module |
|
Header |
/Engine/Source/Runtime/MovieScene/Public/EntitySystem/MovieScenePropertySystemTypes.h |
Include |
#include "EntitySystem/MovieScenePropertySystemTypes.h" |
template<typename PropertyTraits, typename MetaDataType, typename... CompositeTypes>
struct TSetCompositePropertyValuesImpl
Task implementation that combines a specific set of input components (templated as CompositeTypes) through a projection, and applies the result to an object property Three types of property are supported: Custom native accessor functions, fast pointer offset, or FTrackInstancePropertyBindings.
Can be invoked in one of 2 ways: either with a specific property type and input components through a per-entity iteration: TComponentTypeID<FCustomPropertyIndex> CustomProperty = ...; TComponentTypeID<UObject*> BoundObject = ...;
FEntityTaskBuilder() .Read( BoundObject ) .Read( CustomProperty ) .Read( TComponentTypeID<float>(...) ) .Read( TComponentTypeID<float>(...) ) .Read( TComponentTypeID<float>(...) ) .Dispatch_PerEntity<TSetCompositePropertyValues<FVector, float, float, float>>( ..., &UKismetMathLibrary::MakeVector );
Or via a combinatorial task that iterates all entities with any one of the property components: TComponentTypeID<uint16> FastPropertyOffset = ...; TComponentTypeID<TSharedPtr<FTrackInstancePropertyBindings>> SlowProperty = ...;
FEntityTaskBuilder() .Read( BoundObject ) .ReadOneOf( CustomProperty, FastPropertyOffset, SlowProperty ) .Read( TComponentTypeID<float>(...) ) .Read( TComponentTypeID<float>(...) ) .Read( TComponentTypeID<float>(...) ) .Dispatch_Perllocation<TSetCompositePropertyValues<FVector, float, float, float>>( ..., &UKismetMathLibrary::MakeVector );