Toast Engine
Loading...
Searching...
No Matches
toast::AudioBoxEmitter Class Reference

Box-shaped audio source. More...

#include <audio_box_emitter.hpp>

Inheritance diagram for toast::AudioBoxEmitter:
Collaboration diagram for toast::AudioBoxEmitter:

Public Member Functions

void extents (glm::vec3 value)
Public Member Functions inherited from toast::AudioEmitterBase
void play ()
void stop ()
void pause (bool value)
void setParameter (std::string_view name, float value) const
void setParameter (std::string_view name, bool value) const
auto isPlaying () const -> bool
void event (std::string_view path)
void event (toast::UID uid)
void playOnEnable (bool value)
void volume (float value)
void pitch (float value)
void allowFadeout (bool value)
void dopplerScale (float value)
void calculateVelocity (bool value)
void overrideAttenuation (bool value)
void minDistance (float value)
void maxDistance (float value)
Public Member Functions inherited from toast::Node3D
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 ()
Public Member Functions inherited from toast::Node
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

Protected Member Functions

auto emitterPosition (const glm::vec3 &listener) -> glm::vec3 override
 override this to project listener to the shape's nearest surface
Protected Member Functions inherited from toast::AudioEmitterBase
virtual auto emitterForward () -> glm::vec3
virtual auto emitterUp () -> glm::vec3
Protected Member Functions inherited from toast::Node3D
void init ()
 X axis.
Protected Member Functions inherited from toast::Node
virtual void onReflectedFieldChanged (std::string_view)
virtual void onScriptsReloaded ()
virtual void onScriptsReloading ()
virtual auto luaAffinity () const noexcept -> std::optional< size_t >
virtual void onScriptVarChanged (std::string_view path)
void addInspectorMessage (const NodeMessage &message)
void removeInspectorMessage (const NodeMessage &message)

Protected Attributes

glm::vec3 m_extents = glm::vec3 {1.0f}
 half-extents in local space
Protected Attributes inherited from toast::Node
INodeOwner * m_owner = nullptr

Friends

class AudioEmitterBase

Additional Inherited Members

Public Attributes inherited from toast::AudioEmitterBase
signals::Signal< std::string_view > audio_started
signals::Signal< std::string_view > audio_stopped
signals::Signal< bool > audio_paused
Public Attributes inherited from toast::Node3D
glm::vec3 position = glm::vec3(0.0f)
glm::quat rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f)
glm::vec3 scale = glm::vec3(1.0f)
glm::vec3 world_position = glm::vec3(0.0f)
glm::quat world_rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f)
glm::vec3 world_scale = glm::vec3(1.0f)
Public Attributes inherited from toast::Node
signals::Signal< Box< Node > > on_enable
signals::Signal< Box< Node > > on_disable
signals::Signal< Box< Node > > on_begin
signals::Signal< Box< Node > > on_end
Static Public Attributes inherited from toast::Node3D
static const glm::vec3 world_up = {0.0f, 0.0f, 1.0f}
static const glm::vec3 world_forward = {0.0f, 1.0f, 0.0f}
 Z axis.
static const glm::vec3 world_right = {1.0f, 0.0f, 0.0f}
 Y axis.

Detailed Description

Box-shaped audio source.

Audio appears to come from the nearest point inside the box to the listener, not the center. Useful for large ambient areas like rooms or caverns

Member Function Documentation

◆ emitterPosition()

auto toast::AudioBoxEmitter::emitterPosition ( const glm::vec3 & listener) -> glm::vec3
overrideprotectedvirtual

override this to project listener to the shape's nearest surface

Reimplemented from toast::AudioEmitterBase.


The documentation for this class was generated from the following files: