更新 Source/FLESHEditor/Public/FLESHEditor.h
This commit is contained in:
@@ -2,112 +2,60 @@
|
|||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
#include "Toolkits/AssetEditorToolkit.h"
|
#include "Toolkits/AssetEditorToolkit.h"
|
||||||
#include "Widgets/Docking/SDockTab.h"
|
#include "EditorUndoClient.h"
|
||||||
|
|
||||||
|
class USkeletalMesh;
|
||||||
class SDockTab;
|
class SDockTab;
|
||||||
class SGraphEditor;
|
class IDetailsView;
|
||||||
class SPropertyTreeView;
|
class SBorder;
|
||||||
class SAssetBrowser;
|
|
||||||
class SMatrixInputWidget;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FLESH Main Editor
|
* Dismemberment System Editor
|
||||||
* Provides the main editing functionality for the dismemberment system
|
* Provides real-time boolean cutting and multi-layer system editing functionality
|
||||||
*/
|
*/
|
||||||
class FLESHEDITOR_API FFLESHEditor : public FAssetEditorToolkit
|
class FDismembermentEditor : public FAssetEditorToolkit, public FEditorUndoClient
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FFLESHEditor();
|
FDismembermentEditor();
|
||||||
virtual ~FFLESHEditor();
|
virtual ~FDismembermentEditor();
|
||||||
|
|
||||||
// Initialize the editor
|
void InitDismembermentEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost>& InitToolkitHost, USkeletalMesh* InSkeletalMesh);
|
||||||
void InitFLESHEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost>& InitToolkitHost, UObject* InObject);
|
|
||||||
|
virtual FName GetToolkitFName() const override;
|
||||||
// FAssetEditorToolkit interface
|
virtual FText GetBaseToolkitName() const override;
|
||||||
virtual void RegisterTabSpawners(const TSharedRef<FTabManager>& TabManager) override;
|
virtual FString GetWorldCentricTabPrefix() const override;
|
||||||
virtual void UnregisterTabSpawners(const TSharedRef<FTabManager>& TabManager) override;
|
virtual FLinearColor GetWorldCentricTabColorScale() const override;
|
||||||
virtual FName GetToolkitFName() const override;
|
|
||||||
virtual FText GetBaseToolkitName() const override;
|
virtual void PostUndo(bool bSuccess) override;
|
||||||
virtual FString GetWorldCentricTabPrefix() const override;
|
virtual void PostRedo(bool bSuccess) override;
|
||||||
virtual FLinearColor GetWorldCentricTabColorScale() const override;
|
|
||||||
// End of FAssetEditorToolkit interface
|
|
||||||
|
|
||||||
// Open the editor
|
|
||||||
static void OpenEditor();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Tab spawners
|
void CreateEditorLayout();
|
||||||
TSharedRef<SDockTab> SpawnTab_Viewport(const FSpawnTabArgs& Args);
|
void CreateEditorToolbar();
|
||||||
TSharedRef<SDockTab> SpawnTab_Details(const FSpawnTabArgs& Args);
|
|
||||||
TSharedRef<SDockTab> SpawnTab_AssetBrowser(const FSpawnTabArgs& Args);
|
void RegisterTabSpawners(const TSharedRef<FTabManager>& InTabManager);
|
||||||
TSharedRef<SDockTab> SpawnTab_MatrixEditor(const FSpawnTabArgs& Args);
|
void UnregisterTabSpawners(const TSharedRef<FTabManager>& InTabManager);
|
||||||
TSharedRef<SDockTab> SpawnTab_GraphEditor(const FSpawnTabArgs& Args);
|
|
||||||
TSharedRef<SDockTab> SpawnTab_Toolbar(const FSpawnTabArgs& Args);
|
TSharedRef<SDockTab> SpawnTab_Viewport(const FSpawnTabArgs& Args);
|
||||||
|
TSharedRef<SDockTab> SpawnTab_Details(const FSpawnTabArgs& Args);
|
||||||
// Create viewport widget
|
TSharedRef<SDockTab> SpawnTab_LayerSystem(const FSpawnTabArgs& Args);
|
||||||
TSharedRef<SWidget> CreateViewportWidget();
|
TSharedRef<SDockTab> SpawnTab_PhysicsSettings(const FSpawnTabArgs& Args);
|
||||||
|
|
||||||
// Create details panel
|
void PerformBooleanCut();
|
||||||
TSharedRef<SWidget> CreateDetailsWidget();
|
void AddNewLayer();
|
||||||
|
void SaveEdits();
|
||||||
// Create asset browser
|
void PreviewEffects();
|
||||||
TSharedRef<SWidget> CreateAssetBrowserWidget();
|
|
||||||
|
private:
|
||||||
// Create matrix editor
|
USkeletalMesh* SkeletalMesh;
|
||||||
TSharedRef<SWidget> CreateMatrixEditorWidget();
|
|
||||||
|
TSharedPtr<SBorder> ViewportWidget;
|
||||||
// Create graph editor
|
TSharedPtr<IDetailsView> DetailsWidget;
|
||||||
TSharedRef<SWidget> CreateGraphEditorWidget();
|
TSharedPtr<SBorder> LayerSystemWidget;
|
||||||
|
TSharedPtr<SBorder> PhysicsSettingsWidget;
|
||||||
// Create toolbar
|
|
||||||
TSharedRef<SWidget> CreateToolbarWidget();
|
static const FName ViewportTabId;
|
||||||
|
static const FName DetailsTabId;
|
||||||
// Create command list
|
static const FName LayerSystemTabId;
|
||||||
void CreateCommandList();
|
static const FName PhysicsSettingsTabId;
|
||||||
|
|
||||||
// Command handlers
|
|
||||||
void OnOpenDismembermentGraphEditor();
|
|
||||||
void OnOpenAnatomicalLayerEditor();
|
|
||||||
void OnOpenBooleanCutTool();
|
|
||||||
void OnOpenBloodSystemEditor();
|
|
||||||
void OnImportCharacterModel();
|
|
||||||
void OnImportOrganModel();
|
|
||||||
void OnImportSkeletonModel();
|
|
||||||
void OnImportPhysicsAsset();
|
|
||||||
void OnTestMatrix();
|
|
||||||
|
|
||||||
// Viewport widget
|
|
||||||
TSharedPtr<class SViewport> ViewportWidget;
|
|
||||||
|
|
||||||
// Details panel
|
|
||||||
TSharedPtr<class IDetailsView> DetailsWidget;
|
|
||||||
|
|
||||||
// Asset browser
|
|
||||||
TSharedPtr<SAssetBrowser> AssetBrowserWidget;
|
|
||||||
|
|
||||||
// Matrix editor
|
|
||||||
TSharedPtr<SMatrixInputWidget> MatrixEditorWidget;
|
|
||||||
|
|
||||||
// Graph editor
|
|
||||||
TSharedPtr<SGraphEditor> GraphEditorWidget;
|
|
||||||
|
|
||||||
// Toolbar
|
|
||||||
TSharedPtr<class SBorder> ToolbarWidget;
|
|
||||||
|
|
||||||
// Command list
|
|
||||||
TSharedPtr<FUICommandList> CommandList;
|
|
||||||
|
|
||||||
// The object being edited
|
|
||||||
UObject* EditingObject;
|
|
||||||
|
|
||||||
// Flag to track if the editor is initialized
|
|
||||||
bool bIsEditorInitialized;
|
|
||||||
|
|
||||||
// Tab IDs
|
|
||||||
static const FName ViewportTabId;
|
|
||||||
static const FName DetailsTabId;
|
|
||||||
static const FName AssetBrowserTabId;
|
|
||||||
static const FName MatrixEditorTabId;
|
|
||||||
static const FName GraphEditorTabId;
|
|
||||||
static const FName ToolbarTabId;
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user