UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneChannelEditorDataEntry.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Misc/InlineValue.h"
7#include "Algo/Sort.h"
8#include "Misc/Attribute.h"
9#include "Misc/Optional.h"
11
12template<typename> struct TMovieSceneChannelTraits;
13
14#if WITH_EDITOR
15
20{
25 template<typename ChannelType>
26 explicit FMovieSceneChannelEditorDataEntry(const ChannelType& Channel)
27 {
29 }
30
35 {
36 return MetaDataArray;
37 }
38
42 const void* GetExtendedEditorData(int32 ChannelIndex) const
43 {
44 if (ExtendedEditorDataArray.IsValid())
45 {
46 return ExtendedEditorDataArray->GetChannel(ChannelIndex);
47 }
48 return nullptr;
49 }
50
51protected:
52
56 template<typename ChannelType>
57 void AddMetaData(const FMovieSceneChannelMetaData& MetaData)
58 {
59 static_assert(std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType, void>, "Must supply extended editor data according to the channel's traits.");
60
61 // Add the editor meta-data
62 MetaDataArray.Add(MetaData);
63 }
64
68 template<typename ChannelType, typename ExtendedEditorDataType>
70 {
71 // Add the editor meta-data
72 MetaDataArray.Add(MetaData);
73
74 // Add the extended channel-type specific editor data
77 }
78
82 template<typename ChannelType, typename ExtendedEditorDataType>
84 {
85 // Set the extended channel-type specific editor data
88 }
89
93 template<typename ChannelType>
95 {
96 static_assert(!std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType, void>, "This channel type does not define any extended editor data.");
97
98 const auto& TypedImpl = static_cast<const TMovieSceneExtendedEditorDataArray<ChannelType>&>(ExtendedEditorDataArray.GetValue());
99 return TypedImpl.Data;
100 }
101
102private:
103
105 template<typename ChannelType, typename ExtendedEditorDataType>
107 {
109 }
110
111 template<typename ChannelType>
113 {
114 }
115
116private:
117
120
127 {
129 virtual const void* GetChannel(int32 Index) const = 0;
130 };
131
132 template<typename ChannelType>
134 {
136
137 virtual const void* GetChannel(int32 Index) const { return &Data[Index]; }
138
141 };
142
145};
146
147#else // WITH_EDITOR
148
151{
152 template<typename ChannelType> FMovieSceneChannelEditorDataEntry(const ChannelType&){}
153};
154
155#endif // WITH_EDITOR
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ArrayView.h:139
Definition Array.h:670
Definition InlineValue.h:22
GeometryCollection::Facades::FMuscleActivationData Data
Definition MuscleActivationConstraints.h:15
U16 Index
Definition radfft.cpp:71
Definition MovieSceneChannelEditorDataEntry.h:151
FMovieSceneChannelEditorDataEntry(const ChannelType &)
Definition MovieSceneChannelEditorDataEntry.h:152
Definition MovieSceneChannelTraits.h:63