UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CurveSequence.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Containers/Ticker.h"
8
10class SWidget;
11enum class EActiveTimerReturnType : uint8;
12
25struct FCurveSequence : public TSharedFromThis<FCurveSequence>
26{
27public:
28
52
55
58
68
78
93
102 SLATECORE_API void Play( const TSharedRef<SWidget>& InOwnerWidget, bool bPlayLooped = false, const float StartAtTime = 0.0f, bool bRequiresActiveTimer = true);
103
107 SLATECORE_API void Play(const FTickerDelegate& InDelegate, bool bPlayLooped = false, const float StartAtTime = 0.0f);
108
117 SLATECORE_API void PlayReverse( const TSharedRef<SWidget>& InOwnerWidget, bool bPlayLooped = false, const float StartAtTime = 0.0f, bool bRequiresActiveTimer = true);
118
120 SLATECORE_API void Reverse( );
121
123 SLATECORE_API void Pause();
124
126 SLATECORE_API void Resume( );
127
130
136 SLATECORE_API bool IsPlaying( ) const;
137
139 SLATECORE_API float GetSequenceTime( ) const;
140
142 SLATECORE_API bool IsInReverse( ) const;
143
145 SLATECORE_API bool IsForward( ) const;
146
149
151 SLATECORE_API void JumpToEnd( );
152
154 SLATECORE_API bool IsAtStart( ) const;
155
157 SLATECORE_API bool IsAtEnd( ) const;
158
160 SLATECORE_API bool IsLooping() const;
161
168 SLATECORE_API float GetLerp() const;
169
175 SLATECORE_API const FCurveSequence::FSlateCurve& GetCurve( int32 CurveIndex ) const;
176
177protected:
178
181
182private:
184 void RegisterActiveTimerIfNeeded(TSharedRef<SWidget> InOwnerWidget);
185
187 bool TickPlay(float InDeltaTime, FTickerDelegate InUserDelegate);
188
190 EActiveTimerReturnType EnsureSlateTickDuringAnimation( double InCurrentTime, float InDeltaTime );
191
192private:
193
198 TWeakPtr<SWidget> OwnerWidget;
199
201 TWeakPtr<FActiveTimerHandle> ActiveTimerHandle;
202
204 FTSTicker::FDelegateHandle TickerHandle;
205
207 TArray<FSlateCurve> Curves;
208
210 double StartTime;
211
213 double PauseTime;
214
216 double TotalDuration;
217
219 uint8 bInReverse : 1;
220
222 uint8 bIsLooping : 1;
223
225 uint8 bIsPaused : 1;
226};
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
ECurveEaseFunction
Definition CurveHandle.h:12
EActiveTimerReturnType
Definition SlateEnums.h:329
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition ActiveTimerHandle.h:12
Definition SWidget.h:165
Definition Array.h:670
Definition SharedPointer.h:1640
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition CurveHandle.h:40
Definition CurveSequence.h:31
ECurveEaseFunction EaseFunction
Definition CurveSequence.h:50
float DurationSeconds
Definition CurveSequence.h:41
float StartTime
Definition CurveSequence.h:44
FSlateCurve(float InStartTime, float InDurationSeconds, const ECurveEaseFunction InEaseFunction)
Definition CurveSequence.h:33
Definition CurveSequence.h:26
SLATECORE_API const FCurveSequence::FSlateCurve & GetCurve(int32 CurveIndex) const
Definition CurveSequence.cpp:263
SLATECORE_API ~FCurveSequence()
Definition CurveSequence.cpp:35
SLATECORE_API FCurveHandle AddCurve(const float InStartTimeSeconds, const float InDurationSeconds, const ECurveEaseFunction InEaseFunction=ECurveEaseFunction::Linear)
Definition CurveSequence.cpp:49
SLATECORE_API void Resume()
Definition CurveSequence.cpp:142
SLATECORE_API void SetStartTime(double InStartTime)
Definition CurveSequence.cpp:194
SLATECORE_API FCurveHandle AddCurveRelative(const float InOffset, const float InDurationSecond, const ECurveEaseFunction InEaseFunction=ECurveEaseFunction::Linear)
Definition CurveSequence.cpp:62
SLATECORE_API bool IsInReverse() const
Definition CurveSequence.cpp:208
SLATECORE_API FCurveSequence()
Definition CurveSequence.cpp:12
SLATECORE_API float GetSequenceTime() const
Definition CurveSequence.cpp:199
SLATECORE_API void PlayReverse(const TSharedRef< SWidget > &InOwnerWidget, bool bPlayLooped=false, const float StartAtTime=0.0f, bool bRequiresActiveTimer=true)
Definition CurveSequence.cpp:118
SLATECORE_API void PlayRelative(const TSharedRef< SWidget > &InOwnerWidget, bool bForward)
Definition CurveSequence.cpp:160
SLATECORE_API bool IsAtEnd() const
Definition CurveSequence.cpp:244
SLATECORE_API void JumpToEnd()
Definition CurveSequence.cpp:229
SLATECORE_API void JumpToStart()
Definition CurveSequence.cpp:220
SLATECORE_API void Pause()
Definition CurveSequence.cpp:133
SLATECORE_API float GetLerp() const
Definition CurveSequence.cpp:254
SLATECORE_API void Reverse()
Definition CurveSequence.cpp:100
SLATECORE_API bool IsPlaying() const
Definition CurveSequence.cpp:188
SLATECORE_API bool IsForward() const
Definition CurveSequence.cpp:214
SLATECORE_API bool IsLooping() const
Definition CurveSequence.cpp:249
SLATECORE_API bool IsAtStart() const
Definition CurveSequence.cpp:238