UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IntegralCurve.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 "Curves/KeyHandle.h"
9#include "IntegralCurve.generated.h"
10
11
13USTRUCT()
15{
17public:
18
19 FIntegralKey(float InTime = 0.f, int32 InValue = 0)
20 : Time(InTime)
21 , Value(InValue)
22 { }
23
25 UPROPERTY(EditAnywhere, Category=Key)
27
29 UPROPERTY(EditAnywhere, Category=Key)
31};
32
33
35USTRUCT()
38{
40
41public:
42
46 , DefaultValue(MAX_int32)
47 , bUseDefaultValueBeforeFirstKey(false)
48 { }
49
51 virtual ~FIntegralCurve() { }
52
54 virtual int32 GetNumKeys() const override final { return Keys.Num(); }
55
57 virtual FIndexedCurve* Duplicate() const final { return new FIntegralCurve(*this); }
58
60 ENGINE_API int32 Evaluate(float Time, int32 InDefaultValue = 0) const;
61
65 bool HasAnyData() const
66 {
67 return DefaultValue != MAX_int32 || Keys.Num();
68 }
69
72
79 ENGINE_API FKeyHandle AddKey( float InTime, int32 InValue, FKeyHandle KeyHandle = FKeyHandle() );
80
82 ENGINE_API void DeleteKey(FKeyHandle KeyHandle);
83
86
88 ENGINE_API virtual void SetKeyTime(FKeyHandle KeyHandle, float NewTime) override final;
89
91 ENGINE_API virtual float GetKeyTime(FKeyHandle KeyHandle) const override final;
92
94 ENGINE_API void SetKeyValue(FKeyHandle KeyHandle, int32 NewValue);
95
97 ENGINE_API int32 GetKeyValue(FKeyHandle KeyHandle) const;
98
101
103 int32 GetDefaultValue() const { return DefaultValue; }
104
106 void ClearDefaultValue() { DefaultValue = MAX_int32; }
107
110
112 bool GetUseDefaultValueBeforeFirstKey() const { return bUseDefaultValueBeforeFirstKey; }
113
115 ENGINE_API FIntegralKey& GetKey(FKeyHandle KeyHandle);
116 ENGINE_API FIntegralKey GetKey(FKeyHandle KeyHandle) const;
117
119
121 ENGINE_API FKeyHandle FindKeyBeforeOrAt(float KeyTime) const;
122
124 ENGINE_API void RemoveRedundantKeys();
125private:
126
128 UPROPERTY(EditAnywhere, Category="Curve")
129 TArray<FIntegralKey> Keys;
130
132 UPROPERTY(EditAnywhere, Category="Curve")
133 int32 DefaultValue;
134
135 UPROPERTY()
136 bool bUseDefaultValueBeforeFirstKey;
137};
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 MAX_int32
Definition NumericLimits.h:25
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition Array.h:670
Definition Array.h:64
@ false
Definition radaudio_common.h:23
Definition IndexedCurve.h:18
Definition IntegralCurve.h:38
void ClearDefaultValue()
Definition IntegralCurve.h:106
void SetDefaultValue(int32 InDefaultValue)
Definition IntegralCurve.h:100
virtual int32 GetNumKeys() const override final
Definition IntegralCurve.h:54
int32 GetDefaultValue() const
Definition IntegralCurve.h:103
virtual FIndexedCurve * Duplicate() const final
Definition IntegralCurve.h:57
virtual ~FIntegralCurve()
Definition IntegralCurve.h:51
FIntegralCurve()
Definition IntegralCurve.h:44
bool GetUseDefaultValueBeforeFirstKey() const
Definition IntegralCurve.h:112
void SetUseDefaultValueBeforeFirstKey(bool InbUseDefaultValueBeforeFirstKey)
Definition IntegralCurve.h:109
bool HasAnyData() const
Definition IntegralCurve.h:65
Definition IntegralCurve.h:15
FIntegralKey(float InTime=0.f, int32 InValue=0)
Definition IntegralCurve.h:19
Definition KeyHandle.h:15