UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneInterpolation.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Misc/FrameNumber.h"
7#include "Misc/FrameTime.h"
8#include "Misc/FrameRate.h"
9#include "Misc/TVariant.h"
10
11
21{
22
23struct FInvalidValue;
24struct FConstantValue;
25struct FLinearInterpolation;
26struct FQuadraticInterpolation;
27struct FCubicInterpolation;
28struct FQuarticInterpolation;
29struct FCubicBezierInterpolation;
30struct FWeightedCubicInterpolation;
31
32
51template<typename T, int MinN>
53{
57 template<int N>
58 TInterpSolutions(T (&In)[N]) requires (N >= MinN)
59 : Array(In)
60 {}
61
65 template<int OtherN>
67 {
68 return TInterpSolutions<T, OtherN>(Array);
69 }
70
74 T& operator[](int Index) const
75 {
77 return Array[Index];
78 }
79
80private:
81
82 template<typename U, int OtherN>
83 friend struct TInterpSolutions;
84
85 explicit TInterpSolutions(T* InArray)
86 : Array(InArray)
87 {}
88
89 T* Array;
90};
91
92
93
98{
99 double MinValue = std::numeric_limits<double>::max();
100 double MaxValue = std::numeric_limits<double>::lowest();
101
104
105 MOVIESCENE_API bool IsValid() const;
106
108
110};
111
117{
118};
119
120
126{
128 double Value;
129
131
132 UE_DEPRECATED(5.5, "Please provide an origin. This is required for Integral() to work correctly.")
136
141
144};
145
189
233
281
324
367
372{
373 double DX;
378
382 double EndWeight;
383
385
389
390 FFrameNumber StartTime,
391 double StartValue,
392 double StartTangent,
393 double StartTangentWeight,
394 bool bStartIsWeighted,
395
396 FFrameNumber EndTime,
397 double EndValue,
398 double EndTangent,
399 double EndTangentWeight,
400 bool bEndIsWeighted);
401
402 double Evaluate(FFrameTime InTime) const;
403
404
409};
410
454
460{
477
481 MOVIESCENE_API bool IsValid() const;
482
487 MOVIESCENE_API bool IsCacheValidForTime(FFrameNumber FrameNumber) const;
488
493
501 MOVIESCENE_API bool Evaluate(FFrameTime FrameTime, double& OutResult) const;
502
504
506
508
511
512 MOVIESCENE_API void Offset(double Amount);
513
514private:
515
525
528};
529
530} // namespace UE::MovieScene
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition TVariant.h:48
Definition MovieSceneCurveChannelImpl.h:17
U16 Index
Definition radfft.cpp:71
Definition FrameNumber.h:18
int32 Value
Definition FrameNumber.h:77
Definition FrameRate.h:21
Definition FrameTime.h:16
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition Optional.h:131
Definition MovieSceneInterpolation.h:415
static MOVIESCENE_API FCachedInterpolationRange Empty()
Definition MovieSceneInterpolation.cpp:38
MOVIESCENE_API bool IsEmpty() const
Definition MovieSceneInterpolation.cpp:71
static MOVIESCENE_API FCachedInterpolationRange From(FFrameNumber InStart)
Definition MovieSceneInterpolation.cpp:58
static MOVIESCENE_API FCachedInterpolationRange Finite(FFrameNumber InStart, FFrameNumber InEnd)
Definition MovieSceneInterpolation.cpp:42
static MOVIESCENE_API FCachedInterpolationRange Infinite()
Definition MovieSceneInterpolation.cpp:46
FFrameNumber End
Definition MovieSceneInterpolation.h:452
FFrameNumber Clamp(FFrameNumber In) const
Definition MovieSceneInterpolation.h:430
static MOVIESCENE_API FCachedInterpolationRange Only(FFrameNumber InTime)
Definition MovieSceneInterpolation.cpp:50
static MOVIESCENE_API FCachedInterpolationRange Until(FFrameNumber InEnd)
Definition MovieSceneInterpolation.cpp:62
FFrameNumber Start
Definition MovieSceneInterpolation.h:450
FFrameTime Clamp(FFrameTime In) const
Definition MovieSceneInterpolation.h:437
MOVIESCENE_API bool Contains(FFrameNumber FrameNumber) const
Definition MovieSceneInterpolation.cpp:66
Definition MovieSceneInterpolation.h:460
MOVIESCENE_API bool IsValid() const
Definition MovieSceneInterpolation.cpp:124
MOVIESCENE_API TOptional< FCachedInterpolation > ComputeDerivative() const
Definition MovieSceneInterpolation.cpp:346
MOVIESCENE_API FInterpolationExtents ComputeExtents() const
Definition MovieSceneInterpolation.cpp:139
MOVIESCENE_API bool IsCacheValidForTime(FFrameNumber FrameNumber) const
Definition MovieSceneInterpolation.cpp:129
MOVIESCENE_API FCachedInterpolationRange GetRange() const
Definition MovieSceneInterpolation.cpp:134
MOVIESCENE_API int32 InverseEvaluate(double InValue, TInterpSolutions< FFrameTime, 4 > OutResults) const
Definition MovieSceneInterpolation.cpp:379
MOVIESCENE_API bool Evaluate(FFrameTime FrameTime, double &OutResult) const
Definition MovieSceneInterpolation.cpp:236
MOVIESCENE_API FCachedInterpolation()
Definition MovieSceneInterpolation.cpp:76
MOVIESCENE_API TOptional< FCachedInterpolation > ComputeIntegral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:313
Definition MovieSceneInterpolation.h:126
MOVIESCENE_API FLinearInterpolation Integral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:459
FConstantValue(FFrameNumber InOrigin, double InValue)
Definition MovieSceneInterpolation.h:137
double Value
Definition MovieSceneInterpolation.h:128
MOVIESCENE_API FConstantValue Derivative() const
Definition MovieSceneInterpolation.cpp:454
FFrameNumber Origin
Definition MovieSceneInterpolation.h:130
Definition MovieSceneInterpolation.h:329
double P0
Definition MovieSceneInterpolation.h:333
MOVIESCENE_API FQuadraticInterpolation Derivative() const
Definition MovieSceneInterpolation.cpp:789
MOVIESCENE_API FQuarticInterpolation Integral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:793
double P2
Definition MovieSceneInterpolation.h:333
FFrameNumber Origin
Definition MovieSceneInterpolation.h:335
MOVIESCENE_API double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:778
MOVIESCENE_API int32 Solve(double InValue, TInterpSolutions< FFrameTime, 4 > OutResults) const
Definition MovieSceneInterpolation.cpp:798
MOVIESCENE_API FCubicInterpolation AsCubic() const
Definition MovieSceneInterpolation.cpp:755
double P3
Definition MovieSceneInterpolation.h:333
double DX
Definition MovieSceneInterpolation.h:331
double P1
Definition MovieSceneInterpolation.h:333
Definition MovieSceneInterpolation.h:238
FFrameNumber Origin
Definition MovieSceneInterpolation.h:247
MOVIESCENE_API double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:555
MOVIESCENE_API FQuadraticInterpolation Derivative() const
Definition MovieSceneInterpolation.cpp:607
MOVIESCENE_API FQuarticInterpolation Integral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:612
MOVIESCENE_API int32 Solve(double Value, TInterpSolutions< FFrameTime, 3 > OutResults) const
Definition MovieSceneInterpolation.cpp:566
double A
Definition MovieSceneInterpolation.h:240
double B
Definition MovieSceneInterpolation.h:240
MOVIESCENE_API int32 SolveWithin(FFrameTime Start, FFrameTime End, double Value, TInterpSolutions< FFrameTime, 3 > OutResults) const
Definition MovieSceneInterpolation.cpp:586
double Constant
Definition MovieSceneInterpolation.h:242
double C
Definition MovieSceneInterpolation.h:240
double DX
Definition MovieSceneInterpolation.h:244
FCubicInterpolation(FFrameNumber InOrigin, double InA, double InB, double InC, double InConstant, double InDX=1.0)
Definition MovieSceneInterpolation.h:249
Definition MovieSceneInterpolation.h:98
MOVIESCENE_API void AddPoint(double Value, FFrameTime Time)
Definition MovieSceneInterpolation.cpp:15
FFrameTime MinValueTime
Definition MovieSceneInterpolation.h:102
FFrameTime MaxValueTime
Definition MovieSceneInterpolation.h:103
double MaxValue
Definition MovieSceneInterpolation.h:100
MOVIESCENE_API bool IsValid() const
Definition MovieSceneInterpolation.cpp:10
double MinValue
Definition MovieSceneInterpolation.h:99
Definition MovieSceneInterpolation.h:117
Definition MovieSceneInterpolation.h:150
MOVIESCENE_API double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:464
double Constant
Definition MovieSceneInterpolation.h:154
FFrameNumber Origin
Definition MovieSceneInterpolation.h:156
FLinearInterpolation(FFrameNumber InOrigin, double InCoefficient, double InConstant)
Definition MovieSceneInterpolation.h:158
MOVIESCENE_API int32 SolveWithin(FFrameTime Start, FFrameTime End, double Value, TInterpSolutions< FFrameTime, 1 > OutResults) const
Definition MovieSceneInterpolation.cpp:484
MOVIESCENE_API FQuadraticInterpolation Integral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:503
double Coefficient
Definition MovieSceneInterpolation.h:152
MOVIESCENE_API int32 Solve(double Value, TInterpSolutions< FFrameTime, 1 > OutResults) const
Definition MovieSceneInterpolation.cpp:469
MOVIESCENE_API FConstantValue Derivative() const
Definition MovieSceneInterpolation.cpp:498
Definition MovieSceneInterpolation.h:194
MOVIESCENE_API FCubicInterpolation Integral(double ConstantOffset=0.0) const
Definition MovieSceneInterpolation.cpp:550
MOVIESCENE_API double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:508
FQuadraticInterpolation(FFrameNumber InOrigin, double InA, double InB, double InConstant)
Definition MovieSceneInterpolation.h:202
double B
Definition MovieSceneInterpolation.h:196
MOVIESCENE_API FLinearInterpolation Derivative() const
Definition MovieSceneInterpolation.cpp:545
double Constant
Definition MovieSceneInterpolation.h:198
MOVIESCENE_API int32 Solve(double Value, TInterpSolutions< FFrameTime, 2 > OutResults) const
Definition MovieSceneInterpolation.cpp:514
double A
Definition MovieSceneInterpolation.h:196
MOVIESCENE_API int32 SolveWithin(FFrameTime Start, FFrameTime End, double Value, TInterpSolutions< FFrameTime, 2 > OutResults) const
Definition MovieSceneInterpolation.cpp:525
FFrameNumber Origin
Definition MovieSceneInterpolation.h:200
Definition MovieSceneInterpolation.h:286
double DX
Definition MovieSceneInterpolation.h:292
MOVIESCENE_API double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:617
double A
Definition MovieSceneInterpolation.h:288
MOVIESCENE_API int32 Solve(double Value, TInterpSolutions< FFrameTime, 4 > OutResults) const
Definition MovieSceneInterpolation.cpp:633
double C
Definition MovieSceneInterpolation.h:288
double D
Definition MovieSceneInterpolation.h:288
FFrameNumber Origin
Definition MovieSceneInterpolation.h:295
double Constant
Definition MovieSceneInterpolation.h:290
FQuarticInterpolation(FFrameNumber InOrigin, double InA, double InB, double InC, double InD, double InConstant, double InDX=1.0)
Definition MovieSceneInterpolation.h:297
MOVIESCENE_API FCubicInterpolation Derivative() const
Definition MovieSceneInterpolation.cpp:628
MOVIESCENE_API int32 SolveWithin(FFrameTime Start, FFrameTime End, double Value, TInterpSolutions< FFrameTime, 4 > OutResults) const
Definition MovieSceneInterpolation.cpp:722
double B
Definition MovieSceneInterpolation.h:288
Definition MovieSceneInterpolation.h:372
double EndKeyValue
Definition MovieSceneInterpolation.h:379
double EndKeyTanY
Definition MovieSceneInterpolation.h:381
double NormalizedStartTanDX
Definition MovieSceneInterpolation.h:375
double StartKeyTanY
Definition MovieSceneInterpolation.h:376
MOVIESCENE_API int32 Solve(double Value, TInterpSolutions< FFrameTime, 4 > OutResults) const
Definition MovieSceneInterpolation.cpp:953
FFrameNumber Origin
Definition MovieSceneInterpolation.h:384
double StartKeyValue
Definition MovieSceneInterpolation.h:374
double Evaluate(FFrameTime InTime) const
Definition MovieSceneInterpolation.cpp:903
double StartWeight
Definition MovieSceneInterpolation.h:377
double EndWeight
Definition MovieSceneInterpolation.h:382
double NormalizedEndTanDX
Definition MovieSceneInterpolation.h:380
double DX
Definition MovieSceneInterpolation.h:373
Definition MovieSceneInterpolation.h:53
T & operator[](int Index) const
Definition MovieSceneInterpolation.h:74
TInterpSolutions(T(&In)[N])
Definition MovieSceneInterpolation.h:58
friend struct TInterpSolutions
Definition MovieSceneInterpolation.h:83