5#include "Algo/BinarySearch.h"
8#include "Containers/Array.h"
35 return ChannelTypeName;
51 template<
typename ChannelType>
54 check(ChannelType::StaticStruct()->GetFName() == ChannelTypeName);
55 return FMovieSceneChannelEditorDataEntry::GetAllExtendedEditorData<ChannelType>();
67 template<
typename ChannelType>
74 FName ChannelTypeName;
96 template<
typename ChannelType>
99 static_assert(std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType,
void>,
"Must supply extended editor data according to the channel's traits.");
100 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type.");
114 template<
typename ChannelType>
117 static_assert(!std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType,
void>,
"This method is for channels with typed editor data. You *must* call SetExtendedEditorData afterwards.");
118 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type.");
125 const FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
136 template<
typename ChannelType,
typename ExtendedEditorDataType>
139 static_assert(!std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType,
void>,
"Must supply typed editor data according to the channel's traits. Define TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType to use this function.");
140 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type.");
148 template<
typename ChannelType,
typename ExtendedEditorDataType>
155 {
return CurEntry.ChannelTypeName == ChannelTypeName; });
169 template<
typename ChannelType>
184 template<
typename ChannelType>
258 template<
typename ChannelType>
266 template<
typename ChannelType>
294 template<
typename ChannelType>
297 FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
306 template<
typename ChannelType>
318 template<
typename ChannelType>
327 template<
typename ChannelType>
334 template<
typename ChannelType,
typename ExtendedEditorDataType>
343 template<
typename ChannelType>
351 template<
typename ChannelType>
366 template<
typename ChannelType>
398template<
typename ChannelType>
399int32 FMovieSceneChannelProxyData::AddInternal(ChannelType&
InChannel)
401 FMovieSceneChannelHandle::TrackChannelTypeName<ChannelType>();
404 FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
428template<
typename ChannelType>
431 FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
447template<
typename ChannelType>
451 return Channels.IsValidIndex(ChannelIndex) ? Channels[ChannelIndex] :
nullptr;
461template<
typename ChannelType>
464 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type..");
466 const FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
479template<
typename ChannelType>
482 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type..");
483 static_assert(std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType,
void>,
"Must supply typed editor data according to the channel's traits.");
485 const FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
488 Entries[0].AddMetaData<ChannelType>(
InMetaData);
496template<
typename ChannelType,
typename ExtendedEditorDataType>
499 static_assert(!std::is_same_v<ChannelType, FMovieSceneChannel>,
"Cannot add channels by their base FMovieSceneChannel type..");
500 static_assert(!std::is_same_v<typename TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType,
void>,
"Must supply typed editor data according to the channel's traits. Define TMovieSceneChannelTraits<ChannelType>::ExtendedEditorDataType to use this function.");
502 const FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
514template<
typename ChannelType>
517 FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
522 return FoundEntry->GetAllExtendedEditorData<ChannelType>();
533template<
typename ChannelType>
536 FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
552template<
typename ChannelType>
556 const FName ChannelTypeName = ChannelType::StaticStruct()->GetFName();
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
TSharedRef< ObjectType, Mode > AsShared()
Definition SharedPointer.h:1650
UE_REWRITE auto LowerBoundBy(const RangeType &Range, const ValueType &Value, ProjectionType Projection, SortPredicateType SortPredicate) -> decltype(GetNum(Range))
Definition BinarySearch.h:113
U16 Index
Definition radfft.cpp:71
Definition MovieSceneChannelEditorDataEntry.h:151
Definition MovieSceneChannelProxy.h:29
FName GetChannelTypeName() const
Definition MovieSceneChannelProxy.h:33
TArrayView< FMovieSceneChannel *const > GetChannels() const
Definition MovieSceneChannelProxy.h:41
Definition MovieSceneChannelHandle.h:20
MOVIESCENE_API int32 GetChannelIndex() const
Definition MovieSceneChannelHandle.cpp:51
MOVIESCENE_API FName GetChannelTypeName() const
Definition MovieSceneChannelHandle.cpp:46
Definition MovieSceneChannelProxy.h:87
void Add(ChannelType &InChannel)
Definition MovieSceneChannelProxy.h:170
Definition MovieSceneChannelProxy.h:198
TMovieSceneChannelHandle< ChannelType > MakeHandle(int32 Index)
Definition MovieSceneChannelProxy.h:295
MOVIESCENE_API int32 FindIndex(FName ChannelTypeName, const FMovieSceneChannel *ChannelPtr) const
Definition MovieSceneChannelProxy.cpp:35
FMovieSceneChannelProxy & operator=(FMovieSceneChannelProxy &&)=delete
FMovieSceneChannelProxy(FMovieSceneChannelProxyData &&InChannels)
Definition MovieSceneChannelProxy.h:214
MOVIESCENE_API int32 NumChannels() const
Definition MovieSceneChannelProxy.cpp:7
FMovieSceneChannelProxy & operator=(const FMovieSceneChannelProxy &)=delete
MOVIESCENE_API const FMovieSceneChannelEntry * FindEntry(FName ChannelTypeName) const
Definition MovieSceneChannelProxy.cpp:23
TMovieSceneChannelHandle< ChannelType > CopyHandle(TMovieSceneChannelHandle< ChannelType > InOtherHandle)
Definition MovieSceneChannelProxy.h:307
~FMovieSceneChannelProxy()
Definition MovieSceneChannelProxy.h:206
ChannelType * GetChannel(int32 ChannelIndex) const
Definition MovieSceneChannelProxy.h:448
TArrayView< ChannelType * > GetChannels() const
Definition MovieSceneChannelProxy.h:429
FMovieSceneChannelProxy(FMovieSceneChannelProxy &&)=delete
TArrayView< const FMovieSceneChannelEntry > GetAllEntries() const
Definition MovieSceneChannelProxy.h:232
FMovieSceneChannelProxy(const FMovieSceneChannelProxy &)=delete
FMovieSceneChannelProxy()
Definition MovieSceneChannelProxy.h:204
MOVIESCENE_API FMovieSceneChannelHandle MakeHandle(FName ChannelTypeName, int32 Index)
Definition MovieSceneChannelProxy.cpp:17
FSimpleMulticastDelegate OnDestroy
Definition MovieSceneChannelProxy.h:201
Definition MovieSceneChannel.h:112
Definition NameTypes.h:1653
Definition MovieSceneChannelHandle.h:167
Definition MovieSceneChannelTraits.h:63