Files
UnrealEngine/Engine/Plugins/ChaosVD/Source/ChaosVDBuiltInExtensions/Public/ChaosVDBuiltInExtensions.h
2025-05-18 13:04:45 +08:00

33 lines
855 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "ExtensionsSystem/ChaosVDExtensionsManager.h"
#include "Modules/ModuleManager.h"
class FChaosVDExtension;
class FChaosVDBuiltInExtensionsModule : public IModuleInterface
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
private:
template <typename ExtensionType>
void CreateAndRegisterExtensionInstance();
void UnregisterCreatedExtensions();
TArray<TWeakPtr<FChaosVDExtension>> AvailableExtensions;
};
template <typename ExtensionType>
void FChaosVDBuiltInExtensionsModule::CreateAndRegisterExtensionInstance()
{
TSharedRef<ExtensionType> NewExtension = MakeShared<ExtensionType>();
FChaosVDExtensionsManager::Get().RegisterExtension(NewExtension);
AvailableExtensions.Add(NewExtension);
}