UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IMovieSceneChannelOverrideProvider.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Misc/InlineValue.h"
6#include "UObject/Interface.h"
8#include "IMovieSceneChannelOverrideProvider.generated.h"
9
11
12namespace UE
13{
14namespace MovieScene
15{
16
49
54{
56
60 virtual FName GetDefaultChannelTypeName(FName ChannelName) const = 0;
61
65 virtual int32 GetChannelOverrideEntityID(FName ChannelName) const = 0;
66
70 virtual FName GetChannelOverrideName(int32 EntityID) const = 0;
71};
72
74
78template<typename DefaultChannelType, int OverrideEntityID = 10>
80{
82
87
88 virtual FName GetDefaultChannelTypeName(FName ChannelName) const override
89 {
90 return DefaultChannelType::StaticStruct()->GetFName();
91 }
92
93 virtual int32 GetChannelOverrideEntityID(FName ChannelName) const override
94 {
95 ensure(ChannelName == SingleChannelName);
96 return OverrideEntityID;
97 }
98
99 virtual FName GetChannelOverrideName(int32 EntityID) const override
100 {
101 ensure(EntityID == OverrideEntityID);
102 return SingleChannelName;
103 }
104};
105
106template<typename... OverrideChannelTypes>
108{
110 FName ChannelTypes[sizeof...(OverrideChannelTypes)];
111
116
117 virtual FName GetDefaultChannelTypeName(FName ChannelName) const override
118 {
119 const int32 ChannelIndex = ChannelNames->GetIndex(ChannelName);
120 check(ChannelIndex >= 0 && ChannelIndex < sizeof(ChannelTypes));
121 return ChannelTypes[ChannelIndex];
122 }
123
124 virtual int32 GetChannelOverrideEntityID(FName ChannelName) const override
125 {
126 return ChannelNames->GetIndex(ChannelName);
127 }
128
129 virtual FName GetChannelOverrideName(int32 EntityID) const override
130 {
131 return ChannelNames->GetChannelName(EntityID);
132 }
133};
134
135} // namespace MovieScene
136} // namespace UE
137
138UINTERFACE(MinimalAPI)
145
172
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
UScriptStruct * StaticStruct()
Definition ReflectedTypeAccessors.h:18
Definition NameTypes.h:617
Definition IMovieSceneChannelOverrideProvider.h:150
virtual UMovieSceneSectionChannelOverrideRegistry * GetChannelOverrideRegistry(bool bCreateIfMissing)=0
virtual void OnChannelOverridesChanged()=0
virtual FChannelOverrideProviderTraitsHandle GetChannelOverrideProviderTraits() const =0
Definition MovieScene.Build.cs:6
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
UE_NODEBUG UE_FORCEINLINE_HINT bool Find(const ElementType &Item, SizeType &Index) const
Definition Array.h:1302
Definition InlineValue.h:22
Definition Interface.h:19
Definition IMovieSceneChannelOverrideProvider.h:140
Definition MovieSceneSectionChannelOverrideRegistry.h:44
TInlineValue< FChannelOverrideProviderTraits, 64 > FChannelOverrideProviderTraitsHandle
Definition IMovieSceneChannelOverrideProvider.h:73
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition IMovieSceneChannelOverrideProvider.h:19
FName GetChannelName(int32 InIndex) const
Definition IMovieSceneChannelOverrideProvider.h:36
TArray< FName > ChannelNames
Definition IMovieSceneChannelOverrideProvider.h:46
int32 GetIndex(const FName &InChannelName) const
Definition IMovieSceneChannelOverrideProvider.h:26
FChannelOverrideNames(int32 InIndexOffset, std::initializer_list< FName > InChannelNames)
Definition IMovieSceneChannelOverrideProvider.h:20
int32 IndexOffset
Definition IMovieSceneChannelOverrideProvider.h:47
Definition IMovieSceneChannelOverrideProvider.h:54
virtual ~FChannelOverrideProviderTraits()
Definition IMovieSceneChannelOverrideProvider.h:55
virtual FName GetChannelOverrideName(int32 EntityID) const =0
virtual int32 GetChannelOverrideEntityID(FName ChannelName) const =0
virtual FName GetDefaultChannelTypeName(FName ChannelName) const =0
Definition IMovieSceneChannelOverrideProvider.h:108
virtual int32 GetChannelOverrideEntityID(FName ChannelName) const override
Definition IMovieSceneChannelOverrideProvider.h:124
virtual FName GetChannelOverrideName(int32 EntityID) const override
Definition IMovieSceneChannelOverrideProvider.h:129
const FChannelOverrideNames * ChannelNames
Definition IMovieSceneChannelOverrideProvider.h:109
FName ChannelTypes[sizeof...(OverrideChannelTypes)]
Definition IMovieSceneChannelOverrideProvider.h:110
virtual FName GetDefaultChannelTypeName(FName ChannelName) const override
Definition IMovieSceneChannelOverrideProvider.h:117
TNamedChannelOverrideProviderTraits(const FChannelOverrideNames *InChannelNames)
Definition IMovieSceneChannelOverrideProvider.h:112
Definition IMovieSceneChannelOverrideProvider.h:80
virtual int32 GetChannelOverrideEntityID(FName ChannelName) const override
Definition IMovieSceneChannelOverrideProvider.h:93
virtual FName GetChannelOverrideName(int32 EntityID) const override
Definition IMovieSceneChannelOverrideProvider.h:99
FName SingleChannelName
Definition IMovieSceneChannelOverrideProvider.h:81
virtual FName GetDefaultChannelTypeName(FName ChannelName) const override
Definition IMovieSceneChannelOverrideProvider.h:88
TSingleChannelOverrideProviderTraits(FName InChannelName)
Definition IMovieSceneChannelOverrideProvider.h:83