UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieScenePartialProperties.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
10
11
14
15namespace UE
16{
17namespace MovieScene
18{
19
20template<typename CompositeType>
22{
23 if (Composite)
24 {
25 *reinterpret_cast<CompositeType*>(OutValueBase + PtrOffset) = *Composite;
26 }
27}
28
29template<typename... CompositeTypes, int ...CompositeIndices>
31{
32 int Tmp[] = {
33 ( PatchComposite(OutValueBase, Composites, CompositeDefinitions[CompositeIndices].CompositeOffset), 0 )..., 0
34 };
35 (void)Tmp;
36}
37
38template<typename... CompositeTypes>
40{
41 uint8* ValueBase = static_cast<uint8*>(OutValueAddress);
42 PatchCompositeValueImpl(TMakeIntegerSequence<int, sizeof...(CompositeTypes)>(), CompositeDefinitions, ValueBase, Composites...);
43}
44
45
46template<typename PropertyTraits, typename MetaDataType, typename CompositeIntegers, typename ...CompositeTypes>
48
49template<typename PropertyTraits, typename ...MetaDataTypes, int ...CompositeIndices, typename ...CompositeTypes>
51{
52 using StorageType = typename PropertyTraits::StorageType;
53
56
58 : Traits(InTraits)
59 , CustomProperties(InCustomProperties)
60 , CompositeDefinitions(InCompositeDefinitions)
61 {
62 if (CustomProperties)
63 {
64 CustomAccessors = CustomProperties->GetAccessors();
65 }
66 }
67
70
71private:
72
73 void ForEachCustom(const FEntityAllocation* Allocation, UObject* const* Objects, const FCustomPropertyIndex* Custom, const MetaDataTypes*... InMetaData, const CompositeTypes*... InCompositeComponents) const;
74
75 void ForEachFast(const FEntityAllocation* Allocation, UObject* const* Objects, const uint16* Fast, const MetaDataTypes*... InMetaData, const CompositeTypes*... InCompositeComponents) const;
76
77 void ForEachSlow(const FEntityAllocation* Allocation, UObject* const* Objects, const TSharedPtr<FTrackInstancePropertyBindings>* Slow, const MetaDataTypes*... InMetaData, const CompositeTypes*... InCompositeComponents) const;
78
79private:
80 const PropertyTraits* Traits;
81 const ICustomPropertyRegistration* CustomProperties;
82 FCustomAccessorView CustomAccessors;
84};
85
86template<typename PropertyTraits, typename ...CompositeTypes>
87using TSetPartialPropertyValues = TSetPartialPropertyValuesImpl<PropertyTraits, typename PropertyTraits::MetaDataType, TMakeIntegerSequence<int, sizeof...(CompositeTypes)>, CompositeTypes...>;
88
89
90} // namespace MovieScene
91} // namespace UE
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
Definition TrackInstancePropertyBindings.h:143
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition SharedPointer.h:692
Definition MovieSceneEntitySystemLinker.h:113
Definition Object.h:95
void PatchCompositeValue(TArrayView< const FPropertyCompositeDefinition > CompositeDefinitions, void *OutValueAddress, const CompositeTypes *... Composites)
Definition MovieScenePartialProperties.h:39
void PatchComposite(uint8 *OutValueBase, const CompositeType *Composite, uint16 PtrOffset)
Definition MovieScenePartialProperties.h:21
void PatchCompositeValueImpl(const TIntegerSequence< int, CompositeIndices... > &, TArrayView< const FPropertyCompositeDefinition > CompositeDefinitions, uint8 *OutValueBase, const CompositeTypes *... Composites)
Definition MovieScenePartialProperties.h:30
Definition AdvancedWidgetsModule.cpp:13
Definition IntegerSequence.h:9
Definition MovieScenePropertySystemTypes.h:164
Definition MovieScenePropertySystemTypes.h:23
Definition MovieSceneEntitySystemTypes.h:624
Definition MovieScenePropertySystemTypes.h:216
Definition MovieSceneComponentPtr.h:439
Definition MovieScenePropertyMetaData.h:19
Definition MovieSceneComponentPtr.h:208
Definition MovieSceneComponentPtr.h:195
TSetPartialPropertyValuesImpl(const PropertyTraits *InTraits, const ICustomPropertyRegistration *InCustomProperties, TArrayView< const FPropertyCompositeDefinition > InCompositeDefinitions)
Definition MovieScenePartialProperties.h:57
Definition MovieScenePartialProperties.h:47