You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
66 lines
2.3 KiB
C++
66 lines
2.3 KiB
C++
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "DetailCustomizationsPrivatePCH.h"
|
|
#include "HierarchicalSimplificationCustomizations.h"
|
|
#include "Developer/MeshUtilities/Public/MeshUtilities.h"
|
|
#include "GameFramework/WorldSettings.h"
|
|
|
|
TSharedRef<IPropertyTypeCustomization> FHierarchicalSimplificationCustomizations::MakeInstance()
|
|
{
|
|
return MakeShareable( new FHierarchicalSimplificationCustomizations );
|
|
}
|
|
|
|
void FHierarchicalSimplificationCustomizations::CustomizeHeader(TSharedRef<IPropertyHandle> StructPropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
|
|
{
|
|
HeaderRow.
|
|
NameContent()
|
|
[
|
|
StructPropertyHandle->CreatePropertyNameWidget()
|
|
]
|
|
.ValueContent()
|
|
[
|
|
StructPropertyHandle->CreatePropertyValueWidget()
|
|
];
|
|
}
|
|
|
|
void FHierarchicalSimplificationCustomizations::CustomizeChildren( TSharedRef<IPropertyHandle> StructPropertyHandle, class IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils )
|
|
{
|
|
uint32 NumChildren;
|
|
StructPropertyHandle->GetNumChildren( NumChildren );
|
|
|
|
TMap<FName, TSharedPtr< IPropertyHandle > > PropertyHandles;
|
|
|
|
for( uint32 ChildIndex = 0; ChildIndex < NumChildren; ++ChildIndex )
|
|
{
|
|
TSharedRef<IPropertyHandle> ChildHandle = StructPropertyHandle->GetChildHandle( ChildIndex ).ToSharedRef();
|
|
const FName PropertyName = ChildHandle->GetProperty()->GetFName();
|
|
|
|
PropertyHandles.Add(PropertyName, ChildHandle);
|
|
}
|
|
|
|
TSharedPtr< IPropertyHandle > SimplifyMeshPropertyHandle = PropertyHandles.FindChecked(GET_MEMBER_NAME_CHECKED(FHierarchicalSimplification, bSimplifyMesh));
|
|
|
|
IDetailPropertyRow& SimplifyMeshRow = ChildBuilder.AddChildProperty(SimplifyMeshPropertyHandle.ToSharedRef());
|
|
SimplifyMeshRow.Visibility(TAttribute<EVisibility>(this, &FHierarchicalSimplificationCustomizations::IsSimplifyMeshVisible));
|
|
|
|
for( auto Iter(PropertyHandles.CreateConstIterator()); Iter; ++Iter )
|
|
{
|
|
if (Iter.Value() != SimplifyMeshPropertyHandle)
|
|
{
|
|
ChildBuilder.AddChildProperty(Iter.Value().ToSharedRef());
|
|
}
|
|
}
|
|
}
|
|
|
|
EVisibility FHierarchicalSimplificationCustomizations::IsSimplifyMeshVisible() const
|
|
{
|
|
IMeshUtilities& MeshUtilities = FModuleManager::Get().LoadModuleChecked<IMeshUtilities>("MeshUtilities");
|
|
if (MeshUtilities.GetMeshMergingInterface() != nullptr)
|
|
{
|
|
return EVisibility::Visible;
|
|
}
|
|
|
|
return EVisibility::Hidden;
|
|
}
|
|
|