// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/Array.h" #include "IDetailCustomization.h" #include "Templates/SharedPointer.h" #include "UObject/WeakObjectPtr.h" #include "UObject/WeakObjectPtrTemplates.h" class IDetailLayoutBuilder; class IPropertyHandle; class UObject; class DETAILCUSTOMIZATIONS_API FBodySetupDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); /** IDetailCustomization interface */ virtual void CustomizeDetails( IDetailLayoutBuilder& DetailBuilder ) override; virtual void CustomizeCoMNudge(IDetailLayoutBuilder& DetailBuilder, TSharedRef BodyInstanceHandler) {}; private: void AddPhysicalAnimation(IDetailLayoutBuilder& DetailBuilder); private: TSharedPtr BodyInstanceCustomizationHelper; TArray< TWeakObjectPtr > ObjectsCustomized; TSharedPtr CollisionReponseHandle; }; class FSkeletalBodySetupDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); /** IDetailCustomization interface */ virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override; private: TArray< TWeakObjectPtr > ObjectsCustomized; };