载入中...
搜索中...
未找到
SceneHost.cpp
浏览该文件的文档.
133 eve::Diagnostic::error(eve::DiagnosticCode::Failed, "scene host creation returned null", "scene.host"));
149bool SceneHost::setTreeReconcile(NodeDesc root) { return applyTreeReconcile(this, std::move(root)); }
177 if (index < 0 || value->nodes[size_t(index)].firstChild >= 0) return SceneMutationStatus::Rejected;
208SceneMutationStatus SceneHost::setLocalTransform(const std::string &nodeId, float x, float y, float z,
236 eve::Diagnostic::error(eve::DiagnosticCode::NotFound, "scene node id was not found: " + id, "scene.host"));
248 eve::Diagnostic::error(eve::DiagnosticCode::NotFound, "scene node key was not found: " + key, "scene.host"));
361SceneNode *SceneHost::getParentById(const std::string &id) { return getParent(findIndexById(id)); }
374int SceneHost::getChildCountById(const std::string &id) { return getChildCount(findIndexById(id)); }
481bool SceneHost::addChild(int parentIndex, int childIndex) { return setParent(childIndex, parentIndex); }
506void SceneHost::forEachDepthFirst(int nodeIndex, void (*fn)(SceneHost *, int, void *), void *user) {
510void SceneHost::walkDepthFirst(NodeVisitFn fn) { walkDepthFirstFrom(tree()->root, std::move(fn)); }
540SceneNode *SceneHost::findIf(NodePredFn pred) { return findIfFrom(tree()->root, std::move(pred)); }
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
bool ok() const noexcept
Whether this result represents a non-failure outcome.
Definition Result.h:255
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
A playable audio source (static buffer or streaming decoder). Not thread-safe for playback control ex...
Definition Source.h:30
Default renderable entity for declarative 2D sprites / solid quads.
Definition RenderSystem.h:71
3D rigid body (Box3D) in meter-space coordinates (+Y up by convention). Owned by a World3D; create pr...
Definition Body3D.h:24
2D rigid body (Box2D) in pixel-space coordinates. Owned by a World; create shapes with newRectangleFi...
Definition Body.h:21
ECS mount point for one scene graph (full scene or nested subtree root). Isomorphic to eve::ui::UIHos...
Definition SceneHost.h:89
bool isDescendantOf(int nodeIndex, int ancestorIndex)
Definition SceneHost.cpp:450
eve::Result< SceneNode * > findByName(const std::string &name)
Finds the first node name match with an explicit status.
Definition SceneHost.cpp:251
bool isAncestorOfById(const std::string &ancestorId, const std::string &nodeId)
Definition SceneHost.cpp:446
std::vector< SceneNode * > getChildren(int nodeIndex)
Definition SceneHost.cpp:408
void walkBreadthFirstFrom(int nodeIndex, NodeVisitFn fn)
Definition SceneHost.cpp:520
SceneMutationStatus setLocalTransform(const std::string &nodeId, float x, float y, float z, float yaw, float pitch, float roll, float sx, float sy, float sz)
Replace a node's local TRS and mark its subtree dirty.
Definition SceneHost.cpp:208
bool isDescendantOfById(const std::string &nodeId, const std::string &ancestorId)
Definition SceneHost.cpp:454
int findIndexByName(const std::string &name)
Definition SceneHost.cpp:297
int findIndexById(const std::string &id)
Definition SceneHost.cpp:273
void walkDepthFirstFrom(int nodeIndex, NodeVisitFn fn)
Definition SceneHost.cpp:512
bool setParent(int childIndex, int parentIndex)
Imperative parent link. Returns false on invalid indices or cycle. Prefer declarative NodeDesc + reco...
Definition SceneHost.cpp:458
bool removeChild(int parentIndex, int childIndex)
Definition SceneHost.cpp:483
bool link(const std::string &nodeId, int kind, void *target, int syncMode=0)
Attach an external object to a node id. Survives reconcile/rebuild by id. After TransformSystem the l...
Definition SceneHost.cpp:624
std::vector< int > filterIndices(NodePredFn pred)
Definition SceneHost.cpp:565
bool removeChildById(const std::string &parentId, const std::string &childId)
Definition SceneHost.cpp:704
int getChildIndexAt(int parentIndex, int childOrdinal)
Child ordinal 0..count-1; -1 if out of range.
Definition SceneHost.cpp:376
bool setTreeReconcile(NodeDesc root)
Key-aware patch when structure matches; else full replace.
Definition SceneHost.cpp:149
std::vector< SceneNode * > findAllBySpace(const std::string &space)
Definition SceneHost.cpp:590
int getChildCountById(const std::string &id)
Definition SceneHost.cpp:374
bool linkRenderable3D(const std::string &nodeId, graphics::Renderable3D *r)
Definition SceneHost.cpp:636
bool linkPhysics3D(const std::string &nodeId, physics::Body3D *b, int syncMode=0)
Definition SceneHost.cpp:644
bool isAncestorOf(int ancestorIndex, int nodeIndex)
Definition SceneHost.cpp:439
std::vector< int > filterIndicesFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:569
SceneNode * getChildAt(int parentIndex, int childOrdinal)
Definition SceneHost.cpp:389
std::vector< std::string > collectIdsVisible(bool visible=true)
Definition SceneHost.cpp:620
std::vector< SceneNode * > filterFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:556
std::vector< std::string > getChildIds(const std::string &parentId)
Definition SceneHost.cpp:414
std::function< bool(SceneHost *host, int index, const SceneNode &node)> NodePredFn
Definition SceneHost.h:254
eve::Result< SceneNode * > findById(const std::string &id)
Finds a node by stable id with an explicit status.
Definition SceneHost.cpp:227
std::vector< std::string > collectIdsFrom(int nodeIndex)
Definition SceneHost.cpp:602
static eve::Result< SceneHost * > createHost(const std::string &name="")
Creates an ECS-owned scene host with an explicit Result contract.
Definition SceneHost.cpp:129
std::vector< std::string > collectIdsWhere(NodePredFn pred)
Definition SceneHost.cpp:608
std::vector< std::string > collectIdsByName(const std::string &name)
Definition SceneHost.cpp:616
void forEachDepthFirst(int nodeIndex, void(*fn)(SceneHost *, int, void *), void *user)
Depth-first visit of arena indices under nodeIndex (inclusive). C callback.
Definition SceneHost.cpp:506
std::vector< SceneNode * > findAllLinked()
Definition SceneHost.cpp:594
eve::Result< SceneNode * > findByPath(const std::string &path)
Finds a node path with an explicit status.
Definition SceneHost.cpp:262
SceneMutationStatus removeLeaf(const std::string &nodeId)
Remove a leaf node while preserving every other node and external link.
Definition SceneHost.cpp:174
SceneMutationStatus renameNode(const std::string &nodeId, const std::string &name)
Rename a retained node and emit a node_changed event.
Definition SceneHost.cpp:198
bool linkPhysics2D(const std::string &nodeId, physics::Body *b, int syncMode=0)
Definition SceneHost.cpp:640
SceneNode * getParentById(const std::string &id)
Definition SceneHost.cpp:361
std::string getPathById(const std::string &id)
Definition SceneHost.cpp:437
SceneMutationStatus appendNode(SceneNode node, const std::string &parentId={})
Append one retained node without rebuilding existing nodes or links.
Definition SceneHost.cpp:151
std::vector< int > getChildIndices(int nodeIndex)
Definition SceneHost.cpp:397
void markSubtreeDirty(int nodeIndex)
Mark a node's subtree for world recompute (recompute it + descendants).
Definition SceneHost.cpp:494
bool addChild(int parentIndex, int childIndex)
Definition SceneHost.cpp:481
int findIndexByKey(const std::string &key)
Definition SceneHost.cpp:288
bool addTag(SceneNode *node, const std::string &tag)
Definition SceneHost.cpp:711
std::vector< std::string > collectIds()
Definition SceneHost.cpp:600
std::vector< SceneNode * > findAllVisible(bool visible=true)
Definition SceneHost.cpp:586
void walkAncestors(int nodeIndex, NodeVisitFn fn)
Parent chain upward, excluding self.
Definition SceneHost.cpp:531
std::vector< SceneNode * > filter(NodePredFn pred)
Definition SceneHost.cpp:552
int findIndexByPath(const std::string &path)
Definition SceneHost.cpp:307
std::vector< SceneNode * > findAllByTag(const std::string &tag)
Definition SceneHost.cpp:739
int linkCount(const std::string &nodeId)
Definition SceneHost.cpp:691
bool hasTag(const SceneNode *node, const std::string &tag) const
Definition SceneHost.cpp:731
SceneNode * findIfFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:542
bool linkAudio3D(const std::string &nodeId, audio::Source *s)
Definition SceneHost.cpp:652
bool removeTag(SceneNode *node, const std::string &tag)
Definition SceneHost.cpp:720
bool unlink(const std::string &nodeId, int kind)
Remove all links of a kind; returns true if a link was removed.
Definition SceneHost.cpp:656
std::string getPath(int nodeIndex)
Id path "a/b/c" from root to node; empty if invalid.
Definition SceneHost.cpp:422
std::vector< SceneNode * > findAllByKey(const std::string &key)
Definition SceneHost.cpp:582
bool linkCamera3D(const std::string &nodeId, graphics::Camera3D *c)
Definition SceneHost.cpp:648
std::function< void(SceneHost *host, int index, SceneNode &node)> NodeVisitFn
Definition SceneHost.h:253
void walkDepthFirst(NodeVisitFn fn)
DFS from root (or from nodeIndex), inclusive.
Definition SceneHost.cpp:510
void walkBreadthFirst(NodeVisitFn fn)
BFS from root (or from nodeIndex), inclusive.
Definition SceneHost.cpp:516
eve::Result< SceneNode * > findByKey(const std::string &key)
Finds a node by reconcile key with an explicit status.
Definition SceneHost.cpp:239
bool linkRenderable2D(const std::string &nodeId, graphics::Renderable2D *r)
Definition SceneHost.cpp:632
std::vector< SceneNode * > findAllByName(const std::string &name)
Definition SceneHost.cpp:578
SceneLink * findLink(SceneNode *node, int kind)
Definition SceneHost.cpp:675
SceneNode * getChildAtById(const std::string &parentId, int childOrdinal)
Definition SceneHost.cpp:393
void fireEvent(const std::string &action, const std::string &nodeId, const std::string &parentId={})
Fire "node_added" / "node_removed" / "node_moved" / "node_changed".
Definition SceneHost.cpp:501
bool setParentById(const std::string &childId, const std::string &parentId)
Reparent by id; empty parentId detaches (parent = -1). Cycle-safe.
Definition SceneHost.cpp:696
Definition AvatarInstance.h:33
bool applyTreeReconcile(SceneHost *host, NodeDesc root)
Key-aware patch when structure matches; else full replace. Returns true if full rebuild.
Definition NodeDesc.cpp:323
WidgetDesc child(std::string id, std::vector< WidgetDesc > children, float width, float height)
Scrollable child region with an explicit size.
Definition Widget.cpp:635
@ InvalidArgument
@ NotFound
@ Failed
@ Applied
Declarative scene-node description (build once / on dirty → flatten into SceneHost::Tree)....
Definition NodeDesc.h:19
Retained scene node (arena). Conceptual GameObject; isomorphic to eve::ui::UINode.
Definition SceneHost.h:46