|
|
auto | getCurrentCollisions () const -> std::vector< toast::Box< toast::Node3D > > |
|
auto | isInside (const toast::Node3D &node) const -> bool |
|
auto | empty () const -> bool |
|
void | enableCollider (bool value) |
|
void | includeLayer (int layer, bool value=true) |
|
void | excludeLayer (int layer, bool value=true) |
| auto | raycast (glm::vec3 dir, glm::vec3 offset=glm::vec3(0.0f), float max_distance=-1.0f, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::optional< physics::RayHit > |
| | The nearest thing a ray from this node hits.
|
| auto | raymulticast (glm::vec3 dir, glm::vec3 offset=glm::vec3(0.0f), float max_distance=-1.0f, int max_hits=-1, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::vector< physics::RayHit > |
| | Up to max_hits things collisions.
|
| auto | linecast (glm::vec3 from, glm::vec3 to, int max_hits=-1, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::vector< physics::RayHit > |
| | Everything on the line between two points, nearest to from first.
|
| void | lookAt (glm::vec3 target, glm::vec3 up={0.0f, 0.0f, 1.0f}) |
| | Orients the node so its forward axis points at a world-space target.
|
| void | lookAtZ (glm::vec3 target) |
| | lookAt() constrained to the XY plane; the node faces the target with no roll
|
| auto | up () const -> glm::vec3 |
| auto | forward () const -> glm::vec3 |
|
void | syncTransform () const |
|
void | syncWorldTransform () const |
|
void | refreshTransformParent () |
|
auto | getTransform () const noexcept -> const glm::mat4 & |
|
auto | getWorldTransform () const noexcept -> const glm::mat4 & |
|
virtual void | onEditorTransformChanged () |
|
auto | uid () const noexcept -> const UID & |
| | Stable unique identifier, assigned at construction or deserialization. Never changes.
|
|
auto | rid () const noexcept -> std::uintptr_t |
| | Runtime identifier for this node, guaranteed to be unique but changes every time.
|
|
auto | name () const noexcept -> std::string_view |
| | Display name. Siblings may share one - this is not an identifier.
|
| void | name (std::string_view name) noexcept |
| | Sets the display name.
|
| auto | enabled () const noexcept -> bool |
| | Whether this node is currently active.
|
|
auto | participatesIn (NodeOwnerParticipation use) const noexcept -> bool |
| auto | owner () const noexcept -> INodeOwner * |
| | The World or Workspace this node belongs to.
|
| void | enabled (bool value) noexcept |
| | Sets the local enabled flag and propagates the change to all children.
|
| auto | box () const noexcept -> Box< Node > |
| | Returns an owning handle to this node.
|
| auto | info () const -> const NodeInfo * |
| | Reflection metadata registered by the code generator.
|
| auto | sourcePrefab () const noexcept -> const assets::Handle< assets::Prefab > & |
| | The prefab this node was instantiated from.
|
| auto | isInstanceRoot () const noexcept -> bool |
| | Whether this node is the root of a prefab instance.
|
| auto | root () const noexcept -> Box< Node > |
| | The topmost ancestor that is not the world root.
|
| auto | state () const noexcept -> NodeState |
| auto | type () const noexcept -> NodeType |
|
auto | listener () noexcept -> event::Listener & |
| | The event Listener owned by this node. Lazy-allocated, freed only with the node.
|
| auto | parent () noexcept -> Box< Node > |
| | The immediate parent of this node.
|
| auto | children () const noexcept -> const std::vector< Box< Node > > & |
| | The ordered list of direct children.
|
|
auto | childrenSnapshot () const -> std::vector< Box< Node > > |
| auto | create (std::string_view type="toast::Node") noexcept -> Box< Node > |
| | Creates a new child node of the given type and attaches it to this node.
|
| auto | spawn (UID uid) noexcept -> Box< Node > |
| | Asynchronously instantiates a prefab as a child of this node.
|
| auto | spawn (std::string_view uri) noexcept -> Box< Node > |
| | Asynchronously instantiates a prefab as a child of this node.
|
| auto | find (std::string_view query) -> Box< Node > |
| | Depth-first search for a single descendant.
|
| auto | find (const UID &uid) -> Box< Node > |
| | Looks up a node by UID within this node's local root.
|
| auto | search (std::string_view query) -> std::vector< Box< Node > > |
| | Depth-first search for all matching descendants.
|
|
auto | childrenOfType (const NodeInfo *type) const -> std::vector< Box< Node > > |
|
auto | searchType (const NodeInfo *type) const -> std::vector< Box< Node > > |
|
void | addDependsOn (Node &other) |
|
void | removeDependsOn (Node &other) |
|
void | interactsWith (Node &other) |
| | Declares that the scripts of this node and of other call each other.
|
|
auto | scriptRuntime () noexcept -> scripting::ScriptRuntime * |
| auto | hasTickFunction (TickFunctionList mask) const noexcept -> bool |
| auto | scriptVm (TickFunctionList func) const noexcept -> std::optional< size_t > |
| | The interpreter this node runs Lua on while it executes func, empty when it runs none.
|
|
auto | scriptVmAny () const noexcept -> std::optional< size_t > |
| | The interpreter the scripts of this node live on whatever phase they define.
|
| auto | hasCallable (std::string_view name) const noexcept -> bool |
|
void | reloadScripts () noexcept |
| | Rebuilds the script runtime after a script asset changed (hot reload or attach).
|
| auto | scripts () const noexcept -> const std::vector< assets::Handle< assets::Script > > & |
| void | setScripts (std::vector< assets::Handle< assets::Script > > scripts) noexcept |
| void | addScript (const assets::Handle< assets::Script > &script) noexcept |
| template<typename R = void, typename... Args> |
| auto | call (std::string_view name, Args &&... args) -> R |
| | Invokes all C++ reflected implementations of name (base→derived) and all same-named Lua functions across every attached script, forwarding args.
|
| template<typename T> |
| auto | get (std::string_view name) const -> T |
| | Reads a named value: reflected C++ field first, then the first matching Lua instance variable.
|
|
template<typename T> |
| void | set (std::string_view name, const T &value) |
| | Writes a named value: reflected C++ field if present and every Lua instance variable of that name that already exists.
|
|
auto | isRecursivePrefab () const noexcept -> bool |
For custom logic when something enters/exists use either the signal or create a onEnter(other)/onExit(other) function both on a Lua script or on an inherited class