EM_Task/UnrealEd/Public/Tools/EditorComponentSourceFactory.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

37 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "ComponentSourceInterfaces.h"
#include "Components/PrimitiveComponent.h"
#include "Components/StaticMeshComponent.h"
class UNREALED_API FStaticMeshComponentTargetFactory: public FComponentTargetFactory
{
public:
bool CanBuild(UActorComponent* Candidate) override;
TUniquePtr<FPrimitiveComponentTarget> Build(UPrimitiveComponent* PrimitiveComponent) override;
};
class UNREALED_API FStaticMeshComponentTarget: public FPrimitiveComponentTarget
{
public:
FStaticMeshComponentTarget(UPrimitiveComponent* Component)
: FPrimitiveComponentTarget(Cast<UStaticMeshComponent>(Component)) {}
virtual bool IsValid() const override;
virtual void GetMaterialSet(FComponentMaterialSet& MaterialSetOut, bool bAssetMaterials) const override;
FMeshDescription* GetMesh() override;
void CommitMesh(const FCommitter&) override;
virtual void CommitMaterialSetUpdate(const FComponentMaterialSet& MaterialSet, bool bApplyToAsset) override;
virtual bool HasSameSourceData(const FPrimitiveComponentTarget& OtherTarget) const override;
static const int LODIndex{0};
};