载入中...
搜索中...
未找到
PhysicsEditorModule.cpp
浏览该文件的文档.
2
4#include "editor/Editor.h"
6
7#include <simplesquirrel/simplesquirrel.hpp>
8
9#include <stdexcept>
10#include <utility>
11
13
17
19
21 auto* editor = requireModInst(eve::editor, Editor);
22 if (!editor) throw std::runtime_error("Physics editor requires the Editor host");
23 auto registered = physics_editing::registerEditingProvider(editor->extensionProviders());
24 if (!registered.ok())
25 throw std::runtime_error("Failed to register the Physics editing provider: " +
26 registered.status().describe());
27 impl_->provider = std::move(registered).takeValue();
28}
29
31 auto* editor = getModInst(eve::editor, Editor);
32 if (!editor || impl_->provider.id.empty()) return;
33 editor->extensionProviders()
34 .unload(impl_->provider)
35 .ignore("physics editor adapter shutdown");
36}
37
38void PhysicsEditorModule::expose(ssq::Table& table) {
39 table.addClass(name, PhysicsEditorModule::create, false);
40}
41
42void PhysicsEditorModule::expose(ssq::Class&) {}
43
44} // namespace eve::physics_editor
std::string name
#define Module_IMPL(ModuleName, newExpr)
Definition Module.h:26
#define requireModInst(N, T)
Definition Module.h:39
#define getModInst(N, T)
Definition Module.h:38
Composition adapter that publishes Physics editing capabilities into the live Editor host.
PhysicsEditorModule()
Constructs a PhysicsEditorModule.
~PhysicsEditorModule() override
Releases PhysicsEditorModule resources.
editing::Result< editing::ProviderHandle > registerEditingProvider(editing::ExtensionProviderRegistry &registry)
Publish the physics editing factory into a host-owned extension registry.
ProviderHandle public API.