UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneCurveChannelCommon.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Curves/RichCurve.h"
7#include "KeyParams.h"
8#include "Misc/FrameNumber.h"
9#include "MovieSceneChannel.h"
12#include "UObject/Class.h"
14
15#include "MovieSceneCurveChannelCommon.generated.h"
16
17class FArchive;
18template <typename T> struct TIsPODType;
19
20
24USTRUCT()
26{
28
30 : ArriveTangent(0.f)
31 , LeaveTangent(0.f)
32 , ArriveTangentWeight(0.f)
33 , LeaveTangentWeight(0.f)
34 , TangentWeightMode(RCTWM_WeightedNone)
35
36 {}
37
38 bool Serialize(FArchive& Ar);
39 bool operator==(const FMovieSceneTangentData& Other) const;
40 bool operator!=(const FMovieSceneTangentData& Other) const;
42 {
43 P.Serialize(Ar);
44 return Ar;
45 }
46
48 UPROPERTY(EditAnywhere, Category = "Key")
49 float ArriveTangent;
50
52 UPROPERTY(EditAnywhere, Category = "Key")
53 float LeaveTangent;
54
56 UPROPERTY(EditAnywhere, Category = "Key")
57 float ArriveTangentWeight;
58
60 UPROPERTY(EditAnywhere, Category = "Key")
61 float LeaveTangentWeight;
62
64 UPROPERTY(EditAnywhere, Category = "Key")
66
67 // This is required because TMovieSceneCurveChannelImpl<ChannelType>::Serialize dumps us as a byte array so we need padding to be initialized to avoid indeterminism in the cooked build
68 uint8 UnserializedPaddingBytes[3] = {0};
69};
70
71// Make sure padding size matches our expectation
72static_assert(sizeof(FMovieSceneTangentData) ==
75 "Adjust padding size to avoid cooked build indeterminism with uninitialized padded data");
76
77
78template<>
80{
81 enum { Value = true };
82};
83
84
85template<>
97
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 GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
ERichCurveTangentWeightMode
Definition RichCurve.h:33
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition EnumAsByte.h:22
Definition MovieSceneCurveChannelCommon.h:26
TEnumAsByte< ERichCurveTangentWeightMode > TangentWeightMode
Definition MovieSceneCurveChannelCommon.h:65
friend FArchive & operator<<(FArchive &Ar, FMovieSceneTangentData &P)
Definition MovieSceneCurveChannelCommon.h:41
float ArriveTangent
Definition MovieSceneCurveChannelCommon.h:49
float LeaveTangent
Definition MovieSceneCurveChannelCommon.h:53
float ArriveTangentWeight
Definition MovieSceneCurveChannelCommon.h:57
float LeaveTangentWeight
Definition MovieSceneCurveChannelCommon.h:61
uint8 UnserializedPaddingBytes[3]
Definition MovieSceneCurveChannelCommon.h:68
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