UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneAnimTypeID.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
7#include "CoreMinimal.h"
8#include "CoreTypes.h"
9#include "Misc/ScopeLock.h"
10#include "Templates/TypeHash.h"
11
12class FString;
14
64
84template<typename T, uint8 Seed = 0>
86{
87private:
88 // Only T should construct this (to ensure safe construction over DLL boundaries)
89 friend T;
90
92 : FMovieSceneAnimTypeID(&CachedID, Seed)
93 {
94 }
95 static uint64 CachedID;
96};
97template<typename T, uint8 Seed> uint64 TMovieSceneAnimTypeID<T, Seed>::CachedID = 0;
98
99
101template<typename DataType>
103{
106 {
108
110 if (Index != INDEX_NONE)
111 {
113 return Value;
114 }
115
116 Data.Add(InPredicate);
117
118 FTypeID NewID(this, TypeIDs.Num());
119 TypeIDs.Add(NewID);
120
121 return NewID;
122 }
123
124private:
125
126 struct FTypeID : FMovieSceneAnimTypeID
127 {
128 FTypeID(void* Base, uint32 InIndex)
129 {
130 ID = GenerateHash(Base, InIndex);
131 }
132 };
133
135
138
140 TArray<DataType> Data;
141};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
SizeType IndexOfByKey(const KeyType &Key) const
Definition Array.h:1403
Definition Mutex.h:18
Definition ScopeLock.h:21
U16 Index
Definition radfft.cpp:71
Definition MovieSceneAnimTypeID.h:20
friend MOVIESCENE_API FString LexToString(const FMovieSceneAnimTypeID &)
Definition MovieSceneAnimTypeID.cpp:5
static MOVIESCENE_API uint64 GenerateHash(void *StaticPtr, uint32 Seed)
Definition MovieSceneAnimTypeID.cpp:18
friend bool operator==(FMovieSceneAnimTypeID A, FMovieSceneAnimTypeID B)
Definition MovieSceneAnimTypeID.h:21
friend bool operator!=(FMovieSceneAnimTypeID A, FMovieSceneAnimTypeID B)
Definition MovieSceneAnimTypeID.h:26
FMovieSceneAnimTypeID(uint64 *StaticPtr, uint32 Seed=0)
Definition MovieSceneAnimTypeID.h:44
uint64 ID
Definition MovieSceneAnimTypeID.h:62
static MOVIESCENE_API FMovieSceneAnimTypeID Unique()
Definition MovieSceneAnimTypeID.cpp:37
FMovieSceneAnimTypeID()
Definition MovieSceneAnimTypeID.h:47
friend uint32 GetTypeHash(FMovieSceneAnimTypeID In)
Definition MovieSceneAnimTypeID.h:31
Definition MovieSceneAnimTypeID.h:103
FMovieSceneAnimTypeID GetAnimTypeID(const DataType &InPredicate)
Definition MovieSceneAnimTypeID.h:105
Definition MovieSceneAnimTypeID.h:86