Files
UnrealEngine/Engine/Source/Editor/PhysicsAssetEditor/Public/PhysicsAssetEditorModule.h
2025-05-18 13:04:45 +08:00

35 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Toolkits/AssetEditorToolkit.h"
class UPhysicsAsset;
class IPhysicsAssetEditor;
DECLARE_LOG_CATEGORY_EXTERN(LogPhysicsAssetEditor, Log, All);
/** Delegate called when a physics asset editor is created */
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPhysicsAssetEditorCreated, const TSharedRef<IPhysicsAssetEditor>& /*InPhysicsAssetEditor*/);
/*-----------------------------------------------------------------------------
IPhysicsAssetEditorModule
-----------------------------------------------------------------------------*/
class IPhysicsAssetEditorModule : public IModuleInterface,
public IHasMenuExtensibility, public IHasToolBarExtensibility
{
public:
/** Creates a new PhysicsAssetEditor instance */
virtual TSharedRef<IPhysicsAssetEditor> CreatePhysicsAssetEditor(const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, UPhysicsAsset* PhysicsAsset) = 0;
/** Delegate called when a physics asset editor is created */
virtual FOnPhysicsAssetEditorCreated& OnPhysicsAssetEditorCreated() = 0;
/** Opens a "New Asset/Body" modal dialog window */
virtual void OpenNewBodyDlg(EAppReturnType::Type* NewBodyResponse) = 0;
};