Backend-neutral prefab capture, instantiate and override planning. 更多...
#include <EditorPrefab.h>
Public 类型 | |
| using | PrefabResolver = std::function< Result< PrefabAssetSnapshot >(const AssetGuid &)> |
Public 成员函数 | |
| Result< PrefabAssetSnapshot > | capture (const AssetGuid &asset, const SceneTargetBase &scene, const ObjectId &root) const |
| Capture one scene subtree as a deterministic prefab asset. | |
| Result< PrefabInstancePlan > | instantiate (const PrefabAssetSnapshot &prefab, const std::string &instanceId, const ObjectId &parent, const SceneTargetBase &scene) const |
| Plan collision-safe creation of a prefab below one scene parent. | |
| Result< std::vector< DomainOperation > > | revertOverrides (const PrefabAssetSnapshot &prefab, const std::string &instanceId, const ObjectId &parent, const SceneTargetBase &scene) const |
| Plan operations reverting one instance to its source prefab revision. | |
| Result< PrefabAssetSnapshot > | applyOverrides (const PrefabAssetSnapshot &prefab, const std::string &instanceId, const ObjectId &parent, const SceneTargetBase &scene) const |
| Produce a new prefab revision from one structurally compatible instance. | |
| Result< std::vector< PrefabOverrideRecord > > | inspectOverrides (const PrefabAssetSnapshot &prefab, const std::string &instanceId, const ObjectId &parent, const SceneTargetBase &scene) const |
| Compare one instance with its source and return stable override badges. | |
| PrefabDependencyReport | inspectDependencies (const PrefabAssetSnapshot &prefab, const PrefabResolver &resolver) const |
| Resolve the complete nested dependency graph and diagnose cycles/stale pins. | |
| Result< PrefabAssetSnapshot > | refreshNestedRevisions (const PrefabAssetSnapshot &prefab, const PrefabResolver &resolver) const |
| Refresh direct nested revision pins and bump the parent only when they changed. | |
| EditorValue | snapshotValue (const PrefabAssetSnapshot &prefab) const |
| Convert a prefab snapshot to deterministic persisted data. | |
| Result< PrefabAssetSnapshot > | loadSnapshot (const EditorValue &snapshot) const |
| Parse and validate a persisted prefab snapshot atomically. | |
详细描述
Backend-neutral prefab capture, instantiate and override planning.
在文件 EditorPrefab.h 第 57 行定义.
成员类型定义说明
◆ PrefabResolver
| using eve::editor::ScenePrefabService::PrefabResolver = std::function<Result<PrefabAssetSnapshot>(const AssetGuid&)> |
在文件 EditorPrefab.h 第 59 行定义.
成员函数说明
◆ applyOverrides()
| Result< PrefabAssetSnapshot > eve::editor::ScenePrefabService::applyOverrides | ( | const PrefabAssetSnapshot & | prefab, |
| const std::string & | instanceId, | ||
| const ObjectId & | parent, | ||
| const SceneTargetBase & | scene | ||
| ) | const |
Produce a new prefab revision from one structurally compatible instance.
在文件 EditorPrefab.cpp 第 220 行定义.
引用了 eve::editor::PrefabAssetSnapshot::objects, ok, parent, prefab, eve::editor::PrefabAssetSnapshot::revision, scene, source, eve::UuidIdAdapter< Tag >::value() , 以及 value.
◆ capture()
| Result< PrefabAssetSnapshot > eve::editor::ScenePrefabService::capture | ( | const AssetGuid & | asset, |
| const SceneTargetBase & | scene, | ||
| const ObjectId & | root | ||
| ) | const |
Capture one scene subtree as a deterministic prefab asset.
在文件 EditorPrefab.cpp 第 95 行定义.
引用了 eve::editor::PrefabAssetSnapshot::asset, children, eve::UuidIdAdapter< Tag >::empty(), id, index, name, ok, parent, pending, prefab, root, scene, eve::UuidIdAdapter< Tag >::value() , 以及 value.
◆ inspectDependencies()
| PrefabDependencyReport eve::editor::ScenePrefabService::inspectDependencies | ( | const PrefabAssetSnapshot & | prefab, |
| const PrefabResolver & | resolver | ||
| ) | const |
Resolve the complete nested dependency graph and diagnose cycles/stale pins.
在文件 EditorPrefab.cpp 第 289 行定义.
引用了 code, eve::Conflict, current, eve::editor::PrefabDependencyReport::dependencyOrder, eve::editor::PrefabDependencyReport::diagnostics, eve::InvalidArgument, message, eve::NotFound, eve::PreconditionViolation, prefab, eve::editor::PrefabDependencyReport::rootAsset, eve::editor::PrefabDependencyReport::rootRevision, eve::editing::ruleDiagnostic(), eve::editor::PrefabDependencyReport::status, valid , 以及 visiting.
被这些函数引用 refreshNestedRevisions().
◆ inspectOverrides()
| Result< std::vector< PrefabOverrideRecord > > eve::editor::ScenePrefabService::inspectOverrides | ( | const PrefabAssetSnapshot & | prefab, |
| const std::string & | instanceId, | ||
| const ObjectId & | parent, | ||
| const SceneTargetBase & | scene | ||
| ) | const |
◆ instantiate()
| Result< PrefabInstancePlan > eve::editor::ScenePrefabService::instantiate | ( | const PrefabAssetSnapshot & | prefab, |
| const std::string & | instanceId, | ||
| const ObjectId & | parent, | ||
| const SceneTargetBase & | scene | ||
| ) | const |
Plan collision-safe creation of a prefab below one scene parent.
在文件 EditorPrefab.cpp 第 124 行定义.
引用了 eve::editing::DomainOperation::affectedObjects, eve::editing::DomainOperation::hasInverse, id, eve::scene_editing::CreateSceneObjectRequest::id, eve::editor::PrefabInstancePlan::instanceId, eve::editing::DomainOperation::inverse, eve::editing::DomainOperation::inverseType, ok, operation, eve::editor::PrefabInstancePlan::operations, parent, payload, eve::editing::DomainOperation::payload, prefab, request, scene, eve::editor::PrefabInstancePlan::sourceAsset, sourceId, eve::editor::PrefabInstancePlan::sourceRevision, eve::editing::DomainOperation::target, eve::editing::DomainOperation::type, eve::UuidIdAdapter< Tag >::value() , 以及 value.
◆ loadSnapshot()
| Result< PrefabAssetSnapshot > eve::editor::ScenePrefabService::loadSnapshot | ( | const EditorValue & | snapshot | ) | const |
Parse and validate a persisted prefab snapshot atomically.
在文件 EditorPrefab.cpp 第 384 行定义.
引用了 eve::Result< T >::failure(), eve::editing::Value::getIf(), name, parentId, pinned, prefab, revision, root, valid, eve::UuidIdAdapter< Tag >::value() , 以及 value.
◆ refreshNestedRevisions()
| Result< PrefabAssetSnapshot > eve::editor::ScenePrefabService::refreshNestedRevisions | ( | const PrefabAssetSnapshot & | prefab, |
| const PrefabResolver & | resolver | ||
| ) | const |
Refresh direct nested revision pins and bump the parent only when they changed.
在文件 EditorPrefab.cpp 第 346 行定义.
引用了 inspectDependencies(), eve::editor::PrefabAssetSnapshot::objects, prefab , 以及 eve::editor::PrefabAssetSnapshot::revision.
◆ revertOverrides()
| Result< std::vector< DomainOperation > > eve::editor::ScenePrefabService::revertOverrides | ( | const PrefabAssetSnapshot & | prefab, |
| const std::string & | instanceId, | ||
| const ObjectId & | parent, | ||
| const SceneTargetBase & | scene | ||
| ) | const |
Plan operations reverting one instance to its source prefab revision.
在文件 EditorPrefab.cpp 第 175 行定义.
引用了 eve::editing::failed(), ok, operation, parent, prefab, scene, source, eve::UuidIdAdapter< Tag >::value() , 以及 value.
◆ snapshotValue()
| EditorValue eve::editor::ScenePrefabService::snapshotValue | ( | const PrefabAssetSnapshot & | prefab | ) | const |
Convert a prefab snapshot to deterministic persisted data.
在文件 EditorPrefab.cpp 第 370 行定义.
引用了 prefab.
该类的文档由以下文件生成:
- src/modules/scene/editor/EditorPrefab.h
- src/modules/scene/editor/EditorPrefab.cpp