UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneBoolChannel.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
8#include "CoreTypes.h"
9#include "HAL/PlatformCrt.h"
10#include "Math/Range.h"
11#include "Misc/FrameNumber.h"
12#include "Misc/FrameTime.h"
13#include "Misc/Optional.h"
14#include "MovieSceneChannel.h"
19#include "UObject/Class.h"
21#include "Curves/RealCurve.h"
22
23#include "MovieSceneBoolChannel.generated.h"
24
25struct FFrameRate;
26struct FKeyHandle;
27struct FPropertyTag;
28
29
30USTRUCT()
32{
34
36
38 : PreInfinityExtrap(RCCE_Constant), PostInfinityExtrap(RCCE_Constant), DefaultValue(false), bHasDefaultValue(false)
39 {}
40
44 MOVIESCENE_API bool SerializeFromMismatchedTag(const FPropertyTag& Tag, FStructuredArchive::FSlot Slot);
45
52 {
53 return TMovieSceneChannelData<bool>(&Times, &Values, this, &KeyHandles);
54 }
55
62 {
63 return TMovieSceneChannelData<const bool>(&Times, &Values);
64 }
65
70 {
71 return Times;
72 }
73
78 {
79 return Values;
80 }
81
85 inline bool HasAnyData() const
86 {
87 return Times.Num() != 0 || bHasDefaultValue == true;
88 }
89
97 MOVIESCENE_API virtual bool Evaluate(FFrameTime InTime, bool& OutValue) const;
98
105 {
106 check(InTimes.Num() == InValues.Num());
107 Times.Append(InTimes);
108 Values.Append(InValues);
109 }
110
111public:
112
113 // ~ FMovieSceneChannel Interface
118 MOVIESCENE_API virtual void DeleteKeys(TArrayView<const FKeyHandle> InHandles) override;
119 MOVIESCENE_API virtual void DeleteKeysFrom(FFrameNumber InTime, bool bDeleteKeysBefore) override;
120 MOVIESCENE_API virtual void RemapTimes(const UE::MovieScene::IRetimingInterface& Retimer) override;
121 MOVIESCENE_API virtual TRange<FFrameNumber> ComputeEffectiveRange() const override;
122 MOVIESCENE_API virtual int32 GetNumKeys() const override;
123 MOVIESCENE_API virtual void Reset() override;
124 MOVIESCENE_API virtual void Offset(FFrameNumber DeltaPosition) override;
125 MOVIESCENE_API virtual void Optimize(const FKeyDataOptimizationParams& InParameters) override;
126 MOVIESCENE_API virtual void ClearDefault() override;
127 MOVIESCENE_API virtual FKeyHandle GetHandle(int32 Index) override;
128 MOVIESCENE_API virtual int32 GetIndex(FKeyHandle Handle) override;
129
130public:
131
137 inline void SetDefault(bool InDefaultValue)
138 {
139 bHasDefaultValue = true;
140 DefaultValue = InDefaultValue;
141 }
142
149 {
150 return bHasDefaultValue ? TOptional<bool>(DefaultValue) : TOptional<bool>();
151 }
152
156 inline void RemoveDefault()
157 {
158 bHasDefaultValue = false;
159 }
160public:
162 UPROPERTY()
164
166 UPROPERTY()
168
170
171 UPROPERTY(meta=(KeyTimes))
173
174 UPROPERTY()
175 bool DefaultValue;
176
177 UPROPERTY()
178 bool bHasDefaultValue;
179
180 UPROPERTY(meta=(KeyValues))
181 TArray<bool> Values;
182
186};
187
188template<>
190{
191 enum { WithStructuredSerializeFromMismatchedTag = true };
192};
193
194template<>
196{
197#if WITH_EDITORONLY_DATA
198
201
202#endif
203};
#define check(expr)
Definition AssertionMacros.h:314
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 UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
ERichCurveExtrapolation
Definition RealCurve.h:27
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition StructuredArchiveSlots.h:52
Definition ArrayView.h:139
Definition Array.h:670
Definition EnumAsByte.h:22
Definition Range.h:50
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition FrameNumber.h:18
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition MovieSceneChannelTraits.h:20
Definition KeyHandle.h:15
Definition MovieSceneBoolChannel.h:32
TOptional< bool > GetDefault() const
Definition MovieSceneBoolChannel.h:148
bool HasAnyData() const
Definition MovieSceneBoolChannel.h:85
void AddKeys(const TArray< FFrameNumber > &InTimes, const TArray< bool > &InValues)
Definition MovieSceneBoolChannel.h:104
TArrayView< const bool > GetValues() const
Definition MovieSceneBoolChannel.h:77
bool CurveValueType
Definition MovieSceneBoolChannel.h:35
void RemoveDefault()
Definition MovieSceneBoolChannel.h:156
TArrayView< const FFrameNumber > GetTimes() const
Definition MovieSceneBoolChannel.h:69
virtual TMovieSceneChannelData< bool > GetData()
Definition MovieSceneBoolChannel.h:51
virtual TMovieSceneChannelData< const bool > GetData() const
Definition MovieSceneBoolChannel.h:61
void SetDefault(bool InDefaultValue)
Definition MovieSceneBoolChannel.h:137
Definition MovieSceneChannel.h:112
Definition MovieSceneChannelData.h:37
Definition PropertyTag.h:38
Definition MovieSceneChannelData.h:259
Definition MovieSceneChannelTraits.h:39
Definition MovieSceneChannelTraits.h:63
Definition Optional.h:131
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition IMovieSceneRetimingInterface.h:18