MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Nodes::Network::AdvanceOperator Class Referencefinal

Produces every slot's signal for the block. More...

#include <RelationOperators.hpp>

+ Inheritance diagram for MayaFlux::Nodes::Network::AdvanceOperator:
+ Collaboration diagram for MayaFlux::Nodes::Network::AdvanceOperator:

Public Member Functions

std::string_view get_type_name () const override
 Type name for introspection.
 
void process (float frames) override
 Process for one batch cycle.
 
std::optional< double > query_state (std::string_view) const override
 Query operator internal state.
 
void set_parameter (std::string_view, double) override
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::RelationOperator
void begin_block ()
 Apply mapped parameters at the start of a block.
 
virtual std::span< const double > get_output_block (size_t) const
 
virtual size_t get_output_count () const
 
void map (std::string parameter, Source source)
 Drive an operator parameter from a source.
 
virtual bool publishes_output () const
 
void set_slots (std::vector< RelationSlot > &slots) noexcept
 Supply the current slot storage.
 
void unmap (std::string_view parameter)
 Remove the mapping of a parameter.
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::NetworkOperator
virtual void apply_one_to_one (std::string_view param, const std::shared_ptr< NodeNetwork > &source)
 Apply ONE_TO_ONE parameter mapping (per-point control)
 
virtual bool demands_full_vertex_restore () const
 Whether a downstream compute pass writes the network's vertex buffer in place each cycle, so the geometry producer must keep restoring the CPU-authoritative vertex data every frame.
 
virtual ~NetworkOperator ()=default
 

Private Attributes

std::vector< double > m_scratch
 
size_t m_scratch_pos {}
 

Additional Inherited Members

- Protected Member Functions inherited from MayaFlux::Nodes::Network::RelationOperator
std::span< RelationSlot > slots () const noexcept
 

Detailed Description

Produces every slot's signal for the block.

For each slot with a node, advances it for the whole block through extract_node_samples(). A slot without a node keeps its stored level for every frame.

Note
Muting (slot.active == false) zeroes what gets published to the slot's block, but never its level: level always reflects the slot's real current value, muted or not. Gating a slot from its own level (an envelope follower, a threshold trigger) works as expected because of this.

A node's hooks (on_impulse, on_phase_wrap, on_tick, ...) fire during this advance, since set_node() enables them.

Activity is read once per slot per block, at the start of process(). Place AdvanceOperator after operators whose slot writes should apply this block, and before DeriveOperator and CombineOperator, which read rendered blocks.

Definition at line 251 of file RelationOperators.hpp.


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