UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NameCurve.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 "UObject/Class.h"
8#include "Curves/KeyHandle.h"
10#include "NameCurve.generated.h"
11
15USTRUCT()
17{
19
20
21 UPROPERTY(EditAnywhere, Category="Key")
23
25 UPROPERTY(EditAnywhere, Category="Key")
27
30 : Time(0.0f)
32 { }
33
36 : Time(InTime)
37 , Value(InValue)
38 { }
39
40public:
41
42 // TStructOpsTypeTraits interface
43
44 ENGINE_API bool operator==(const FNameCurveKey& Other) const;
45 ENGINE_API bool operator!=(const FNameCurveKey& Other) const;
47
50 {
51 Key.Serialize(Ar);
52 return Ar;
53 }
54};
55
56
57template<>
59{
60 enum { Value = true };
61};
62
63
64template<>
76
77
81USTRUCT()
84{
86
87
89
90public:
91
99 ENGINE_API FKeyHandle AddKey(float InTime, const FName& InValue, FKeyHandle KeyHandle = FKeyHandle());
100
106 ENGINE_API void DeleteKey(FKeyHandle KeyHandle);
107
116
123 ENGINE_API FNameCurveKey& GetKey(FKeyHandle KeyHandle);
124 ENGINE_API FNameCurveKey GetKey(FKeyHandle KeyHandle) const;
125
132 {
133 return Keys;
134 }
135
142 ENGINE_API virtual float GetKeyTime(FKeyHandle KeyHandle) const override final;
143
150 ENGINE_API virtual void SetKeyTime(FKeyHandle KeyHandle, float NewTime) override final;
151
159 ENGINE_API FKeyHandle UpdateOrAddKey(float InTime, const FName& InValue, float KeyTimeTolerance = UE_KINDA_SMALL_NUMBER);
160
161public:
162
163 // FIndexedCurve interface
164
165 virtual int32 GetNumKeys() const override final { return Keys.Num(); }
166
168 virtual FIndexedCurve* Duplicate() const final { return new FNameCurve(*this); }
169
170public:
171
173 UPROPERTY(EditAnywhere, EditFixedSize, Category="Curve")
175};
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
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Array.h:670
Definition IndexedCurve.h:18
Definition KeyHandle.h:15
Definition NameCurve.h:17
friend FArchive & operator<<(FArchive &Ar, FNameCurveKey &Key)
Definition NameCurve.h:49
FNameCurveKey(float InTime, const FName &InValue)
Definition NameCurve.h:35
Definition NameCurve.h:84
const TArray< FNameCurveKey > & GetKeys() const
Definition NameCurve.h:131
virtual int32 GetNumKeys() const override final
Definition NameCurve.h:165
virtual FIndexedCurve * Duplicate() const final
Definition NameCurve.h:168
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13
Definition StructOpsTypeTraits.h:11
@ WithIdenticalViaEquality
Definition StructOpsTypeTraits.h:18
@ WithCopy
Definition StructOpsTypeTraits.h:17
@ WithSerializer
Definition StructOpsTypeTraits.h:23
static constexpr EPropertyObjectReferenceType WithSerializerObjectReferences
Definition StructOpsTypeTraits.h:41
Definition StructOpsTypeTraits.h:46