7#include "Containers/Array.h"
30template <
typename SubClassType>
38 checkf(
false,
TEXT(
"Subclass must implement"));
42 checkf(
false,
TEXT(
"Subclass must implement"));
46 checkf(
false,
TEXT(
"Subclass must implement"));
54 TypedThis()->UpdateBytes(
reinterpret_cast<const uint8*
>(&Data),
sizeof(Data), Name);
59 TypedThis()->UpdateBytes(
reinterpret_cast<const uint8*
>(
Array.GetData()),
Array.Num() *
Array.GetTypeSize(), Name);
64 TypedThis()->UpdateBytes(
reinterpret_cast<const uint8*
>(
Array.GetData()),
Array.Num() *
Array.GetTypeSize(), Name);
68 TypedThis()->UpdateBytes(
reinterpret_cast<const uint8*
>(*Data), Data.Len() *
sizeof((*Data)[0]), Name);
77 TypedThis()->UpdateString(Data, Name);
84 Hasher.BeginObject(Name);
85 Hasher.UpdateData(Curve.DefaultValue,
TEXT(
"D"));
86 Hasher.UpdateArray(Curve.GetConstRefOfKeys(),
TEXT(
"K"));
87 Hasher.UpdateData(Curve.PreInfinityExtrap,
TEXT(
"E"));
88 Hasher.UpdateData(Curve.PostInfinityExtrap,
TEXT(
"O"));
96 Hasher.BeginObject(Name);
97 for (
int32 ChannelIndex = 0; ChannelIndex < 3; ++ChannelIndex)
99 Hasher.UpdateRichCurve(VectorCurve.
FloatCurves[ChannelIndex],
TEXT(
"C"));
108 Hasher.BeginObject(Name);
115 Hasher.BeginObject();
116 Hasher.UpdateLegacyString(
Attribute.Identifier.GetName().ToString(),
TEXT(
"N"));
117 Hasher.UpdateLegacyString(
Attribute.Identifier.GetBoneName().ToString(),
TEXT(
"BN"));
118 Hasher.UpdateData(
Attribute.Identifier.GetBoneIndex(),
TEXT(
"BI"));
119 Hasher.UpdateLegacyString(
TypeStruct->GetFName().ToString(),
TEXT(
"T"));
120 Hasher.BeginObject(
TEXT(
"K"));
123 Hasher.BeginObject();
124 Hasher.UpdateData(Key.Time,
TEXT(
"T"));
128 Hasher.UpdateData(KeyHash,
TEXT(
"H"));
146 Hasher.BeginObject(Name);
149 Hasher.BeginObject();
150 Hasher.UpdateLegacyString(Curve.GetName().ToString(),
TEXT(
"N"));
151 Hasher.UpdateVectorCurve(Curve.TranslationCurve,
TEXT(
"T"));
152 Hasher.UpdateVectorCurve(Curve.RotationCurve,
TEXT(
"R"));
153 Hasher.UpdateVectorCurve(Curve.ScaleCurve,
TEXT(
"S"));
192 checkf(!bFinalized,
TEXT(
"Calling FinalGuid more than once is not implemented."));
203 bool bFinalized =
false;
216 void UpdateString(
const FString& Data,
const TCHAR*
Name)
220 void BeginObject(
const TCHAR*
Name =
nullptr)
233 FString GetString()
const
235 return FString(
Text);
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Size
Definition VulkanMemory.cpp:4034
Definition SecureHash.h:314
CORE_API void Update(const uint8 *data, uint64 len)
Definition SecureHash.cpp:1205
CORE_API void UpdateWithString(const TCHAR *data, uint32 len)
Definition SecureHash.cpp:1240
CORE_API void GetHash(uint8 *puDest) const
Definition SecureHash.cpp:1269
CORE_API void Final()
Definition SecureHash.cpp:1245
Definition StringBuilder.h:509
Definition AnimDataModelHasher.h:32
void UpdateAnimatedBoneAttributes(TConstArrayView< FAnimatedBoneAttribute > AnimatedBoneAttributes, const TCHAR *Name)
Definition AnimDataModelHasher.h:104
void EndObject()
Definition AnimDataModelHasher.h:44
void UpdateData(const T &Data, const TCHAR *Name)
Definition AnimDataModelHasher.h:52
void UpdateRichCurve(const FRichCurve &Curve, const TCHAR *Name)
Definition AnimDataModelHasher.h:80
void UpdateVectorCurve(const FVectorCurve &VectorCurve, const TCHAR *Name)
Definition AnimDataModelHasher.h:92
void UpdateTransformCurves(TConstArrayView< FTransformCurve > TransformCurves, const TCHAR *Name)
Definition AnimDataModelHasher.h:142
void UpdateArray(TConstArrayView< T > Array, const TCHAR *Name)
Definition AnimDataModelHasher.h:62
void UpdateLegacyString(const FString &Data, const TCHAR *Name)
Definition AnimDataModelHasher.h:75
void UpdateArray(const TArray< T > &Array, const TCHAR *Name)
Definition AnimDataModelHasher.h:57
void UpdateBytes(const uint8 *Data, int32 Size, const TCHAR *Name)
Definition AnimDataModelHasher.h:36
void BeginObject(const TCHAR *Name=nullptr)
Definition AnimDataModelHasher.h:40
void UpdateString(const FString &Data, const TCHAR *Name)
Definition AnimDataModelHasher.h:66
Definition AnimDataModelHasher.h:169
void BeginObject(const TCHAR *Name=nullptr)
Definition AnimDataModelHasher.h:183
void EndObject()
Definition AnimDataModelHasher.h:186
FGuid FinalGuid()
Definition AnimDataModelHasher.h:190
void UpdateBytes(const uint8 *Data, int32 Size, const TCHAR *Name)
Definition AnimDataModelHasher.h:171
void UpdateString(const FString &Data, const TCHAR *Name)
Definition AnimDataModelHasher.h:175
void UpdateLegacyString(const FString &Data, const TCHAR *Name)
Definition AnimDataModelHasher.h:179
UE_FORCEINLINE_HINT int32 GetPropertiesSize() const
Definition Class.h:763
Definition IAnimationDataModel.h:16
void BytesToHex(TConstArrayView< uint8 > Bytes, ANSICHAR *OutHex)
Definition BytesToHex.cpp:27
Definition IAnimationDataModel.h:105
Definition AttributeCurve.h:23
Definition RichCurve.h:200
Definition AnimCurveTypes.h:256
FRichCurve FloatCurves[3]
Definition AnimCurveTypes.h:269