UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Anim::DataModel::FHasherBase< SubClassType > Class Template Reference

#include <AnimDataModelHasher.h>

Public Member Functions

void UpdateBytes (const uint8 *Data, int32 Size, const TCHAR *Name)
 
void BeginObject (const TCHAR *Name=nullptr)
 
void EndObject ()
 
template<typename T >
void UpdateData (const T &Data, const TCHAR *Name)
 
template<typename T >
void UpdateArray (const TArray< T > &Array, const TCHAR *Name)
 
template<typename T >
void UpdateArray (TConstArrayView< T > Array, const TCHAR *Name)
 
void UpdateString (const FString &Data, const TCHAR *Name)
 
void UpdateLegacyString (const FString &Data, const TCHAR *Name)
 
void UpdateRichCurve (const FRichCurve &Curve, const TCHAR *Name)
 
void UpdateVectorCurve (const FVectorCurve &VectorCurve, const TCHAR *Name)
 
void UpdateAnimatedBoneAttributes (TConstArrayView< FAnimatedBoneAttribute > AnimatedBoneAttributes, const TCHAR *Name)
 
void UpdateTransformCurves (TConstArrayView< FTransformCurve > TransformCurves, const TCHAR *Name)
 

Detailed Description

template<typename SubClassType>
class UE::Anim::DataModel::FHasherBase< SubClassType >

Base class of Hasher classes used by IAnimationDataModel classes to share code between GenerateGuid and GenerateDebugStateString. This class uses no virtuals for performance; the function that takes a Hasher should be templated on the type of the Hasher.

This base class shows the required interface and some convenience functions. It uses the Curiously Recurring Template Pattern to call the Subclass's version of internal function calls.

Member Function Documentation

◆ BeginObject()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::BeginObject ( const TCHAR Name = nullptr)
inline

◆ EndObject()

◆ UpdateAnimatedBoneAttributes()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateAnimatedBoneAttributes ( TConstArrayView< FAnimatedBoneAttribute AnimatedBoneAttributes,
const TCHAR Name 
)
inline

◆ UpdateArray() [1/2]

template<typename SubClassType >
template<typename T >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateArray ( const TArray< T > &  Array,
const TCHAR Name 
)
inline

◆ UpdateArray() [2/2]

template<typename SubClassType >
template<typename T >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateArray ( TConstArrayView< T >  Array,
const TCHAR Name 
)
inline

◆ UpdateBytes()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateBytes ( const uint8 Data,
int32  Size,
const TCHAR Name 
)
inline

◆ UpdateData()

template<typename SubClassType >
template<typename T >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateData ( const T &  Data,
const TCHAR Name 
)
inline

◆ UpdateLegacyString()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateLegacyString ( const FString &  Data,
const TCHAR Name 
)
inline

Previously, some code was serializing strings as GetCharArray, which includes the null terminator, and we did not want to change behavior because it would change the key. Those sites call UpdateLegacyString instead, and the subclasses that want to preserve the key override it.

◆ UpdateRichCurve()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateRichCurve ( const FRichCurve Curve,
const TCHAR Name 
)
inline

◆ UpdateString()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateString ( const FString &  Data,
const TCHAR Name 
)
inline

◆ UpdateTransformCurves()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateTransformCurves ( TConstArrayView< FTransformCurve TransformCurves,
const TCHAR Name 
)
inline

◆ UpdateVectorCurve()

template<typename SubClassType >
void UE::Anim::DataModel::FHasherBase< SubClassType >::UpdateVectorCurve ( const FVectorCurve VectorCurve,
const TCHAR Name 
)
inline

The documentation for this class was generated from the following file: