// 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" #define UE_API DETAILCUSTOMIZATIONS_API class IDetailLayoutBuilder; class IPropertyHandle; class UObject; class FBodySetupDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static UE_API TSharedRef MakeInstance(); /** IDetailCustomization interface */ UE_API virtual void CustomizeDetails( IDetailLayoutBuilder& DetailBuilder ) override; virtual void CustomizeCoMNudge(IDetailLayoutBuilder& DetailBuilder, TSharedRef BodyInstanceHandler) {}; private: UE_API 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; }; #undef UE_API