Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Private/Elements/Component/ComponentElementDetailsInterface.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

37 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Elements/Component/ComponentElementDetailsInterface.h"
#include "Components/ActorComponent.h"
#include "Elements/Component/ComponentElementData.h"
#include "UObject/WeakObjectPtr.h"
#include "UObject/WeakObjectPtrTemplates.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(ComponentElementDetailsInterface)
class FComponentTypedElementDetailsObject : public ITypedElementDetailsObject
{
public:
explicit FComponentTypedElementDetailsObject(UActorComponent* InComponent)
: ComponentPtr(InComponent)
{
}
virtual UObject* GetObject() override
{
return ComponentPtr.Get();
}
private:
TWeakObjectPtr<UActorComponent> ComponentPtr;
};
TUniquePtr<ITypedElementDetailsObject> UComponentElementDetailsInterface::GetDetailsObject(const FTypedElementHandle& InElementHandle)
{
if (UActorComponent* Component = ComponentElementDataUtil::GetComponentFromHandle(InElementHandle))
{
return MakeUnique<FComponentTypedElementDetailsObject>(Component);
}
return nullptr;
}