Files
UnrealEngine/Engine/Plugins/Runtime/HairStrands/Source/HairStrandsEditor/Private/GroomBindingDetailsCustomization.h
2025-05-18 13:04:45 +08:00

46 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IDetailCustomization.h"
class UGroomHairGroupsMapping;
class IDetailChildrenBuilder;
class IPropertyHandle;
struct FGroomBindingAttributeSelection
{
int32 SelectedBindingAttribute = INDEX_NONE;
TArray<FName> BindingAttributeNames;
};
class FGroomBindingDetailsCustomization : public IDetailCustomization
{
public:
/** Begin IDetailCustomization interface */
virtual void CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder) override;
/** End IDetailCustomization interface */
static TSharedRef<IDetailCustomization> MakeInstance();
FGroomBindingAttributeSelection BindingAttributeSelection;
};
class FGroomCreateBindingDetailsCustomization : public IDetailCustomization
{
public:
/** Begin IDetailCustomization interface */
virtual void CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder) override;
/** End IDetailCustomization interface */
static TSharedRef<IDetailCustomization> MakeInstance();
FGroomBindingAttributeSelection BindingAttributeSelection;
};
class FGroomHairGroomRemappingDetailsCustomization : public IDetailCustomization
{
public:
/** Begin IDetailCustomization interface */
virtual void CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder) override;
void OnGenerateElementForBindingAsset(TSharedRef<IPropertyHandle> StructProperty, int32 InIndex, IDetailChildrenBuilder& ChildrenBuilder, IDetailLayoutBuilder* DetailLayout, UGroomHairGroupsMapping* InMapping);
/** End IDetailCustomization interface */
static TSharedRef<IDetailCustomization> MakeInstance();
};