62 lines
1.8 KiB
C++
62 lines
1.8 KiB
C++
#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;
|
|
};
|