载入中...
搜索中...
未找到
Editor.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Module.h"
10
11#include <memory>
12#include <string>
13
14namespace eve::editor {
15
16class TransformGizmo;
17class GizmoManager;
18class EditorToolbar;
19class EditorInspector;
20class EditorDock;
21class EditorSession;
22class EditorWorkspace;
23class ScriptEditorTool;
24class ConstantBrushFalloff;
25class LinearBrushFalloff;
26class SmoothBrushFalloff;
27class CircleBrushKernel;
28class BoxBrushKernel;
29class PaintIntFieldOperation;
30class AddScalarFieldOperation;
31class FieldBrushTool;
32class SphereVolumeBrushKernel;
33class BoxVolumeBrushKernel;
34class PaintIntVolumeOperation;
35class VolumeBrushTool;
36class EditorAutomationProvider;
37class EditorTargetCoordinator;
38
47public:
50 Editor();
52 ~Editor() override;
53
55 [[nodiscard]] std::unique_ptr<TransformGizmo> newGizmo();
57 [[nodiscard]] std::unique_ptr<GizmoManager> newGizmoManager();
58
60 [[nodiscard]] std::unique_ptr<EditorToolbar> newToolbar();
62 [[nodiscard]] std::unique_ptr<EditorInspector> newInspector();
64 [[nodiscard]] std::unique_ptr<EditorDock> newDock();
69 [[nodiscard]] std::unique_ptr<EditorSession> newSession();
77 [[nodiscard]] Result<std::unique_ptr<EditorWorkspace>> newWorkspace(const std::string& id,
78 const std::string& title);
80 EditorCommandService& commandService() { return commandService_; }
82 const EditorCommandService& commandService() const { return commandService_; }
84 editing::ExtensionProviderRegistry& extensionProviders() { return extensionProviders_; }
86 const editing::ExtensionProviderRegistry& extensionProviders() const { return extensionProviders_; }
93 [[nodiscard]] Result<void> registerEditingTarget(IEditableTarget& target);
98 [[nodiscard]] Result<void> unregisterEditingTarget(const TargetId& target);
105 [[nodiscard]] Result<void> bindEditingTarget(EditorSession& session, const TargetId& target);
110 [[nodiscard]] std::unique_ptr<ScriptEditorTool> newScriptTool(const std::string& id, const std::string& label);
112 [[nodiscard]] std::unique_ptr<ConstantBrushFalloff> newConstantBrushFalloff();
114 [[nodiscard]] std::unique_ptr<LinearBrushFalloff> newLinearBrushFalloff();
116 [[nodiscard]] std::unique_ptr<SmoothBrushFalloff> newSmoothBrushFalloff();
118 [[nodiscard]] std::unique_ptr<CircleBrushKernel> newCircleBrushKernel();
120 [[nodiscard]] std::unique_ptr<BoxBrushKernel> newBoxBrushKernel();
122 [[nodiscard]] std::unique_ptr<PaintIntFieldOperation> newPaintIntFieldOperation(int value);
124 [[nodiscard]] std::unique_ptr<AddScalarFieldOperation> newAddScalarFieldOperation();
132 [[nodiscard]] std::unique_ptr<FieldBrushTool> newFieldBrushTool(const std::string& id, const std::string& label);
134 [[nodiscard]] std::unique_ptr<SphereVolumeBrushKernel> newSphereVolumeBrushKernel();
136 [[nodiscard]] std::unique_ptr<BoxVolumeBrushKernel> newBoxVolumeBrushKernel();
138 [[nodiscard]] std::unique_ptr<PaintIntVolumeOperation> newPaintIntVolumeOperation(int value);
143 [[nodiscard]] std::unique_ptr<VolumeBrushTool> newVolumeBrushTool(const std::string& id, const std::string& label);
144
145private:
146 editing::ExtensionProviderRegistry extensionProviders_;
147 EditorCommandService commandService_;
148 std::unique_ptr<EditorTargetCoordinator> targets_;
149 std::unique_ptr<EditorAutomationProvider> automation_;
150};
151
152} // namespace eve::editor
LogicalId target
double value
std::string title
std::string label
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::optional< InteractionSession > session
Definition Tactics.cpp:39
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Thread-safe generation-qualified registry for editing extension providers.
IEditableTarget public API.
Registry and execution gate for UI-, script- and automation-neutral commands.
Hosts interchangeable editor tools and routes their lifecycle/input.
Editor building blocks — not a shipped 3D/map editor app. Script: editor <- eve.Editor();
Definition Editor.h:46
const editing::ExtensionProviderRegistry & extensionProviders() const
Return the immutable domain editing provider registry.
Definition Editor.h:86
const EditorCommandService & commandService() const
Return the immutable command registry owned by this editor module.
Definition Editor.h:82
editing::ExtensionProviderRegistry & extensionProviders()
Return the open, generation-safe registry used to discover linked domain editing providers.
Definition Editor.h:84
EditorCommandService & commandService()
Return the UI- and script-neutral command registry owned by this editor module.
Definition Editor.h:80