添加 Source/FLESHEditor/Public/DismembermentEditor.h
This commit is contained in:
61
Source/FLESHEditor/Public/DismembermentEditor.h
Normal file
61
Source/FLESHEditor/Public/DismembermentEditor.h
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "Toolkits/AssetEditorToolkit.h"
|
||||||
|
#include "EditorUndoClient.h"
|
||||||
|
|
||||||
|
class USkeletalMesh;
|
||||||
|
class SDockTab;
|
||||||
|
class IDetailsView;
|
||||||
|
class SBorder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dismemberment System Editor
|
||||||
|
* Provides real-time boolean cutting and multi-layer system editing functionality
|
||||||
|
*/
|
||||||
|
class FDismembermentEditor : public FAssetEditorToolkit, public FEditorUndoClient
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FDismembermentEditor();
|
||||||
|
virtual ~FDismembermentEditor();
|
||||||
|
|
||||||
|
void InitDismembermentEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost>& InitToolkitHost, USkeletalMesh* InSkeletalMesh);
|
||||||
|
|
||||||
|
virtual FName GetToolkitFName() const override;
|
||||||
|
virtual FText GetBaseToolkitName() const override;
|
||||||
|
virtual FString GetWorldCentricTabPrefix() const override;
|
||||||
|
virtual FLinearColor GetWorldCentricTabColorScale() const override;
|
||||||
|
|
||||||
|
virtual void PostUndo(bool bSuccess) override;
|
||||||
|
virtual void PostRedo(bool bSuccess) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void CreateEditorLayout();
|
||||||
|
void CreateEditorToolbar();
|
||||||
|
|
||||||
|
void RegisterTabSpawners(const TSharedRef<FTabManager>& InTabManager);
|
||||||
|
void UnregisterTabSpawners(const TSharedRef<FTabManager>& InTabManager);
|
||||||
|
|
||||||
|
TSharedRef<SDockTab> SpawnTab_Viewport(const FSpawnTabArgs& Args);
|
||||||
|
TSharedRef<SDockTab> SpawnTab_Details(const FSpawnTabArgs& Args);
|
||||||
|
TSharedRef<SDockTab> SpawnTab_LayerSystem(const FSpawnTabArgs& Args);
|
||||||
|
TSharedRef<SDockTab> SpawnTab_PhysicsSettings(const FSpawnTabArgs& Args);
|
||||||
|
|
||||||
|
void PerformBooleanCut();
|
||||||
|
void AddNewLayer();
|
||||||
|
void SaveEdits();
|
||||||
|
void PreviewEffects();
|
||||||
|
|
||||||
|
private:
|
||||||
|
USkeletalMesh* SkeletalMesh;
|
||||||
|
|
||||||
|
TSharedPtr<SBorder> ViewportWidget;
|
||||||
|
TSharedPtr<IDetailsView> DetailsWidget;
|
||||||
|
TSharedPtr<SBorder> LayerSystemWidget;
|
||||||
|
TSharedPtr<SBorder> PhysicsSettingsWidget;
|
||||||
|
|
||||||
|
static const FName ViewportTabId;
|
||||||
|
static const FName DetailsTabId;
|
||||||
|
static const FName LayerSystemTabId;
|
||||||
|
static const FName PhysicsSettingsTabId;
|
||||||
|
};
|
Reference in New Issue
Block a user