// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Templates/Models.h" #include "EntitySystem/MovieSceneEntityIDs.h" #include "EntitySystem/MovieSceneComponentTypeIDs.h" namespace UE::MovieScene { struct FComponentRegistry; template struct TPropertyMetaDataComponents; template struct TPropertyMetaData { static constexpr int32 Num = sizeof...(MetaDataTypes); }; struct CPublicMetaDataRetrievable { template auto Requires() -> typename T::PublicMetaData; }; template> struct TGetPublicPropertyMetaData; template struct TGetPublicPropertyMetaData { using Type = typename PropertyTraits::PublicMetaData; }; template struct TGetPublicPropertyMetaData { using Type = typename PropertyTraits::MetaDataType; }; template using TGetPublicPropertyMetaDataT = typename TGetPublicPropertyMetaData::Type; template struct TPropertyMetaDataComponents> : TComponentTypeIDs { template using MakeTCHARPtr = const TCHAR*; using TComponentTypeIDs::Initialize; // #include "EntitySystem/MovieScenePropertyMetaData.inl" for definition // void Initialize(FComponentRegistry* ComponentRegistry, MakeTCHARPtr... DebugNames); }; } // namespace UE::MovieScene