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

Namespaces

namespace  detail
 
namespace  State
 

Classes

class  Agent
 Object that both perceives nearby entities and acts on MayaFlux objects. More...
 
struct  AttachConfig
 How an Agent attaches to a buffer that already exists. More...
 
struct  Attachment
 State of one Agent attached to an existing buffer. More...
 
struct  AudioSink
 Holds the plumbing for one audio output registered from a Nexus object. More...
 
struct  CrossingContext
 Data passed to a typed Expanse action for one entity. More...
 
class  Emitter
 Object that acts on existing MayaFlux objects when committed. More...
 
class  Expanse
 A defined region of space with a containment test and crossing actions. More...
 
class  Fabric
 Orchestrates spatial indexing and scheduling for Nexus objects. More...
 
class  Hull
 An Expanse whose region is the bounds of a buffer that already exists. More...
 
class  Influence
 A value of any type, built from the influence context and handed to its targets. More...
 
struct  InfluenceBlock
 Host mirror of the Influence push constant block the library's lit shaders declare. More...
 
struct  InfluenceContext
 Data passed to an Emitter or Agent influence function on each commit. More...
 
class  Locus
 Agent that perceives the world from a navigation state and influences how the things it touches are viewed. More...
 
class  Mantle
 An Expanse that is a box with a buffer that already exists as its visible body. More...
 
class  Perception
 A value of any type, read from the world through the perception context and handed to its targets. More...
 
struct  PerceptionContext
 Data passed to a Sensor or Agent perception function on each commit. More...
 
struct  PlacementStack
 The placements layered on one render processor, kept by its geometry transform source. More...
 
class  Presence
 Agent that affects its surroundings by being there. 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 or rebuilds 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 apply_attachment (Attachment &attachment, const InfluenceContext &ctx)
 Rebuild the transform from ctx and place every render processor of the buffer.
 
template<typename Region >
Influence< Kinesis::AABB3D >::Target bind_bounds (const Region &expanse)
 Target that moves or resizes an Expanse's bounds from an influence of boxes.
 
template<typename Field , typename Operator >
Influence< Field >::Target bind_field (const Operator &op, Kinesis::FieldTarget target)
 Target that feeds an influence of fields into an operator's vertex attributes.
 
template<typename Field , typename Operator >
Influence< Field >::Target bind_field (const Operator &op, uint32_t slot, Kinesis::FieldTarget target)
 Same as above, for one slot of a MeshFieldOperator.
 
template<typename Operator >
Influence< Kinesis::VectorField >::Target bind_force (const Operator &op)
 Target that feeds an influence of vector fields into a PhysicsOperator as a force.
 
template<typename Receiver >
Influence< InfluenceBlock >::Target bind_influence_block (const Receiver &target, size_t offset=0)
 Target that pushes an InfluenceBlock to a render processor for the library's lit shaders.
 
template<typename Operator >
Influence< glm::vec4 >::Target bind_params (const Operator &op)
 Target that sets the parameter block of a GpuFieldOperator's parametric fields.
 
template<typename Operator >
Influence< Kinesis::VectorField >::Target bind_position (const Operator &op, uint32_t slot)
 Target that feeds an influence of vector fields into one instance's position.
 
template<typename T , typename Receiver >
Influence< T >::Target bind_push_constants (const Receiver &target, size_t offset=0)
 Target that pushes an influence's value to a GPU executor as push constants.
 
template<typename Operator >
auto bind_transform (const Operator &op, uint32_t slot)
 Target that feeds an influence of transform functions into one slot.
 
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 follow_attachment (Attachment &attachment, std::optional< glm::vec3 > &position, const std::optional< glm::quat > &orientation)
 Set position from the buffer, or fold an outside move into the attachment.
 
Attachment make_attachment (std::shared_ptr< Buffers::VKBuffer > buf, const AttachConfig &config, const std::optional< glm::quat > &orientation)
 Build an attachment to buf.
 
void place_attachment (Attachment &attachment)
 Place every render processor of the buffer that is not placed yet.
 
void push_audio_data (std::vector< AudioSink > &sinks, std::span< const double > samples)
 Push samples to every audio sink in sinks.
 
std::optional< glm::vec3 > read_anchor (const std::shared_ptr< Buffers::VKBuffer > &buf, const std::optional< uint32_t > &index)
 Anchor of a buffer's geometry in its own stored coordinates.
 
std::optional< Kinesis::AABB3D > read_bounds (const std::shared_ptr< Buffers::VKBuffer > &buf, const std::optional< uint32_t > &collection=std::nullopt)
 Bounds of a buffer's geometry in its own stored coordinates.
 
glm::mat4 read_placement (const std::shared_ptr< Buffers::VKBuffer > &buf)
 Where a buffer is drawn: the geometry transform of its primary render processor.
 
void recenter_attachment (Attachment &attachment, std::optional< glm::vec3 > &position, const std::optional< glm::quat > &orientation)
 Read the buffer's geometry again and move the anchor to match.
 
void release_attachment (Attachment &attachment)
 Give every placed render processor back the geometry transform it had.
 
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.