MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Nexus Namespace Reference

Classes

class  Agent
 Object that both perceives nearby entities and acts on MayaFlux objects. More...
 
struct  AudioSink
 Holds the plumbing for one audio output registered from a Nexus object. More...
 
class  Emitter
 Object that acts on existing MayaFlux objects when committed. More...
 
class  Fabric
 Orchestrates spatial indexing and scheduling for Nexus objects. More...
 
struct  InfluenceContext
 Data passed to an Emitter or Agent influence function on each commit. More...
 
struct  InfluenceUBO
 GPU-side std140 layout matching InfluenceContext plain data fields. More...
 
struct  PerceptionContext
 Data passed to a Sensor or Agent perception function on each commit. More...
 
struct  RenderSink
 Holds the plumbing for one graphics output registered from a Nexus object. More...
 
class  Sensor
 Object that reacts to nearby entities when committed. More...
 
class  StateDecoder
 Patches Fabric state from a previously encoded EXR + JSON schema pair. More...
 
class  StateEncoder
 Serializes Fabric state to an EXR texture and JSON schema. More...
 
class  Tapestry
 Owner of one or more Fabrics and the shared state they rely on. More...
 
class  Wiring
 Fluent builder that wires an entity into Fabric's scheduling infrastructure. More...
 

Typedefs

using RenderFn = std::function< void(const InfluenceContext &)>
 

Functions

void add_audio_sink (std::vector< AudioSink > &sinks, Buffers::BufferManager &mgr, uint32_t channel, std::function< Kakshya::DataVariant(const InfluenceContext &)> fn={}, std::string fn_name={})
 Create and register an audio sink on channel.
 
void add_render_sink (std::vector< RenderSink > &sinks, Buffers::BufferManager &mgr, const Portal::Graphics::RenderConfig &config, RenderFn fn={}, std::string fn_name={}, const std::optional< glm::vec3 > &initial_position={})
 Create and register a render sink targeting window.
 
void dispatch_audio_sinks (std::vector< AudioSink > &sinks, const InfluenceContext &ctx)
 For each sink that has a producer fn, call it and push the result.
 
void dispatch_render_sinks (std::vector< RenderSink > &sinks, const InfluenceContext &ctx)
 For each sink that has a producer fn, call it and push the result.
 
void push_audio_data (std::vector< AudioSink > &sinks, std::span< const double > samples)
 Push samples to every audio sink in sinks.
 
void push_vertices (std::vector< RenderSink > &sinks, const void *data, size_t byte_count, const Kakshya::VertexLayout &layout)
 Push pre-resolved vertex bytes to every render sink.
 
void remove_audio_sink (std::vector< AudioSink > &sinks, Buffers::BufferManager &mgr, uint32_t channel)
 Unregister and destroy the audio sink on channel.
 
void remove_render_sink (std::vector< RenderSink > &sinks, Buffers::BufferManager &mgr, const std::shared_ptr< Core::Window > &window)
 Unregister and destroy the render sink targeting window.