载入中...
搜索中...
未找到
SceneHost.cpp
浏览该文件的文档.
139bool SceneHost::setTreeReconcile(NodeDesc root) { return applyTreeReconcile(this, std::move(root)); }
259SceneNode *SceneHost::getParentById(const std::string &id) { return getParent(findIndexById(id)); }
272int SceneHost::getChildCountById(const std::string &id) { return getChildCount(findIndexById(id)); }
379bool SceneHost::addChild(int parentIndex, int childIndex) { return setParent(childIndex, parentIndex); }
404void SceneHost::forEachDepthFirst(int nodeIndex, void (*fn)(SceneHost *, int, void *), void *user) {
408void SceneHost::walkDepthFirst(NodeVisitFn fn) { walkDepthFirstFrom(tree()->root, std::move(fn)); }
438SceneNode *SceneHost::findIf(NodePredFn pred) { return findIfFrom(tree()->root, std::move(pred)); }
519 return collectIdsWhere([&](SceneHost *, int, const SceneNode &n) { return n.visible == visible; });
A playable audio source (static buffer or streaming decoder). Not thread-safe for playback control ex...
Definition Source.h:30
Definition RenderSystem3D.h:18
Default renderable entity for declarative 2D sprites / solid quads.
Definition RenderSystem.h:65
3D rigid body (Box3D) in meter-space coordinates (+Y up by convention). Owned by a World3D; create sh...
Definition Body3D.h:16
2D rigid body (Box2D) in pixel-space coordinates. Owned by a World; create shapes with newRectangleFi...
Definition Body.h:16
ECS mount point for one scene graph (full scene or nested subtree root). Isomorphic to eve::ui::UIHos...
Definition SceneHost.h:80
bool isDescendantOf(int nodeIndex, int ancestorIndex)
Definition SceneHost.cpp:348
bool isAncestorOfById(const std::string &ancestorId, const std::string &nodeId)
Definition SceneHost.cpp:344
std::vector< SceneNode * > getChildren(int nodeIndex)
Definition SceneHost.cpp:306
void walkBreadthFirstFrom(int nodeIndex, NodeVisitFn fn)
Definition SceneHost.cpp:418
bool isDescendantOfById(const std::string &nodeId, const std::string &ancestorId)
Definition SceneHost.cpp:352
int findIndexByName(const std::string &name)
Definition SceneHost.cpp:195
int findIndexById(const std::string &id)
Definition SceneHost.cpp:171
void walkDepthFirstFrom(int nodeIndex, NodeVisitFn fn)
Definition SceneHost.cpp:410
bool setParent(int childIndex, int parentIndex)
Imperative parent link. Returns false on invalid indices or cycle. Prefer declarative NodeDesc + reco...
Definition SceneHost.cpp:356
bool removeChild(int parentIndex, int childIndex)
Definition SceneHost.cpp:381
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:522
std::vector< int > filterIndices(NodePredFn pred)
Definition SceneHost.cpp:463
bool removeChildById(const std::string &parentId, const std::string &childId)
Definition SceneHost.cpp:602
int getChildIndexAt(int parentIndex, int childOrdinal)
Child ordinal 0..count-1; -1 if out of range.
Definition SceneHost.cpp:274
bool setTreeReconcile(NodeDesc root)
Key-aware patch when structure matches; else full replace.
Definition SceneHost.cpp:139
std::vector< SceneNode * > findAllBySpace(const std::string &space)
Definition SceneHost.cpp:488
int getChildCountById(const std::string &id)
Definition SceneHost.cpp:272
bool linkRenderable3D(const std::string &nodeId, graphics::Renderable3D *r)
Definition SceneHost.cpp:534
bool linkPhysics3D(const std::string &nodeId, physics::Body3D *b, int syncMode=0)
Definition SceneHost.cpp:542
bool isAncestorOf(int ancestorIndex, int nodeIndex)
Definition SceneHost.cpp:337
std::vector< int > filterIndicesFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:467
SceneNode * getChildAt(int parentIndex, int childOrdinal)
Definition SceneHost.cpp:287
std::vector< std::string > collectIdsVisible(bool visible=true)
Definition SceneHost.cpp:518
std::vector< SceneNode * > filterFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:454
std::vector< std::string > getChildIds(const std::string &parentId)
Definition SceneHost.cpp:312
std::function< bool(SceneHost *host, int index, const SceneNode &node)> NodePredFn
Definition SceneHost.h:190
std::vector< std::string > collectIdsFrom(int nodeIndex)
Definition SceneHost.cpp:500
std::vector< std::string > collectIdsWhere(NodePredFn pred)
Definition SceneHost.cpp:506
std::vector< std::string > collectIdsByName(const std::string &name)
Definition SceneHost.cpp:514
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:404
std::vector< SceneNode * > findAllLinked()
Definition SceneHost.cpp:492
bool linkPhysics2D(const std::string &nodeId, physics::Body *b, int syncMode=0)
Definition SceneHost.cpp:538
SceneNode * getParentById(const std::string &id)
Definition SceneHost.cpp:259
std::string getPathById(const std::string &id)
Definition SceneHost.cpp:335
SceneNode * findByName(const std::string &name)
First node whose name equals name (DFS from root).
Definition SceneHost.cpp:159
std::vector< int > getChildIndices(int nodeIndex)
Definition SceneHost.cpp:295
void markSubtreeDirty(int nodeIndex)
Mark a node's subtree for world recompute (recompute it + descendants).
Definition SceneHost.cpp:392
bool addChild(int parentIndex, int childIndex)
Definition SceneHost.cpp:379
int findIndexByKey(const std::string &key)
Definition SceneHost.cpp:186
bool addTag(SceneNode *node, const std::string &tag)
Definition SceneHost.cpp:609
std::vector< std::string > collectIds()
Definition SceneHost.cpp:498
SceneNode * findById(const std::string &id)
Definition SceneHost.cpp:141
std::vector< SceneNode * > findAllVisible(bool visible=true)
Definition SceneHost.cpp:484
static SceneHost * createHost(const std::string &name="")
Definition SceneHost.cpp:122
void walkAncestors(int nodeIndex, NodeVisitFn fn)
Parent chain upward, excluding self.
Definition SceneHost.cpp:429
std::vector< SceneNode * > filter(NodePredFn pred)
Definition SceneHost.cpp:450
int findIndexByPath(const std::string &path)
Definition SceneHost.cpp:205
std::vector< SceneNode * > findAllByTag(const std::string &tag)
Definition SceneHost.cpp:637
int linkCount(const std::string &nodeId)
Definition SceneHost.cpp:589
bool hasTag(const SceneNode *node, const std::string &tag) const
Definition SceneHost.cpp:629
SceneNode * findIfFrom(int nodeIndex, NodePredFn pred)
Definition SceneHost.cpp:440
bool linkAudio3D(const std::string &nodeId, audio::Source *s)
Definition SceneHost.cpp:550
SceneNode * findByKey(const std::string &key)
Definition SceneHost.cpp:150
bool removeTag(SceneNode *node, const std::string &tag)
Definition SceneHost.cpp:618
bool unlink(const std::string &nodeId, int kind)
Remove all links of a kind; returns true if a link was removed.
Definition SceneHost.cpp:554
std::string getPath(int nodeIndex)
Id path "a/b/c" from root to node; empty if invalid.
Definition SceneHost.cpp:320
std::vector< SceneNode * > findAllByKey(const std::string &key)
Definition SceneHost.cpp:480
bool linkCamera3D(const std::string &nodeId, graphics::Camera3D *c)
Definition SceneHost.cpp:546
std::function< void(SceneHost *host, int index, SceneNode &node)> NodeVisitFn
Definition SceneHost.h:189
void walkDepthFirst(NodeVisitFn fn)
DFS from root (or from nodeIndex), inclusive.
Definition SceneHost.cpp:408
void walkBreadthFirst(NodeVisitFn fn)
BFS from root (or from nodeIndex), inclusive.
Definition SceneHost.cpp:414
SceneNode * findByPath(const std::string &path)
Path of ids joined by '/', e.g. "root/player/weapon". Relative to host root.
Definition SceneHost.cpp:165
bool linkRenderable2D(const std::string &nodeId, graphics::Renderable2D *r)
Definition SceneHost.cpp:530
std::vector< SceneNode * > findAllByName(const std::string &name)
Definition SceneHost.cpp:476
SceneLink * findLink(SceneNode *node, int kind)
Definition SceneHost.cpp:573
SceneNode * getChildAtById(const std::string &parentId, int childOrdinal)
Definition SceneHost.cpp:291
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:399
bool setParentById(const std::string &childId, const std::string &parentId)
Reparent by id; empty parentId detaches (parent = -1). Cycle-safe.
Definition SceneHost.cpp:594
Definition ScenePicking.cpp:22
bool applyTreeReconcile(SceneHost *host, NodeDesc root)
Key-aware patch when structure matches; else full replace. Returns true if full rebuild.
Definition NodeDesc.cpp:294
NodeDesc node(std::string id, std::vector< NodeDesc > children, std::string name)
Definition NodeDesc.cpp:214
WidgetDesc child(std::string id, std::vector< WidgetDesc > children, float width, float height)
Scrollable child region with an explicit size.
Definition Widget.cpp:387
Declarative scene-node description (build once / on dirty → flatten into SceneHost::Tree)....
Definition NodeDesc.h:15
Definition SceneLink.h:68
Retained scene node (arena). Conceptual GameObject; isomorphic to eve::ui::UINode.
Definition SceneHost.h:39